pricewin-booking-assistant
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseRequires theMCP server. Handles real money: it creates bookings and payment links. Read the confirmation rules below before use.pricewin
需要MCP服务器。涉及真实资金交易:可创建预订和支付链接。使用前请阅读下方确认规则。pricewin
Booking Assistant
预订助手
MCP server: . Orchestrates discover → detail → recommend → book → pay → manage.
pricewinMCP服务器: 。协调 发现→详情→推荐→预订→支付→管理全流程。
pricewinWhat is actually bookable
可预订范围
| Source | Can you book it here? |
|---|---|
| ✅ Yes — full booking + payment via |
| Booking.com / Agoda / Traveloka | ❌ No — comparison only. Hand the user the OTA |
Only OpenTravel direct properties yield the + that
requires. Never imply an OTA hotel can be reserved through this skill.
propertyIdroomTypeIdcreate_booking| 来源 | 是否可在此预订? |
|---|---|
| ✅ 是 — 通过 |
| Booking.com / Agoda / Traveloka | ❌ 否 — 仅支持比价。请将OTA的 |
只有OpenTravel直连物业会提供所需的 + 。切勿暗示可通过本技能预订OTA酒店。
create_bookingpropertyIdroomTypeIdRecommendation flow
推荐流程
- Discover — →
search_hotels_live(city, checkIn, checkOut, adults, …), then pollsessionIdevery 5s whilepoll_search_results(sessionId, nights)isstatus/pending(up to 18 polls / 90s)partial - Score — — balances quality against credibility. Strong candidates:
rating × log(reviewCount + 1)andrating ≥ 8.0reviewCount ≥ 100 - Rank — top 3–5 by score
- Detail — for OpenTravel picks;
get_hotel_detail(propertyId, checkIn, checkOut, adults)for a named OTA hotel (~20–60s)get_ota_hotel_detail(hotelName, city, checkIn, checkOut, queryText) - Recommend — filter rooms by guest capacity, then pick best value
- 发现 — 调用获取
search_hotels_live(city, checkIn, checkOut, adults, …),之后每5秒轮询sessionId,直到poll_search_results(sessionId, nights)变为非status/pending状态(最多轮询18次/90秒)partial - 评分 — 公式为,平衡品质与可信度。优质候选需满足:
rating × log(reviewCount + 1)且rating ≥ 8.0reviewCount ≥ 100 - 排序 — 按评分选取前3–5家酒店
- 详情 — 针对OpenTravel选中酒店调用;针对指定OTA酒店调用
get_hotel_detail(propertyId, checkIn, checkOut, adults)(耗时约20–60秒)get_ota_hotel_detail(hotelName, city, checkIn, checkOut, queryText) - 推荐 — 根据客容量筛选客房,再选出性价比最高的选项
Booking link rules (OTA hotels)
OTA酒店预订链接规则
- NEVER invent URLs — only use a the tool returned
url - Always name the OTA next to the link; if several have the same room, show all with prices
- Append the user's dates to the raw URL — see
pricewin-hotel-search
- 禁止自行生成URL — 仅可使用工具返回的
url - 链接旁必须标注对应OTA名称;若多家OTA有同款房型,需展示所有链接及对应价格
- 需将用户指定日期追加至原始URL后——详见
pricewin-hotel-search
Booking flow (OpenTravel direct)
OpenTravel直连预订流程
1. Get the room first — mandatory
1. 先获取客房信息——必填步骤
Call before booking to obtain , total price, and
currency. Do not guess any of the three.
get_hotel_detailroomTypeIdOptionally call and show
the refund terms before taking payment.
get_cancellation_policy(propertyId, ratePlanId, checkInDate)预订前必须调用获取、总价及币种。禁止猜测以上三项信息。
get_hotel_detailroomTypeId可选择调用并在收取费用前向用户展示退款条款。
get_cancellation_policy(propertyId, ratePlanId, checkInDate)2. Ask for all four things in ONE message
2. 一次性索要全部四项信息
In your first request for guest info, ask for all of these together — never split
across turns, and always in the user's language:
- Full name
- Phone number
- Email — the confirmation email goes here
- Payment method
⚠️ Never auto-fill the email from the account/profile. The guest is often not the
account owner. It must come from what the user typed in this chat. If it is missing, ask.
Present the three payment methods as equal choices, no default, no recommended order:
- Bank transfer via QR (SePay) →
SEPAY - International card via Polar →
POLAR - PayPal →
PAYPAL
If the user already signalled a preference, infer it and skip re-asking:
| They said | Method |
|---|---|
| "scan QR", "quét mã", "chuyển khoản", "bank transfer", "VietQR" | |
| "card", "thẻ", "credit/debit card", "visa", "mastercard" | |
| "PayPal" | |
If anything is still missing after their reply, ask again for just the missing item(s).
首次请求客人信息时,需一次性索要以下所有内容——切勿分多次询问,且需使用用户的语言:
- 全名
- 电话号码
- 邮箱 — 确认邮件将发送至此
- 支付方式
⚠️ 禁止从账户/资料中自动填充邮箱。客人往往并非账户所有者,必须由用户在本次对话中输入。若缺失,需主动询问。
需将三种支付方式作为平等选项展示,无默认值,无推荐顺序:
- 二维码银行转账(SePay)→
SEPAY - Polar国际卡支付 →
POLAR - PayPal →
PAYPAL
若用户已明确表达偏好,可直接推断并跳过询问:
| 用户表述 | 对应方式 |
|---|---|
| "扫二维码"、"quét mã"、"chuyển khoản"、"bank transfer"、"VietQR" | |
| "银行卡"、"thẻ"、"credit/debit card"、"visa"、"mastercard" | |
| "PayPal" | |
若用户回复后仍有信息缺失,仅需询问缺失的项即可。
3. Confirm before charging
3. 收费前确认所有信息
Summarise back everything — hotel, room type, check-in/check-out, guests,
TOTAL price (full amount, not a deposit), guest name, email address
(emphasise it — a typo means the confirmation never arrives), phone, payment method
— then explicitly ask the user to confirm it is all correct.
需向用户复述全部信息:酒店名称、房型、入住/退房日期、客人数量、总价(全额,非押金)、客人姓名、邮箱地址(需重点强调——输入错误将导致无法收到确认邮件)、电话、支付方式,然后明确询问用户是否确认所有信息正确。
4. Only then call create_booking
create_booking4. 确认后再调用create_booking
create_bookingRequired: , , , , , ,
, , , , .
Also pass (user's original text, verbatim).
propertyIdroomTypeIdcheckIncheckOutadultsguestNameguestPhoneguestEmailpaymentMethodtotalAmountcurrencyqueryTextReturns a payment link and a (e.g. ) — surface both.
confirmationCodeK7X9M2P4必填参数:、、、、、、、、、、。同时需传入(用户原始文本,一字不差)。
propertyIdroomTypeIdcheckIncheckOutadultsguestNameguestPhoneguestEmailpaymentMethodtotalAmountcurrencyqueryText调用后将返回支付链接和(例如)——需向用户展示这两项内容。
confirmationCodeK7X9M2P4After booking
预订完成后操作
| User says | Tool |
|---|---|
| "I paid" / "check my booking" | |
| "the payment link expired" | |
| "cancel my booking" | |
🚨 Never call twice for the same stay. An expired payment link is
fixed with — it reuses the same confirmation code. Calling
again creates a duplicate booking and a duplicate confirmation email.
create_bookingrecreate_payment_linkcreate_booking| 用户表述 | 对应工具 |
|---|---|
| "我已付款" / "查询我的预订" | |
| "支付链接过期了" | |
| "取消我的预订" | |
🚨 切勿针对同一住宿两次调用。支付链接过期可通过解决——该操作将复用原确认码。再次调用会产生重复预订并发送重复确认邮件。
create_bookingrecreate_payment_linkcreate_bookingCancelling — two steps, by design
取消预订——设计为两步流程
- — email must match the booking's primary guest. This emails the guest a magic link
request_cancel_token(confirmationCode, guestEmail) - The guest pastes the token back → (
cancel_booking(confirmationCode, cancelToken, reason)≥ 3 chars)reason
You cannot cancel without the guest fetching that token from their inbox. Tell them to
check their email rather than retrying step 1.
- — 邮箱必须与预订主客人的邮箱一致。该操作将向客人邮箱发送一个魔法链接
request_cancel_token(confirmationCode, guestEmail) - 客人粘贴返回的令牌 → (
cancel_booking(confirmationCode, cancelToken, reason)需不少于3个字符)reason
若无客人从邮箱获取的令牌,无法完成取消操作。请告知用户检查邮箱,而非重复执行第一步。
Output format
输出格式
undefinedundefinedHotel Name ★★★★☆
酒店名称 ★★★★☆
- Rating: 8.5/10 (1,234 reviews)
- Best room: Deluxe Double — $85/night
- Free cancellation: until 2026-08-10
- Book: Reserve now ← OpenTravel direct
- Or compare: Agoda | Booking.com
Tool inputs and response fields: [reference.md](reference.md).- 评分: 8.5/10 (1,234条评价)
- 最佳房型: 豪华双人间 — 85美元/晚
- 免费取消: 截止至2026-08-10
- 预订: 立即预订 ← OpenTravel直连
- 或比价: Agoda | Booking.com
工具输入及响应字段参考:[reference.md](reference.md)。