Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "batch_query_room_rates", "cancel_booking", "check_room_availability" and 8 more
⟨5 unchanged words⟩ rate products for multiple hotels with partial-success results. 普通 ToC 酒店查询可匿名,user_key 可选;下单、订单查询、取消和支付需要客户端安全配置的 user_key。 每批 1–20 家酒店,逐项检查 ok/data.reason/reason;只对超时等暂时失败项有限重试,不重复整批已成功项。无房属于成功空结果。 查询失败时先区分参数/鉴权错误和上游暂时失败:修正参数或重新授权后再调用,仅暂时失败可有限重试;不得把错误或空结果改述成成功。
{"additionalProperties":false,"properties":{"adults":{"description":"Number每房成人数,不是所有房间合计;相同入住配置应用于每间房。有效入住人数必须大于of0。adults省略或in0each默认room1;负数无效。","type":"integer"},"check_in_date":{"description":"Check-in date in YYYY-MM-DD入住日期,YYYY-MM-DD。format省略/空字符串默认服务端当前日期的明天。","type":"string"},"check_out_date":{"description":"Check-out date in离店日期,YYYY-MM-DD,必须晚于YYYY-MM-DDcheck_in_date。format省略/空字符串默认入住次日。","type":"string"},"children":{"description":"Number of每房儿童数,非负整数;省略或children0in表示无儿童,必须等于
{"additionalProperties":true,"description":"返回字段说明(不增加校验约束;缺失、零值和 null 按各字段说明解释):\n返回值 [object] 必有字段=ok: 业务响应信封;字段缺失表示没有提供,不能自动补零。数组的 null 与 [] 都不含条目,但 null 不承诺完成了该部分查询。\n返回值.data [object] 必有字段=results,summary: 逐酒店结果及汇总;外层 ok=true 仍可能有部分或全部酒店失败。\n返回值.data.results [array]: 输入顺序的酒店结果,每项独立处理。\n返回值.data.results[] [object] 必有字段=hotel_id,ok: 与输入 hotel_ids 同序的一项结果。ok=true 且 data.reason=no_matching_live_room 为成功空结果;ok=false 时返回 reason/error,省略 data。\n返回值.data.results[].data [object] 必有字段=room_types,total,stripe_payment_fee_notice: 房价查询结果。非空返回 room_types/total/手续费说明;空结果增加 reason。\n返回值.data.results[].data.reason [string] 取值=[\"no_matching_live_room\"]: 仅成功空结果出现,表示当前没有匹配的实时房价。\n返回值.data.results[].data.room_types [array]: 实时房型列表;空数组表示该入住条件下没有匹配报价。\n返回值.data.results[].data.room_types[] [object] 必有字段=name,products\n返回值.data.results[].data.room_types[].basic_room_image [string]: 房型图片 URL。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.results[].data.room_types[].bed_type_desc [string]: 床型说明。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.results[].data.room_types[].name [string]: 名称。\n返回值.data.results[].data.room_types[].name_cn [string]: 中文名称。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.results[].data.room_types[].products [null|array]: 按入住容量、餐食和取消政策归并的报价产品列表。\n返回值.data.results[].data.room_types[].products[] [object] 必有字段=max_occupancy,meal_type,meal_count,cancellation_policy,rate\n返回值.data.results[].data.room_types[].products[].cancellation_policy [object] 必有字段=type,effective_non_refundable: 汇总取消政策;仍须在下单前验价。\n返回值.data.results[].data.room_types[].products[].cancellation_policy.advanced_hour [integer]: 供应商取消提前小时数;以实际截止时间为准,不自行重新推算。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.results[].data.room_types[].products[].cancellation_policy.effective_non_refundable [boolean]: 是否已按不可退款处理,包括原不可退、缺少取消信息或截止时间已过。\n返回值.data.results[].data.room_types[].products[].cancellation_policy.free_cancel_deadline [string]: 免费取消截止时间,通常 RFC3339,按返回的时区/UTC 偏移解释,不按客户端当地时间替换;若没有时区或无法解析,不承诺免费取消。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.results[].data.room_types[].products[].cancellation_policy.type [string] 取值=[\"non_refundable\",\"free_cancel_before_deadline\"]: 取消类型:non_refundable=当前不可退款;free_cancel_before_deadline=截止前可免费取消。\n返回值.data.results[].data.room_types[].products[].max_occupancy [integer]: 每房成人上限,不是成人加儿童的总上限;儿童额外上限见 maxChildren。缺失表示未提供,不能按零处理;零值也不能用于推断可以无限入住,须按实际入住人数验价。\n返回值.data.results[].data.room_types[].products[].meal_count [integer]: 供应商提供的成人餐食份数,辅助解释 meal_type;零或未提供份数不能覆盖已知餐食类型,例如类型 4 仍为双早。不要据此推断儿童餐食。\n返回值.data.results[].data.room_types[].products[].meal_type [string]: 餐食类型字符串编码:1=不含餐;2=早餐(份数见 meal_count/mealCount);3=1份早餐;4=2份早餐;5=3份早餐;6=4份早餐;7=5份早餐;8=6份早餐;9=7份早餐;10=8份早餐;11=午餐;12=晚餐;13=午餐和晚餐;14=半膳(早餐加午餐或晚餐);15=全膳(早餐、午餐、晚餐);16=一价全包;17=膳食自理(厨房设施,并非自助餐);18=早餐和午餐;19=早餐和晚餐。meal_count/mealCount 补充份数,零值不能覆盖已知餐食类型;空串或未识别编码表示类型未知,不推断为不含餐。\n返回值.data.results[].data.room_types[].products[].rate [object] 必有字段=rate_code,currency,total_price,per_night_price,payment_type,is_on_request,stripe_payment_fee: 该产品最低总价对应的报价。\n返回值.data.results[].data.room_types[].products[].rate.currency [string]: 金额币种 ISO 4217。\n返回值.data.results[].data.room_types[].products[].rate.is_on_request [boolean]: true 表示需向供应商申请确认,非即时确认;false 也不表示已预留库存或已下单。\n返回值.data.results[].data.room_types[].products[].rate.payment_type [integer]: 报价支付类型:1=预付,5=到店支付;当前生成器返回 1。不是 pay_order.payment_method,不可作为支付方式调用。\n返回值.data.results[].data.room_types[].products[].rate.per_night_price [number]: 平均每房每晚价,currency 主单位;不是整段入住总价,不含另列 Stripe 手续费。\n返回值.data.results[].data.room_types[].products[].rate.rate_code [string]: 不透明报价代码,保持原样;必须用相同酒店、日期和入住人数验价后下单。\n返回值.data.results[].data.room_types[].products[].rate.stripe_payment_fee [object] 必有字段=fee_rate,fee_amount,payable_amount,currency,notice: 选择 Stripe 时另收的支付处理费用;不包含在房价总额中。\n返回值.data.results[].data.room_types[].products[].rate.stripe_payment_fee.currency [string]: 金额币种 ISO 4217。\n返回值.data.results[].data.room_types[].products[].rate.stripe_payment_fee.fee_amount [number]: Stripe 手续费金额,currency 主单位,已经按服务端精度取整。\n返回值.data.results[].data.room_types[].products[].rate.stripe_payment_fee.fee_rate [number]: 手续费比例,当前 0.035 即 3.5%。\n返回值.data.results[].data.room_types[].products[].rate.stripe_payment_fee.notice [string]: 费用来源及用途说明。\n返回值.data.results[].data.room_types[].products[].rate.stripe_payment_fee.payable_amount [number]: 订单金额加 Stripe 手续费后的实际应付总额,currency 主单位;尚未支付。\n返回值.data.results[].data.room_types[].products[].rate.total_price [number]: 全部房间、整段入住的订单总价,使用对应币种主单位(如 CNY 元),不是分;未包含另列的 Stripe 手续费,酒店到店收取费用以政策及 exclusions 为准。\n返回值.data.results[].data.room_types[].room_type_code [string]: 房型代码。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.results[].data.stripe_payment_fee_notice [string]: Stripe 另收手续费的说明;不代表已选择 Stripe 或已支付。\n返回值.data.results[].data.total [integer]: 返回房型数,不是产品数。空结果为 0。\n返回值.data.results[].data.web_url [string]: 酒店结果浏览链接,不是价格锁定、订单或支付凭证。仅在成功签发链接时返回;有效期见 web_url_expires_at,可在有效期内重复访问。当前 MCP 不接收链接语言参数,签发语言固定 zh-CN;get_hotel_detail.language 仅控制图片查询语言。\n返回值.data.results[].data.web_url_expires_at [string]: 链接到期时间,RFC3339,保留返回的 UTC 偏移;缺失表示未签发链接。\n返回值.data.results[].data.web_url_one_time [boolean] 取值=[false]: 酒店浏览链接当前为 false,可重复访问直到到期;不同于支付 one_time。\n返回值.data.results[].error [string]: 本酒店查询失败说明。\n返回值.data.results[].hotel_id [string]: 本项酒店 ID,与输入一致。\n返回值.data.results[].ok [boolean]: 本酒店查询是否成功,不代表有可售房。\n返回值.data.results[].reason [string] 取值=[\"invalid_request\",\"hotel_not_found\",\"upstream_timeout\",\"upstream_error\",\"hotel_detail_unavailable\"]: 失败原因:invalid_request=参数无效,hotel_not_found=酒店不存在,upstream_timeout=上游超时,upstream_error=上游失败,hotel_detail_unavailable=酒店详情不可用。成功空结果的 no_matching_live_room 位于 data.reason;批量逐项判断,不把一项失败当成整批失败。\n返回值.data.results[] 的分支 1:\n返回值.data.results[] 必有字段=data\n返回值.data.results[].ok 取值=[true]\n返回值.data.results[] 的分支 2:\n返回值.data.results[] 必有字段=reason,error\n返回值.data.results[].ok 取值=[false]\n返回值.data.summary [object] 必有字段=total,matched,empty,failed: 酒店计数,total=matched+empty+failed。\n返回值.data.summary.empty [integer]: 查询成功但无匹配房价的酒店数。\n返回值.data.summary.failed [integer]: 查询失败的酒店数。\n返回值.data.summary.matched [integer]: 有实时房价的酒店数。\n返回值.data.summary.total [integer]: 请求酒店数。\n返回值.error [string]: 业务失败说明,不作为可重试或成功的唯一依据。\n返回值.error_code [string]: 鉴权等机器可读错误码,仅在错误路径提供。\n返回值.ok [boolean]: 业务是否成功。false 时读取 error/reason;工具执行错误也可能通过 MCP isError 返回而没有 structuredContent。\n返回值.reason [string] 取值=[\"invalid_request\",\"hotel_not_found\",\"upstream_timeout\",\"upstream_error\",\"hotel_detail_unavailable\"]: 失败原因:invalid_request=参数无效,hotel_not_found=酒店不存在,upstream_timeout=上游超时,upstream_error=上游失败,hotel_detail_unavailable=酒店详情不可用。成功空结果的 no_matching_live_room 位于 data.reason;批量逐项判断,不把一项失败当成整批失败。\n返回值 的分支 1:\n返回值 必有字段=data\n返回值.ok 取值=[true]\n返回值 的分支 2:\n返回值 必有字段=error,reason\n返回值.ok 取值=[false]\n","{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true ⟨5 unchanged words⟩
⟨29 unchanged words⟩ ask users to paste user keys into chat. 普通 ToC 酒店查询可匿名,user_key 可选;下单、订单查询、取消和支付需要客户端安全配置的 user_key。 先查询订单,让用户明确确认具体订单及可能的取消费用后再取消。结果不明时先查订单,不盲目重复取消;refund_amount 不证明退款已到账。
{"additionalProperties":false,"properties":{"agent_ref_id":{"description":"TourMindcreate_bookingbooking返回的referenceTourMind 订单号,必须属于当前鉴权用户;不是酒店确认号或第三方支付订单号。","type":"string"},"user_key":{"description":"TourMind user由可信本地客户端配置的keyTourMindrequired用户凭证;勿让用户在聊天中粘贴。普通forToCauthenticated查询可省略,订单/支付操作必填;OAuth
Recheck the selected rate code, price, and inventory before booking.
普通 ToC 酒店查询可匿名,user_key 可选;下单、订单查询、取消和支付需要客户端安全配置的 user_key。
选择报价后、下单前必须用相同入住条件验价;读取 data.room_types[].rateInfos 的当前 rateCode/totalPrice/currencyCode、库存和取消政策。价格或政策变化须用户重新确认;验价不锁库存。 查询失败时先区分参数/鉴权错误和上游暂时失败:修正参数或重新授权后再调用,仅暂时失败可有限重试;不得把错误或空结果改述成成功。{"additionalProperties":false,"properties":{"adults":{"description":"Number每房成人数,不是所有房间合计;相同入住配置应用于每间房。有效入住人数必须大于of0。adults省略或in0each默认room1;负数无效。","type":"integer"},"check_in_date":{"description":"Check-in date in YYYY-MM-DD入住日期,YYYY-MM-DD。format省略/空字符串默认服务端当前日期的明天。
Check whether a newer TourMind Booking Skill version is available.
普通 ToC 酒店查询可匿名,user_key 可选;下单、订单查询、取消和支付需要客户端安全配置的 user_key。
仅在已知安装的 Skill 版本时调用;直接使用 MCP 的客户端无需伪造 Skill 版本。 查询失败时先区分参数/鉴权错误和上游暂时失败:修正参数或重新授权后再调用,仅暂时失败可有限重试;不得把错误或空结果改述成成功。{"additionalProperties":false,"properties":{"current_version":{"description":"Installed已安装 TourMind Skillsemantic的语义版本,例如version,1.0.0;没有安装forSkillexample的1.0.0MCP 客户端不要编造版本。","type":"string"}},"required": ⟨3 unchanged words⟩
⟨29 unchanged words⟩ ask users to paste user keys into chat. 普通 ToC 酒店查询可匿名,user_key 可选;下单、订单查询、取消和支付需要客户端安全配置的 user_key。 先验价并让用户确认酒店、日期、每房入住人、总价/币种、餐食和取消费用,再创建订单。下单不代表支付或酒店确认;使用 query_booking 查最新状态。没有幂等键,超时/断线结果不明时不得自动重复下单,应先核实订单。
{"additionalProperties":false,"properties":{"adults":{"description":"Number of adults in每房成人数,不是所有房间合计;相同入住配置应用于每间房。有效入住人数必须大于each0。room此入口不提供默认值;在使用入住条件时必须显式提供。","type":"integer"},"check_in_date":{"description":"Check-in date in YYYY-MM-DD入住日期,YYYY-MM-DD。format此入口不提供默认值;在使用入住条件时必须显式提供。","type":"string"},"check_out_date":{"description":"Check-out date in离店日期,YYYY-MM-DD,必须晚于YYYY-MM-DDcheck_in_date。
Get static hotel details, facilities, rooms, policies, and images.
普通 ToC 酒店查询可匿名,user_key 可选;下单、订单查询、取消和支付需要客户端安全配置的 user_key。
使用已解析的 hotel_id 获取静态设施、政策、图片;不据此判断实时库存。 查询失败时先区分参数/鉴权错误和上游暂时失败:修正参数或重新授权后再调用,仅暂时失败可有限重试;不得把错误或空结果改述成成功。{"additionalProperties":false,"properties":{"hotel_id":{"description":"TourMindhotel酒店identifierID,数字字符串;从地点/酒店搜索返回取得,不使用 Google place_id。","type":"string"},"language":{"description":"Response酒店图片查询语言,省略默认language,zh-CN;直接传给图片服务,不承诺全部酒店文字翻译,也不改变defaultsweb_urlto的固定 zh-CN 语言。","type":"string"},"user_key":{"description":"Optional由可信本地客户端配置的 TourMind
⟨62 unchanged words⟩ ask users to paste user keys into chat. 普通 ToC 酒店查询可匿名,user_key 可选;下单、订单查询、取消和支付需要客户端安全配置的 user_key。 先查询订单,仅在待支付且用户确认支付方式、币种、订单金额及 Stripe 另收手续费后发起。生成链接/预支付信息不表示支付成功,需用户完成收银台并查询订单核实。超时或状态不明先查订单,不自动重复支付。支付宝AI付仅适用于支持千问 batchPay 的客户端。
{"additionalProperties":false,"properties":{"agent_ref_id":{"description":"TourMindcreate_bookingbooking返回的referenceTourMind 订单号,必须属于当前鉴权用户;不是酒店确认号或第三方支付订单号。","type":"string"},"payment_method":{"description":"Payment method: Stripe, 微信支付, 支付宝, or 支付宝AI付 (Qwen native cashier; returns prepay_id,精确枚举:Stripe、微信支付、支付宝、支付宝AI付。后三种仅notCNY;支付宝AI付需千问原生收银台,返回pay_url)prepay_id,不是可点击支付链接。","type":"string"},"user_key":{"description":"TourMind由可信本地客户端配置的
⟨29 unchanged words⟩ ask users to paste user keys into chat. 普通 ToC 酒店查询可匿名,user_key 可选;下单、订单查询、取消和支付需要客户端安全配置的 user_key。 仅查询当前账号拥有的 TourMind 订单号;核实付款和酒店确认均使用本工具返回的状态。PENDING 表示已支付待确认,不能再次支付。 查询失败时先区分参数/鉴权错误和上游暂时失败:修正参数或重新授权后再调用,仅暂时失败可有限重试;不得把错误或空结果改述成成功。
{"additionalProperties":false,"properties":{"agent_ref_id":{"description":"TourMindcreate_bookingbooking返回的referenceTourMind 订单号,必须属于当前鉴权用户;不是酒店确认号或第三方支付订单号。","type":"string"},"user_key":{"description":"TourMind user由可信本地客户端配置的keyTourMindrequired用户凭证;勿让用户在聊天中粘贴。普通forToCauthenticated
Get live room types and rate products for a hotel and stay.
普通 ToC 酒店查询可匿名,user_key 可选;下单、订单查询、取消和支付需要客户端安全配置的 user_key。
先确定酒店和入住条件,返回 data.room_types[].products;选择符合成人/儿童和餐食政策的报价后验价。产品摘要未提供 maxChildren,缺失不等于不接待儿童,必须按实际儿童人数/年龄验价。 查询失败时先区分参数/鉴权错误和上游暂时失败:修正参数或重新授权后再调用,仅暂时失败可有限重试;不得把错误或空结果改述成成功。{"additionalProperties":false,"properties":{"adults":{"description":"Number每房成人数,不是所有房间合计;相同入住配置应用于每间房。有效入住人数必须大于of0。adults省略或in0each默认room1;负数无效。","type":"integer"},"check_in_date":{"description":"Check-in date in YYYY-MM-DD入住日期,YYYY-MM-DD。format省略/空字符串默认服务端当前日期的明天。
Search candidate hotels by region, coordinates and radius, or fuzzy keyword.
普通 ToC 酒店查询可匿名,user_key 可选;下单、订单查询、取消和支付需要客户端安全配置的 user_key。
任一非 null 坐标参数会选择坐标模式,必须齐全提供经纬度与正半径;否则非空 keyword 走模糊匹配,否则必须给 region_id。区域/坐标结果已实时筛选,关键词结果仅供定位。预算最终按验价总价核对,不能用每晚参考价代替订单总价。 查询失败时先区分参数/鉴权错误和上游暂时失败:修正参数或重新授权后再调用,仅暂时失败可有限重试;不得把错误或空结果改述成成功。{"additionalProperties":false,"properties":{"adults":{"description":"Number每房成人数,不是所有房间合计;相同入住配置应用于每间房。有效入住人数必须大于of0。adults省略或in0each默认room1;负数无效。 仅区域/坐标搜索使用;关键词搜索忽略入住条件。","type":"integer"},"check_in_date":{"description":"Check-in date in入住日期,YYYY-MM-DD。YYYY-MM-DD省略/空字符串默认服务端当前日期的明天。
⟨11 unchanged words⟩ name to TourMind regions, hotels, or coordinates. 普通 ToC 酒店查询可匿名,user_key 可选;下单、订单查询、取消和支付需要客户端安全配置的 user_key。 先用此工具解析用户地点/酒店名,再用返回的 ID 或坐标搜索酒店;不得编造 ID。 查询失败时先区分参数/鉴权错误和上游暂时失败:修正参数或重新授权后再调用,仅暂时失败可有限重试;不得把错误或空结果改述成成功。
{"additionalProperties":false,"properties":{"keyword":{"description":"Region, point of interest, landmark, shopping mall,地点或酒店名称。search_locationor必填非空白文本;search_hotelshotel中关键词模式优先于nameregion_id,坐标模式优先于关键词。","type":"string"},"user_key":{"description":"Optional由可信本地客户端配置的 TourMinduser用户凭证;勿让用户在聊天中粘贴。普通keyToCfor
Changed the definition of "create_booking" and "pay_order"
⟨67 unchanged words⟩ status notifications","type":"string"},"contact_phone":{"description":"Contact phone including country code","type":"string"},"currency":{"description":"Three-letter booking currency code ⟨32 unchanged words⟩ using the same occupancy","type":"integer"},"rooms":{"description":"Named guests grouped by room; when supplied length must equal room_count","items":{"additionalProperties":false,"properties":{"guests":{"items":{"additionalProperties":false,"properties":{"firstName":{"type":"string"},"lastName":{"type":"string"}},"required":["firstName","lastName"],"type":"object"},"type":["null","array"]}},"required":["guests"],"type":"object"},"type":["null","array"]},"total_price":{"description":"Verified total ⟨29 unchanged words⟩
Changed the definition of "cancel_booking", "create_booking", "pay_order" and 1 more
Cancel a booking owned by theuser_keyauthenticated account. Configure a valid TourMind user_key in a trusted local Skill or client integration that supplies the user_key tool argument. Do not ask users to paste user keys into chat.
⟨12 unchanged words⟩ :"TourMind user key required for authenticated ToCbookingorderoperationsaccess","type":"string"}},"required": ⟨4 unchanged words⟩
Certificate recorded, valid to 2027-04-12
Authorization not required
First tool surface recorded: 11 tools (server version 1.0.0)
Showing the latest 6 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
{"additionalProperties":true,"description":"返回字段说明(不增加校验约束;缺失、零值和 null 按各字段说明解释):\n返回值 [object] 必有字段=ok: 业务响应信封;字段缺失表示没有提供,不能自动补零。数组的 null 与 [] 都不含条目,但 null 不承诺完成了该部分查询。\n返回值.data [object] 必有字段=agent_ref_id,status,status_cn,total_amount,cancel_fee,currency,message: 取消处理结果;退款金额不等于退款已到账。\n返回值.data.agent_ref_id [string]: TourMind 订单号。\n返回值.data.cancel_fee [number]: 取消费用,currency 主单位;零表示本次计算无取消费。\n返回值.data.currency [string]: 订单金额币种。\n返回值.data.message [string]: 取消处理和退款说明。\n返回值.data.payment_method [string]: 原支付方式;未发生支付时可能省略。\n返回值.data.refund_amount [number]: 尚需退款金额,currency 主单位;仅特定已付款取消结果返回,缺失不等于零或已到账。\n返回值.data.status [string] 取值=[\"UNPAID\",\"PENDING\",\"CONFIRMED\",\"CANCELLED\",\"CONFIRM_FAILED\"]: 取消处理后的状态:UNPAID=待支付;PENDING=已支付待确认;CONFIRMED=已确认;CANCELLED=已取消;CONFIRM_FAILED=确认失败。仅发起取消不保证状态已变为 CANCELLED。\n返回值.data.status_cn [string]: 取消后订单状态中文说明。\n返回值.data.total_amount [number]: 全部房间、整段入住的订单总价,使用对应币种主单位(如 CNY 元),不是分;未包含另列的 Stripe 手续费,酒店到店收取费用以政策及 exclusions 为准。\n返回值.error [string]: 业务失败说明,不作为可重试或成功的唯一依据。\n返回值.error_code [string]: 鉴权等机器可读错误码,仅在错误路径提供。\n返回值.ok [boolean]: 业务是否成功。false 时读取 error/reason;工具执行错误也可能通过 MCP isError 返回而没有 structuredContent。\n返回值.reason [string] 取值=[\"invalid_request\",\"hotel_not_found\",\"upstream_timeout\",\"upstream_error\",\"hotel_detail_unavailable\"]: 失败原因:invalid_request=参数无效,hotel_not_found=酒店不存在,upstream_timeout=上游超时,upstream_error=上游失败,hotel_detail_unavailable=酒店详情不可用。成功空结果的 no_matching_live_room 位于 data.reason;批量逐项判断,不把一项失败当成整批失败。\n返回值 的分支 1:\n返回值 必有字段=data\n返回值.ok 取值=[true]\n返回值 的分支 2:\n返回值 必有字段=error,reason\n返回值.ok 取值=[false]\n","type":"object"}
{"additionalProperties":true,"description":"返回字段说明(不增加校验约束;缺失、零值和 null 按各字段说明解释):\n返回值 [object] 必有字段=ok: 业务响应信封;字段缺失表示没有提供,不能自动补零。数组的 null 与 [] 都不含条目,但 null 不承诺完成了该部分查询。\n返回值.data [object] 必有字段=room_types,total: 原始验价结果,保留 camelCase 的 rateInfos;不同于报价查询的 products。验价不锁库存。\n返回值.data.room_types [array|null]: 验价房型及房价。\n返回值.data.room_types[] [object] 必有字段=roomTypeCode,name,nameCN,bedTypeId,rateInfos\n返回值.data.room_types[].areaRange [string]: 房间面积范围,平方米。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].bedTypeDesc [string]: 床型说明。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].bedTypeDescCN [string]: 床型中文说明。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].bedTypeId [integer]: 内部标准床型 ID;零不能用于推断床型。\n返回值.data.room_types[].bedWidth [string]: 已核实床宽,米;缺失表示未知。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].hasWindow [null|boolean]: 是否有窗;明确 false 表示无窗,缺失/null 表示未知。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].name [string]: 名称。\n返回值.data.room_types[].nameCN [string]: 中文名称。\n返回值.data.room_types[].rateInfos [null|array]: 原始验价报价列表;与查询的 products 结构不同,null/空数组表示没有返回报价。\n返回值.data.room_types[].rateInfos[] [object] 必有字段=roomTypeName,roomTypeNameCN,bedTypeDesc,bedTypeDescCN,bedTypes,bedTypesCN,bedTypeId,rateCode,name,allotment,maxOccupancy,maxChildren,paymentType,currencyCode,totalPrice,discountedPrice,perNightPrice,totalTaxAndFee,mealInfo,refundable,isOTAForbidden,packageRate,dcTag,currencyCodeFX,totalPriceFX,perNightPriceFX,isOnRequest\n返回值.data.room_types[].rateInfos[].allotment [integer]: 本次报价通过库存检查的房间数,当前实现填写请求的 room_count,并非供应商全部剩余库存;不锁库存,不能用它推断最大可订数量。零不表示无限库存。\n返回值.data.room_types[].rateInfos[].bedTypeDesc [string]: 床型说明。\n返回值.data.room_types[].rateInfos[].bedTypeDescCN [string]: 床型中文说明。\n返回值.data.room_types[].rateInfos[].bedTypeId [integer]: 内部标准床型 ID;零不能用于推断床型。\n返回值.data.room_types[].rateInfos[].bedTypes [null|array]: 可选床型说明列表;null 表示未提供。\n返回值.data.room_types[].rateInfos[].bedTypes[] [string]\n返回值.data.room_types[].rateInfos[].bedTypesCN [null|array]: 可选床型中文说明列表;null 表示未提供。\n返回值.data.room_types[].rateInfos[].bedTypesCN[] [string]\n返回值.data.room_types[].rateInfos[].benefits [null|array]: 报价礼遇列表。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].rateInfos[].benefits[] [object] 必有字段=label,desc,tags\n返回值.data.room_types[].rateInfos[].benefits[].desc [string]: 说明文本。\n返回值.data.room_types[].rateInfos[].benefits[].label [string]: 礼遇类别:luxury、virtuoso、stay_n_pay_m。\n返回值.data.room_types[].rateInfos[].benefits[].payDays [integer]: 连住优惠计费天数。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].rateInfos[].benefits[].stayDays [integer]: 连住天数,仅适用连住优惠。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].rateInfos[].benefits[].tags [null|array]: 礼遇细项标签列表。\n返回值.data.room_types[].rateInfos[].benefits[].tags[] [string]\n返回值.data.room_types[].rateInfos[].cancelPolicyInfos [null|array]: 取消罚则时段;缺失/null/空数组不构成可免费取消的承诺。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].rateInfos[].cancelPolicyInfos[] [object] 必有字段=startDateTime,currencyCode\n返回值.data.room_types[].rateInfos[].cancelPolicyInfos[].amount [null|number]: 金额,所在对象 currency/currencyCode 的主单位;cancelPolicyInfos 中表示该时段取消费用。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].rateInfos[].cancelPolicyInfos[].currencyCode [string]: 金额币种 ISO 4217。\n返回值.data.room_types[].rateInfos[].cancelPolicyInfos[].endDateTime [string]: 罚则结束时间,保留返回的时区;缺失表示未提供该时段终点。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].rateInfos[].cancelPolicyInfos[].nightCount [null|integer]: 罚款折合晚数,未提供时不按零处理。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].rateInfos[].cancelPolicyInfos[].startDateTime [string]: 罚则起始时间,通常 RFC3339 含时区;首段起始时间对应免费取消截止。保留返回的时区;缺时区或无法解析时不猜测。\n返回值.data.room_types[].rateInfos[].chargeableRateInfo [null|object] 必有字段=Total,BaseRate,TaxAndServiceFee,SalesTax,PerRoomBaseRate,HotelFees: 供应商原始计费明细,保留 PascalCase 字段;整数金额为供应商内部计费口径,不直接当成 MCP 展示主单位金额;下单使用 totalPrice/currencyCode。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].rateInfos[].chargeableRateInfo.BaseRate [integer]: 供应商原始总房费,内部整数计费口径。\n返回值.data.room_types[].rateInfos[].chargeableRateInfo.HotelFees [null|array]: 酒店当地额外收取费用,不包含在该计费对象 Total 中;整数金额使用供应商内部口径。\n返回值.data.room_types[].rateInfos[].chargeableRateInfo.HotelFees[] [object] 必有字段=desc,amount,currency\n返回值.data.room_types[].rateInfos[].chargeableRateInfo.HotelFees[].amount [integer]: 供应商原始酒店额外费用整数金额,内部计费口径;不能直接当展示元。\n返回值.data.room_types[].rateInfos[].chargeableRateInfo.HotelFees[].currency [string]: 金额币种 ISO 4217。\n返回值.data.room_types[].rateInfos[].chargeableRateInfo.HotelFees[].desc [string]: 说明文本。\n返回值.data.room_types[].rateInfos[].chargeableRateInfo.PerRoomBaseRate [integer]: 供应商原始单间房费,内部整数计费口径。\n返回值.data.room_types[].rateInfos[].chargeableRateInfo.SalesTax [integer]: 供应商原始销售税,内部整数计费口径。\n返回值.data.room_types[].rateInfos[].chargeableRateInfo.TaxAndServiceFee [integer]: 供应商原始税及服务费,内部整数计费口径。\n返回值.data.room_types[].rateInfos[].chargeableRateInfo.Total [integer]: 供应商原始含税总金额,内部整数计费口径;不代替 totalPrice。\n返回值.data.room_types[].rateInfos[].currencyCode [string]: 金额币种 ISO 4217。\n返回值.data.room_types[].rateInfos[].currencyCodeFX [string]: 换算展示币种 ISO 4217;空串表示未提供。\n返回值.data.room_types[].rateInfos[].dailyPrices [null|array]: 逐入住日期价格明细。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].rateInfos[].dailyPrices[] [object] 必有字段=stayDate,price\n返回值.data.room_types[].rateInfos[].dailyPrices[].price [number]: 该入住日每房价格,所属报价币种主单位;不是全部房间整段入住总价。\n返回值.data.room_types[].rateInfos[].dailyPrices[].stayDate [string]: 入住日期 YYYY-MM-DD。\n返回值.data.room_types[].rateInfos[].dcTag [boolean]: 直签报价标记。\n返回值.data.room_types[].rateInfos[].discountedPrice [number]: 优惠券后金额,currencyCode 主单位;仅大于零表示可用券后价,零不表示免费。\n返回值.data.room_types[].rateInfos[].essentialInformation [null|array]: 供应商重要提示列表;下单前需展示影响入住或费用的条款。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].rateInfos[].essentialInformation[] [string]\n返回值.data.room_types[].rateInfos[].isOTAForbidden [boolean]: 该报价是否禁止 OTA 销售。\n返回值.data.room_types[].rateInfos[].isOnRequest [boolean]: true 表示需向供应商申请确认,非即时确认;false 不表示已预留库存。\n返回值.data.room_types[].rateInfos[].maxChildren [integer]: 每房额外儿童上限,独立于成人上限 maxOccupancy;供应商未提供正数上限时当前实现使用请求儿童数。缺失表示未提供,零也不能单独证明酒店不接待儿童,须以实际年龄和人数验价。\n返回值.data.room_types[].rateInfos[].maxDurationForBookingConfirmMinutes [null|integer]: 需申请确认报价的最大等待时间,分钟;仅配置存在时返回,缺失不能自行承诺固定确认时限。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].rateInfos[].maxOccupancy [integer]: 每房成人上限,不是成人加儿童的总上限;儿童额外上限见 maxChildren。缺失表示未提供,不能按零处理;零值也不能用于推断可以无限入住,须按实际入住人数验价。\n返回值.data.room_types[].rateInfos[].mealInfo [object] 必有字段=mealType,mealCount,mealChildCount: 餐食类型与成人/儿童份数。\n返回值.data.room_types[].rateInfos[].mealInfo.mealChildCount [integer]: 供应商提供的儿童餐食份数,不代表儿童入住容量;零不能改变已知餐食类型。\n返回值.data.room_types[].rateInfos[].mealInfo.mealCount [integer]: 供应商提供的成人餐食份数,辅助解释 mealType;零不覆盖已知类型,如类型 4 仍为双早。儿童份数另见 mealChildCount。\n返回值.data.room_types[].rateInfos[].mealInfo.mealType [string]: 餐食类型字符串编码:1=不含餐;2=早餐(份数见 meal_count/mealCount);3=1份早餐;4=2份早餐;5=3份早餐;6=4份早餐;7=5份早餐;8=6份早餐;9=7份早餐;10=8份早餐;11=午餐;12=晚餐;13=午餐和晚餐;14=半膳(早餐加午餐或晚餐);15=全膳(早餐、午餐、晚餐);16=一价全包;17=膳食自理(厨房设施,并非自助餐);18=早餐和午餐;19=早餐和晚餐。meal_count/mealCount 补充份数,零值不能覆盖已知餐食类型;空串或未识别编码表示类型未知,不推断为不含餐。\n返回值.data.room_types[].rateInfos[].name [string]: 名称。\n返回值.data.room_types[].rateInfos[].packageRate [boolean]: 是否套餐报价。\n返回值.data.room_types[].rateInfos[].paxRooms [null|array]: 报价中的每组房间入住人数及每日价格。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].rateInfos[].paxRooms[] [object] 必有字段=roomCount,adults,children,dailyPriceInfo\n返回值.data.room_types[].rateInfos[].paxRooms[].adults [integer]: 每房成人数。\n返回值.data.room_types[].rateInfos[].paxRooms[].children [integer]: 每房儿童数。\n返回值.data.room_types[].rateInfos[].paxRooms[].childrenAges [null|array]: 每房儿童年龄,0–17 岁,与 children 个数一致;缺失不是年龄为零。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].rateInfos[].paxRooms[].childrenAges[] [integer]\n返回值.data.room_types[].rateInfos[].paxRooms[].dailyPriceInfo [null|array]: 入住日期逐日价格明细。\n返回值.data.room_types[].rateInfos[].paxRooms[].dailyPriceInfo[] [object] 必有字段=date,price,taxAndFee\n返回值.data.room_types[].rateInfos[].paxRooms[].dailyPriceInfo[].date [string]: 入住日期 YYYY-MM-DD。\n返回值.data.room_types[].rateInfos[].paxRooms[].dailyPriceInfo[].price [number]: 该入住日每房价格,所属报价币种主单位;不是全部房间整段入住总价。\n返回值.data.room_types[].rateInfos[].paxRooms[].dailyPriceInfo[].taxAndFee [number]: 该日期税费,所属报价币种主单位,不应在含税总价上重复累加。\n返回值.data.room_types[].rateInfos[].paxRooms[].roomCount [integer]: 本组相同入住人数的房间数。\n返回值.data.room_types[].rateInfos[].paymentType [integer]: 报价支付类型:1=预付,5=到店支付;当前生成器返回 1。不是 pay_order.payment_method。\n返回值.data.room_types[].rateInfos[].perNightPrice [number]: 平均每房每晚价,currencyCode 主单位;不是整段入住总价,不含另列 Stripe 手续费。\n返回值.data.room_types[].rateInfos[].perNightPriceFX [number]: 换算后的平均每房每晚展示价,currencyCodeFX 主单位。\n返回值.data.room_types[].rateInfos[].priceDetail [null|object] 必有字段=total,currency,baseRate,dailyBase,inclusions,exclusions: 价格组成;inclusions 已含、exclusions 不含,避免重复计费。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].rateInfos[].priceDetail.baseRate [number]: 价格明细基础房费,currency 主单位。\n返回值.data.room_types[].rateInfos[].priceDetail.currency [string]: 金额币种 ISO 4217。\n返回值.data.room_types[].rateInfos[].priceDetail.dailyBase [null|array]: 逐日基础房费。\n返回值.data.room_types[].rateInfos[].priceDetail.dailyBase[] [object] 必有字段=stayDate,price\n返回值.data.room_types[].rateInfos[].priceDetail.dailyBase[].price [number]: 该入住日每房价格,所属报价币种主单位;不是全部房间整段入住总价。\n返回值.data.room_types[].rateInfos[].priceDetail.dailyBase[].stayDate [string]: 入住日期 YYYY-MM-DD。\n返回值.data.room_types[].rateInfos[].priceDetail.exclusions [null|array]: 未包含在总价中的费用,可能到店支付。\n返回值.data.room_types[].rateInfos[].priceDetail.exclusions[] [object] 必有字段=type,name,amount,currency\n返回值.data.room_types[].rateInfos[].priceDetail.exclusions[].amount [number]: 金额,所在对象 currency/currencyCode 的主单位;cancelPolicyInfos 中表示该时段取消费用。\n返回值.data.room_types[].rateInfos[].priceDetail.exclusions[].currency [string]: 金额币种 ISO 4217。\n返回值.data.room_types[].rateInfos[].priceDetail.exclusions[].name [string]: 名称。\n返回值.data.room_types[].rateInfos[].priceDetail.exclusions[].type [integer]: 供应商费用类别整数代码;具体收费含义以同项 name 和金额为准。\n返回值.data.room_types[].rateInfos[].priceDetail.inclusions [null|array]: 已包含在总价中的费用。\n返回值.data.room_types[].rateInfos[].priceDetail.inclusions[] [object] 必有字段=type,name,amount,currency\n返回值.data.room_types[].rateInfos[].priceDetail.inclusions[].amount [number]: 金额,所在对象 currency/currencyCode 的主单位;cancelPolicyInfos 中表示该时段取消费用。\n返回值.data.room_types[].rateInfos[].priceDetail.inclusions[].currency [string]: 金额币种 ISO 4217。\n返回值.data.room_types[].rateInfos[].priceDetail.inclusions[].name [string]: 名称。\n返回值.data.room_types[].rateInfos[].priceDetail.inclusions[].type [integer]: 供应商费用类别整数代码;具体收费含义以同项 name 和金额为准。\n返回值.data.room_types[].rateInfos[].priceDetail.total [number]: 价格明细总额,currency 主单位。\n返回值.data.room_types[].rateInfos[].rateCode [string]: 验价后的不透明报价代码;下单使用这个值。\n返回值.data.room_types[].rateInfos[].recommendedPrice [null|number]: 建议售价,currencyCode 主单位,不是已核实的应付金额。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].rateInfos[].refundable [boolean]: 供应商是否标记可退款;true 不等于当前免费取消,还需检查 cancelPolicyInfos 截止时间和费用。\n返回值.data.room_types[].rateInfos[].roomTypeName [string]: 房型名称。\n返回值.data.room_types[].rateInfos[].roomTypeNameCN [string]: 房型中文名称。\n返回值.data.room_types[].rateInfos[].supplierName [string]: 供应商名称。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].rateInfos[].totalPrice [number]: 全部房间、整段入住的订单总价,使用对应币种主单位(如 CNY 元),不是分;未包含另列的 Stripe 手续费,酒店到店收取费用以政策及 exclusions 为准。\n返回值.data.room_types[].rateInfos[].totalPriceFX [number]: 全部房间整段入住的换算展示总价,currencyCodeFX 主单位;不替代结算金额。\n返回值.data.room_types[].rateInfos[].totalTaxAndFee [number]: 报价所含税费合计,currencyCode 主单位;并非所有到店费用,避免在总价上重复相加。\n返回值.data.room_types[].roomTypeCode [string]: 房型代码。\n返回值.data.total [integer]: 返回房型数量。\n返回值.error [string]: 业务失败说明,不作为可重试或成功的唯一依据。\n返回值.error_code [string]: 鉴权等机器可读错误码,仅在错误路径提供。\n返回值.ok [boolean]: 业务是否成功。false 时读取 error/reason;工具执行错误也可能通过 MCP isError 返回而没有 structuredContent。\n返回值.reason [string] 取值=[\"invalid_request\",\"hotel_not_found\",\"upstream_timeout\",\"upstream_error\",\"hotel_detail_unavailable\"]: 失败原因:invalid_request=参数无效,hotel_not_found=酒店不存在,upstream_timeout=上游超时,upstream_error=上游失败,hotel_detail_unavailable=酒店详情不可用。成功空结果的 no_matching_live_room 位于 data.reason;批量逐项判断,不把一项失败当成整批失败。\n返回值 的分支 1:\n返回值 必有字段=data\n返回值.ok 取值=[true]\n返回值 的分支 2:\n返回值 必有字段=error,reason\n返回值.ok 取值=[false]\n","type":"object"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true ⟨4 unchanged words⟩
{"additionalProperties":true,"description":"返回字段说明(不增加校验约束;缺失、零值和 null 按各字段说明解释):\n返回值 [object] 必有字段=ok,skill_update: Skill 更新提示位于顶层 skill_update,没有 data 字段。\n返回值.ok [boolean] 取值=[true]: 更新检查成功。\n返回值.skill_update [object] 必有字段=available,display_to_user,latest_version: Skill 版本更新提示。\n返回值.skill_update.available [boolean]: 是否有更新版本。\n返回值.skill_update.display_to_user [boolean]: 是否应向用户展示更新提示。\n返回值.skill_update.latest_version [string]: 最新已发布 Skill 版本。\n返回值.skill_update.message [string]: 面向用户的结果说明。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.skill_update.release_source_url [string]: Skill 官方发布来源链接。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n","type":"object"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true ⟨4 unchanged words⟩
{"additionalProperties":true,"description":"返回字段说明(不增加校验约束;缺失、零值和 null 按各字段说明解释):\n返回值 [object] 必有字段=ok: 业务响应信封;字段缺失表示没有提供,不能自动补零。数组的 null 与 [] 都不含条目,但 null 不承诺完成了该部分查询。\n返回值.data [object] 必有字段=agent_ref_id,total_price,currency,status,message: 订单创建结果,不代表支付成功。\n返回值.data.agent_ref_id [string]: TourMind 订单号;用于后续查询、支付和取消,不是酒店确认号。\n返回值.data.currency [string]: 账号结算币种,ISO 4217。\n返回值.data.message [string]: 订单创建结果及下一步支付说明。\n返回值.data.status [string] 取值=[\"confirmed\"]: 创建接口固定返回 confirmed,不能据此认定已付款或供应商已确认;以 query_booking 状态为准。\n返回值.data.total_price [number]: 全部房间、整段入住的订单总价,使用对应币种主单位(如 CNY 元),不是分;未包含另列的 Stripe 手续费,酒店到店收取费用以政策及 exclusions 为准。\n返回值.error [string]: 业务失败说明,不作为可重试或成功的唯一依据。\n返回值.error_code [string]: 鉴权等机器可读错误码,仅在错误路径提供。\n返回值.ok [boolean]: 业务是否成功。false 时读取 error/reason;工具执行错误也可能通过 MCP isError 返回而没有 structuredContent。\n返回值.reason [string] 取值=[\"invalid_request\",\"hotel_not_found\",\"upstream_timeout\",\"upstream_error\",\"hotel_detail_unavailable\"]: 失败原因:invalid_request=参数无效,hotel_not_found=酒店不存在,upstream_timeout=上游超时,upstream_error=上游失败,hotel_detail_unavailable=酒店详情不可用。成功空结果的 no_matching_live_room 位于 data.reason;批量逐项判断,不把一项失败当成整批失败。\n返回值 的分支 1:\n返回值 必有字段=data\n返回值.ok 取值=[true]\n返回值 的分支 2:\n返回值 必有字段=error,reason\n返回值.ok 取值=[false]\n","type":"object"}
{"additionalProperties":true,"description":"返回字段说明(不增加校验约束;缺失、零值和 null 按各字段说明解释):\n返回值 [object] 必有字段=ok: 业务响应信封;字段缺失表示没有提供,不能自动补零。数组的 null 与 [] 都不含条目,但 null 不承诺完成了该部分查询。\n返回值.data [object] 必有字段=hotel,rooms: 静态酒店和房型资料,不是库存或实时价格。\n返回值.data.hotel [object] 必有字段=hotel_id,name,descriptions: 酒店静态详情,包括设施、图片和入住政策。\n返回值.data.hotel.address [string]: 酒店地址。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.address_cn [string]: 中文酒店地址。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.amenities [string]: 酒店设施文本。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.amenities_hotel [null|array]: 酒店设施项目。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.amenities_hotel[] [object] 必有字段=id,name,value\n返回值.data.hotel.amenities_hotel[].id [string]: 设施或属性标识。\n返回值.data.hotel.amenities_hotel[].name [string]: 名称。\n返回值.data.hotel.amenities_hotel[].value: 供应商设施属性值,类型随设施而异,可为标量、数组、对象或 null;不能把 null 当 false。\n返回值.data.hotel.amenities_room [null|array]: 房间设施项目。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.amenities_room[] [object] 必有字段=id,name,value\n返回值.data.hotel.amenities_room[].id [string]: 设施或属性标识。\n返回值.data.hotel.amenities_room[].name [string]: 名称。\n返回值.data.hotel.amenities_room[].value: 供应商设施属性值,类型随设施而异,可为标量、数组、对象或 null;不能把 null 当 false。\n返回值.data.hotel.checkin [null|object] 必有字段=begin_time,end_time,instructions,special_instructions,min_age: 酒店当地入住规则。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.checkin.begin_time [string]: 酒店当地办理入住开始时间。\n返回值.data.hotel.checkin.end_time [string]: 酒店当地办理入住结束时间。\n返回值.data.hotel.checkin.instructions [string]: 入住须知。\n返回值.data.hotel.checkin.min_age [string]: 办理入住的最低年龄说明。\n返回值.data.hotel.checkin.special_instructions [string]: 特殊入住要求。\n返回值.data.hotel.checkout [null|object] 必有字段=time: 酒店当地退房规则。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.checkout.time [string]: 酒店当地退房时间。\n返回值.data.hotel.country [string]: 国家名称。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.country_code [string]: 国家代码。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.descriptions [object] 必有字段=Location,Headline,BusinessAmenities,Rooms,Attractions: 酒店详细介绍,保留原始字段大小写。\n返回值.data.hotel.descriptions.Attractions [string]: 周边景点介绍。\n返回值.data.hotel.descriptions.BusinessAmenities [string]: 商务设施介绍。\n返回值.data.hotel.descriptions.Headline [string]: 酒店介绍摘要。\n返回值.data.hotel.descriptions.Location [string]: 位置介绍。\n返回值.data.hotel.descriptions.Rooms [string]: 房间介绍。\n返回值.data.hotel.fees [null|object] 必有字段=mandatory,optional: 可能的强制或可选到店费用说明。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.fees.mandatory [string]: 强制收取费用说明,核对是否另付。\n返回值.data.hotel.fees.optional [string]: 可选服务收费说明。\n返回值.data.hotel.hotel_id [integer]: TourMind 酒店数字 ID;作为后续工具输入时用字符串。\n返回值.data.hotel.hotel_image [string]: 酒店主图 URL。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.hotel_images [null|array]: 酒店图片 URL 列表。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.hotel_images[] [string]\n返回值.data.hotel.image_groups [null|array]: 按类别分组的图片。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.image_groups[] [object] 必有字段=caption,images\n返回值.data.hotel.image_groups[].caption [string]: 图片分组标题。\n返回值.data.hotel.image_groups[].category [integer]: 图片类别代码。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.image_groups[].images [null|array]: 图片列表。\n返回值.data.hotel.image_groups[].images[] [object] 必有字段=hero_image,links\n返回值.data.hotel.image_groups[].images[].hero_image [boolean]: 是否主图。\n返回值.data.hotel.image_groups[].images[].links [object]: 图片尺寸到下载链接信息的映射。\n返回值.data.hotel.image_groups[].images[].links.* [object]\n返回值.data.hotel.image_groups[].images[].links.*.href [string]: 图片原始 URL。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.image_groups[].images[].links.*.local_href [string]: 本地镜像图片 URL。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.image_groups[].images[].links.*.method [string]: 下载图片的 HTTP 方法。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.latitude [string]: 纬度,单位度;详情返回数字字符串,搜索返回 number。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.location_desc [string]: 位置说明。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.longitude [string]: 经度,单位度;详情返回数字字符串,搜索返回 number。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.name [string]: 名称。\n返回值.data.hotel.name_cn [string]: 中文名称。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.policies [null|object] 必有字段=know_before_you_go: 酒店通用政策,不代替订单取消政策。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.policies.know_before_you_go [string]: 入住前需知政策。\n返回值.data.hotel.policy_description [string]: 酒店政策文本,不代替具体报价取消政策。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.property_description [string]: 酒店介绍。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.region_id [integer]: TourMind 地域 ID;搜索结果可能为字符串,详情为整数,以 Schema 类型为准。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.region_name_long [string]: 完整地域名称。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.region_name_long_cn [string]: 完整地域中文名称。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.room_desc [string]: 房间说明。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.star_rating [integer]: 酒店星级,未提供或零值不等于零星酒店。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotel.telephone [string]: 酒店联系电话。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.rooms [array|null]: 静态房型列表;null 或空数组不等于实时无房。\n返回值.data.rooms[] [object] 必有字段=room_id,name\n返回值.data.rooms[].area_range [string]: 房间面积范围,平方米。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.rooms[].basic_room_image [string]: 房型图片 URL。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.rooms[].bed_type [integer]: 内部标准床型 ID。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.rooms[].bed_type_desc [string]: 床型说明。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.rooms[].bed_type_desc_cn [string]: 床型中文说明。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.rooms[].name [string]: 名称。\n返回值.data.rooms[].name_cn [string]: 中文名称。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.rooms[].occupancy [integer]: 静态房型入住容量参考,不替代当前报价的成人/儿童容量及验价。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.rooms[].room_id [string]: 静态房型 ID。\n返回值.error [string]: 业务失败说明,不作为可重试或成功的唯一依据。\n返回值.error_code [string]: 鉴权等机器可读错误码,仅在错误路径提供。\n返回值.ok [boolean]: 业务是否成功。false 时读取 error/reason;工具执行错误也可能通过 MCP isError 返回而没有 structuredContent。\n返回值.reason [string] 取值=[\"invalid_request\",\"hotel_not_found\",\"upstream_timeout\",\"upstream_error\",\"hotel_detail_unavailable\"]: 失败原因:invalid_request=参数无效,hotel_not_found=酒店不存在,upstream_timeout=上游超时,upstream_error=上游失败,hotel_detail_unavailable=酒店详情不可用。成功空结果的 no_matching_live_room 位于 data.reason;批量逐项判断,不把一项失败当成整批失败。\n返回值 的分支 1:\n返回值 必有字段=data\n返回值.ok 取值=[true]\n返回值 的分支 2:\n返回值 必有字段=error,reason\n返回值.ok 取值=[false]\n","type":"object"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true ⟨4 unchanged words⟩
{"additionalProperties":true,"description":"返回字段说明(不增加校验约束;缺失、零值和 null 按各字段说明解释):\n返回值 [object] 必有字段=ok: 业务响应信封;字段缺失表示没有提供,不能自动补零。数组的 null 与 [] 都不含条目,但 null 不承诺完成了该部分查询。\n返回值.data [object]: 按 payment_method 区分支付结果。应付金额见 Stripe payable_amount;微信/支付宝以订单及收银台为准。必须查询订单确认支付结果。\n返回值.data 的分支 1:\n返回值.data [object] 必有字段=agent_ref_id,payment_method,pay_url,message,expires_at,one_time: 微信/支付宝支付链接。\n返回值.data.agent_ref_id [string]: TourMind 订单号。\n返回值.data.expires_at [string]: 支付链接到期时间 RFC3339,含时区。\n返回值.data.message [string]: 支付操作说明。\n返回值.data.one_time [boolean] 取值=[true]: 支付链接只可使用一次。\n返回值.data.pay_url [string]: 用户完成支付的 URL;生成链接不代表付款成功。支付宝AI付为空字符串,使用 prepay_id 调起专用收银台。\n返回值.data.payment_method [string] 取值=[\"微信支付\",\"支付宝\"]: 仅 CNY 订单支持。\n返回值.data 的分支 2:\n返回值.data [object] 必有字段=agent_ref_id,payment_method,pay_url,message,request_id,third_party_order_no,order_amount,stripe_payment_fee: Stripe 支付链接及费用。\n返回值.data.agent_ref_id [string]: TourMind 订单号。\n返回值.data.message [string]: 支付操作说明。\n返回值.data.order_amount [number]: 全部房间、整段入住的订单总价,使用对应币种主单位(如 CNY 元),不是分;未包含另列的 Stripe 手续费,酒店到店收取费用以政策及 exclusions 为准。\n返回值.data.pay_url [string]: 用户完成支付的 URL;生成链接不代表付款成功。支付宝AI付为空字符串,使用 prepay_id 调起专用收银台。\n返回值.data.payment_method [string] 取值=[\"Stripe\"]: Stripe 信用卡支付。\n返回值.data.request_id [string]: 支付服务请求 ID,用于关联支付请求。\n返回值.data.stripe_payment_fee [object] 必有字段=fee_rate,fee_amount,payable_amount,currency,notice: Stripe 另收手续费及含手续费的应付金额。\n返回值.data.stripe_payment_fee.currency [string]: 金额币种 ISO 4217。\n返回值.data.stripe_payment_fee.fee_amount [number]: Stripe 手续费金额,currency 主单位,已经按服务端精度取整。\n返回值.data.stripe_payment_fee.fee_rate [number]: 手续费比例,当前 0.035 即 3.5%。\n返回值.data.stripe_payment_fee.notice [string]: 费用来源及用途说明。\n返回值.data.stripe_payment_fee.payable_amount [number]: 订单金额加 Stripe 手续费后的实际应付总额,currency 主单位;尚未支付。\n返回值.data.third_party_order_no [string]: 支付平台订单号,与 TourMind 订单号不同。\n返回值.data 的分支 3:\n返回值.data [object] 必有字段=agent_ref_id,payment_method,pay_url,message,request_id,third_party_order_no,prepay_id,expires_at: 支付宝AI付预支付信息。\n返回值.data.agent_ref_id [string]: TourMind 订单号。\n返回值.data.expires_at [string]: 预支付信息到期时间 RFC3339,含时区。\n返回值.data.message [string]: 支付操作说明。\n返回值.data.pay_url [string] 取值=[\"\"]: 用户完成支付的 URL;生成链接不代表付款成功。支付宝AI付为空字符串,使用 prepay_id 调起专用收银台。\n返回值.data.payment_method [string] 取值=[\"支付宝AI付\"]: 仅 CNY,千问原生收银台。\n返回值.data.prepay_id [string]: 千问 batchPay 所需预支付标识,不是成功付款凭证。\n返回值.data.request_id [string]: 支付服务请求 ID,用于关联支付请求。\n返回值.data.third_party_order_no [string]: 支付平台订单号,与 TourMind 订单号不同。\n返回值.error [string]: 业务失败说明,不作为可重试或成功的唯一依据。\n返回值.error_code [string]: 鉴权等机器可读错误码,仅在错误路径提供。\n返回值.ok [boolean]: 业务是否成功。false 时读取 error/reason;工具执行错误也可能通过 MCP isError 返回而没有 structuredContent。\n返回值.reason [string] 取值=[\"invalid_request\",\"hotel_not_found\",\"upstream_timeout\",\"upstream_error\",\"hotel_detail_unavailable\"]: 失败原因:invalid_request=参数无效,hotel_not_found=酒店不存在,upstream_timeout=上游超时,upstream_error=上游失败,hotel_detail_unavailable=酒店详情不可用。成功空结果的 no_matching_live_room 位于 data.reason;批量逐项判断,不把一项失败当成整批失败。\n返回值 的分支 1:\n返回值 必有字段=data\n返回值.ok 取值=[true]\n返回值 的分支 2:\n返回值 必有字段=error,reason\n返回值.ok 取值=[false]\n","type":"object"}
{"additionalProperties":true,"description":"返回字段说明(不增加校验约束;缺失、零值和 null 按各字段说明解释):\n返回值 [object] 必有字段=ok: 业务响应信封;字段缺失表示没有提供,不能自动补零。数组的 null 与 [] 都不含条目,但 null 不承诺完成了该部分查询。\n返回值.data [object] 必有字段=agent_ref_id,status,status_cn,hotel_id,hotel_name,room_type,check_in,check_out,room_count,total_price,currency,contact_name,hotel_confirmation_no,order_date: 当前账号所属订单的最新状态。\n返回值.data.agent_ref_id [string]: TourMind 订单号。\n返回值.data.check_in [string]: 入住日期 YYYY-MM-DD。\n返回值.data.check_out [string]: 离店日期 YYYY-MM-DD。\n返回值.data.contact_name [string]: 订单联系人姓名。\n返回值.data.currency [string]: 订单金额币种,ISO 4217。\n返回值.data.hotel_confirmation_no [string]: 酒店确认号;空字符串表示尚未提供,不应编造。\n返回值.data.hotel_id [integer]: 酒店 ID;传回工具时转换为字符串。\n返回值.data.hotel_name [string]: 订单酒店名称。\n返回值.data.order_date [string]: 订单创建时间 YYYY-MM-DD HH:mm:ss,接口未携带时区,不自行补 UTC。\n返回值.data.room_count [integer]: 预订房间数。\n返回值.data.room_type [string]: 预订房型。\n返回值.data.status [string] 取值=[\"UNPAID\",\"PENDING\",\"CONFIRMED\",\"CANCELLED\",\"CONFIRM_FAILED\"]: UNPAID=待支付;PENDING=待确认,不应重复支付;CONFIRMED=已确认;CANCELLED=已取消;CONFIRM_FAILED=确认失败。\n返回值.data.status_cn [string]: 订单状态中文说明。\n返回值.data.total_price [number]: 全部房间、整段入住的订单总价,使用对应币种主单位(如 CNY 元),不是分;未包含另列的 Stripe 手续费,酒店到店收取费用以政策及 exclusions 为准。\n返回值.error [string]: 业务失败说明,不作为可重试或成功的唯一依据。\n返回值.error_code [string]: 鉴权等机器可读错误码,仅在错误路径提供。\n返回值.ok [boolean]: 业务是否成功。false 时读取 error/reason;工具执行错误也可能通过 MCP isError 返回而没有 structuredContent。\n返回值.reason [string] 取值=[\"invalid_request\",\"hotel_not_found\",\"upstream_timeout\",\"upstream_error\",\"hotel_detail_unavailable\"]: 失败原因:invalid_request=参数无效,hotel_not_found=酒店不存在,upstream_timeout=上游超时,upstream_error=上游失败,hotel_detail_unavailable=酒店详情不可用。成功空结果的 no_matching_live_room 位于 data.reason;批量逐项判断,不把一项失败当成整批失败。\n返回值 的分支 1:\n返回值 必有字段=data\n返回值.ok 取值=[true]\n返回值 的分支 2:\n返回值 必有字段=error,reason\n返回值.ok 取值=[false]\n","type":"object"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true ⟨3 unchanged words⟩
{"additionalProperties":true,"description":"返回字段说明(不增加校验约束;缺失、零值和 null 按各字段说明解释):\n返回值 [object] 必有字段=ok: 业务响应信封;字段缺失表示没有提供,不能自动补零。数组的 null 与 [] 都不含条目,但 null 不承诺完成了该部分查询。\n返回值.data [object] 必有字段=room_types,total,stripe_payment_fee_notice: 房价查询结果。非空返回 room_types/total/手续费说明;空结果增加 reason。\n返回值.data.reason [string] 取值=[\"no_matching_live_room\"]: 仅成功空结果出现,表示当前没有匹配的实时房价。\n返回值.data.room_types [array]: 实时房型列表;空数组表示该入住条件下没有匹配报价。\n返回值.data.room_types[] [object] 必有字段=name,products\n返回值.data.room_types[].basic_room_image [string]: 房型图片 URL。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].bed_type_desc [string]: 床型说明。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].name [string]: 名称。\n返回值.data.room_types[].name_cn [string]: 中文名称。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].products [null|array]: 按入住容量、餐食和取消政策归并的报价产品列表。\n返回值.data.room_types[].products[] [object] 必有字段=max_occupancy,meal_type,meal_count,cancellation_policy,rate\n返回值.data.room_types[].products[].cancellation_policy [object] 必有字段=type,effective_non_refundable: 汇总取消政策;仍须在下单前验价。\n返回值.data.room_types[].products[].cancellation_policy.advanced_hour [integer]: 供应商取消提前小时数;以实际截止时间为准,不自行重新推算。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].products[].cancellation_policy.effective_non_refundable [boolean]: 是否已按不可退款处理,包括原不可退、缺少取消信息或截止时间已过。\n返回值.data.room_types[].products[].cancellation_policy.free_cancel_deadline [string]: 免费取消截止时间,通常 RFC3339,按返回的时区/UTC 偏移解释,不按客户端当地时间替换;若没有时区或无法解析,不承诺免费取消。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.room_types[].products[].cancellation_policy.type [string] 取值=[\"non_refundable\",\"free_cancel_before_deadline\"]: 取消类型:non_refundable=当前不可退款;free_cancel_before_deadline=截止前可免费取消。\n返回值.data.room_types[].products[].max_occupancy [integer]: 每房成人上限,不是成人加儿童的总上限;儿童额外上限见 maxChildren。缺失表示未提供,不能按零处理;零值也不能用于推断可以无限入住,须按实际入住人数验价。\n返回值.data.room_types[].products[].meal_count [integer]: 供应商提供的成人餐食份数,辅助解释 meal_type;零或未提供份数不能覆盖已知餐食类型,例如类型 4 仍为双早。不要据此推断儿童餐食。\n返回值.data.room_types[].products[].meal_type [string]: 餐食类型字符串编码:1=不含餐;2=早餐(份数见 meal_count/mealCount);3=1份早餐;4=2份早餐;5=3份早餐;6=4份早餐;7=5份早餐;8=6份早餐;9=7份早餐;10=8份早餐;11=午餐;12=晚餐;13=午餐和晚餐;14=半膳(早餐加午餐或晚餐);15=全膳(早餐、午餐、晚餐);16=一价全包;17=膳食自理(厨房设施,并非自助餐);18=早餐和午餐;19=早餐和晚餐。meal_count/mealCount 补充份数,零值不能覆盖已知餐食类型;空串或未识别编码表示类型未知,不推断为不含餐。\n返回值.data.room_types[].products[].rate [object] 必有字段=rate_code,currency,total_price,per_night_price,payment_type,is_on_request,stripe_payment_fee: 该产品最低总价对应的报价。\n返回值.data.room_types[].products[].rate.currency [string]: 金额币种 ISO 4217。\n返回值.data.room_types[].products[].rate.is_on_request [boolean]: true 表示需向供应商申请确认,非即时确认;false 也不表示已预留库存或已下单。\n返回值.data.room_types[].products[].rate.payment_type [integer]: 报价支付类型:1=预付,5=到店支付;当前生成器返回 1。不是 pay_order.payment_method,不可作为支付方式调用。\n返回值.data.room_types[].products[].rate.per_night_price [number]: 平均每房每晚价,currency 主单位;不是整段入住总价,不含另列 Stripe 手续费。\n返回值.data.room_types[].products[].rate.rate_code [string]: 不透明报价代码,保持原样;必须用相同酒店、日期和入住人数验价后下单。\n返回值.data.room_types[].products[].rate.stripe_payment_fee [object] 必有字段=fee_rate,fee_amount,payable_amount,currency,notice: 选择 Stripe 时另收的支付处理费用;不包含在房价总额中。\n返回值.data.room_types[].products[].rate.stripe_payment_fee.currency [string]: 金额币种 ISO 4217。\n返回值.data.room_types[].products[].rate.stripe_payment_fee.fee_amount [number]: Stripe 手续费金额,currency 主单位,已经按服务端精度取整。\n返回值.data.room_types[].products[].rate.stripe_payment_fee.fee_rate [number]: 手续费比例,当前 0.035 即 3.5%。\n返回值.data.room_types[].products[].rate.stripe_payment_fee.notice [string]: 费用来源及用途说明。\n返回值.data.room_types[].products[].rate.stripe_payment_fee.payable_amount [number]: 订单金额加 Stripe 手续费后的实际应付总额,currency 主单位;尚未支付。\n返回值.data.room_types[].products[].rate.total_price [number]: 全部房间、整段入住的订单总价,使用对应币种主单位(如 CNY 元),不是分;未包含另列的 Stripe 手续费,酒店到店收取费用以政策及 exclusions 为准。\n返回值.data.room_types[].room_type_code [string]: 房型代码。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.stripe_payment_fee_notice [string]: Stripe 另收手续费的说明;不代表已选择 Stripe 或已支付。\n返回值.data.total [integer]: 返回房型数,不是产品数。空结果为 0。\n返回值.data.web_url [string]: 酒店结果浏览链接,不是价格锁定、订单或支付凭证。仅在成功签发链接时返回;有效期见 web_url_expires_at,可在有效期内重复访问。当前 MCP 不接收链接语言参数,签发语言固定 zh-CN;get_hotel_detail.language 仅控制图片查询语言。\n返回值.data.web_url_expires_at [string]: 链接到期时间,RFC3339,保留返回的 UTC 偏移;缺失表示未签发链接。\n返回值.data.web_url_one_time [boolean] 取值=[false]: 酒店浏览链接当前为 false,可重复访问直到到期;不同于支付 one_time。\n返回值.error [string]: 业务失败说明,不作为可重试或成功的唯一依据。\n返回值.error_code [string]: 鉴权等机器可读错误码,仅在错误路径提供。\n返回值.ok [boolean]: 业务是否成功。false 时读取 error/reason;工具执行错误也可能通过 MCP isError 返回而没有 structuredContent。\n返回值.reason [string] 取值=[\"invalid_request\",\"hotel_not_found\",\"upstream_timeout\",\"upstream_error\",\"hotel_detail_unavailable\"]: 失败原因:invalid_request=参数无效,hotel_not_found=酒店不存在,upstream_timeout=上游超时,upstream_error=上游失败,hotel_detail_unavailable=酒店详情不可用。成功空结果的 no_matching_live_room 位于 data.reason;批量逐项判断,不把一项失败当成整批失败。\n返回值 的分支 1:\n返回值 必有字段=data\n返回值.ok 取值=[true]\n返回值 的分支 2:\n返回值 必有字段=error,reason\n返回值.ok 取值=[false]\n","type":"object"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true ⟨4 unchanged words⟩
{"additionalProperties":true,"description":"返回字段说明(不增加校验约束;缺失、零值和 null 按各字段说明解释):\n返回值 [object] 必有字段=ok: 业务响应信封;字段缺失表示没有提供,不能自动补零。数组的 null 与 [] 都不含条目,但 null 不承诺完成了该部分查询。\n返回值.data [object] 必有字段=hotels,total: 酒店候选结果;关键词命中不表示实时有房,预算最终以验价总价核对。\n返回值.data.hotels [array]: 本次匹配酒店。\n返回值.data.hotels[]: 区域/坐标模式返回 hotel_name/min_price;模糊关键词模式返回 name/has_invrate,没有价格。\n返回值.data.hotels[] 的分支 1:\n返回值.data.hotels[] [object] 必有字段=hotel_id,hotel_name,star_rating,min_price,currency_code,distance_km: 区域/坐标模式酒店,最多 20 个候选经实时筛选。\n返回值.data.hotels[].address [string]: 地址。\n返回值.data.hotels[].address_cn [string]: 中文地址。\n返回值.data.hotels[].currency_code [string]: min_price 对应币种 ISO 4217,不保证为 CNY。\n返回值.data.hotels[].distance_km [number]: 距搜索中心距离,公里;区域搜索的零值不表示酒店就在用户位置。\n返回值.data.hotels[].hotel_id [integer]: 酒店 ID,传回工具时使用字符串。\n返回值.data.hotels[].hotel_image [string]: 酒店图片 URL。\n返回值.data.hotels[].hotel_name [string]: 酒店名称。\n返回值.data.hotels[].hotel_name_cn [string]: 中文酒店名称。\n返回值.data.hotels[].min_price [number]: 当前区域/坐标搜索经过实时筛选后的最低每房每晚参考价,currency_code 主单位;初始候选/预算筛选来自缓存,不能当成最终可下单价或全部房间整段总价。下单前必须查询并验价。\n返回值.data.hotels[].star_rating [integer]: 酒店星级;零可能表示未评级。\n返回值.data.hotels[] 的分支 2:\n返回值.data.hotels[] [object] 必有字段=hotel_id,name,has_invrate\n返回值.data.hotels[].address [string]: 酒店地址。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotels[].address_cn [string]: 中文酒店地址。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotels[].city_name [string]: 城市名称。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotels[].country [string]: 国家名称。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotels[].country_code [string]: 国家代码。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotels[].has_invrate [boolean]: 缓存中存在价格信息的标记,不代表当前实时有房或可下单。\n返回值.data.hotels[].highlights [object]: 搜索高亮片段,键为字段名,值为高亮文本。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotels[].highlights.* [string]\n返回值.data.hotels[].hotel_id [integer]: TourMind 酒店数字 ID;作为后续工具输入时用字符串。\n返回值.data.hotels[].latitude [number]: 纬度,单位度;详情返回数字字符串,搜索返回 number。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotels[].longitude [number]: 经度,单位度;详情返回数字字符串,搜索返回 number。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotels[].name [string]: 名称。\n返回值.data.hotels[].name_cn [string]: 中文名称。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotels[].region_id [string]: TourMind 地域 ID;搜索结果可能为字符串,详情为整数,以 Schema 类型为准。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotels[].region_name [string]: 地域名称。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotels[].region_name_cn [string]: 地域中文名称。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotels[].region_name_long [string]: 完整地域名称。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotels[].region_name_long_cn [string]: 完整地域中文名称。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.hotels[].star_rating [integer]: 酒店星级,未提供或零值不等于零星酒店。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.search_scope [string]: 区域或坐标搜索范围;关键词模式不返回。\n返回值.data.total [integer]: 本次返回酒店数,不是整个地区酒店总数。\n返回值.data.web_url [string]: 酒店结果浏览链接,不是价格锁定、订单或支付凭证。仅在成功签发链接时返回;有效期见 web_url_expires_at,可在有效期内重复访问。当前 MCP 不接收链接语言参数,签发语言固定 zh-CN;get_hotel_detail.language 仅控制图片查询语言。\n返回值.data.web_url_expires_at [string]: 链接到期时间,RFC3339,保留返回的 UTC 偏移;缺失表示未签发链接。\n返回值.data.web_url_one_time [boolean] 取值=[false]: 酒店浏览链接当前为 false,可重复访问直到到期;不同于支付 one_time。\n返回值.error [string]: 业务失败说明,不作为可重试或成功的唯一依据。\n返回值.error_code [string]: 鉴权等机器可读错误码,仅在错误路径提供。\n返回值.ok [boolean]: 业务是否成功。false 时读取 error/reason;工具执行错误也可能通过 MCP isError 返回而没有 structuredContent。\n返回值.reason [string] 取值=[\"invalid_request\",\"hotel_not_found\",\"upstream_timeout\",\"upstream_error\",\"hotel_detail_unavailable\"]: 失败原因:invalid_request=参数无效,hotel_not_found=酒店不存在,upstream_timeout=上游超时,upstream_error=上游失败,hotel_detail_unavailable=酒店详情不可用。成功空结果的 no_matching_live_room 位于 data.reason;批量逐项判断,不把一项失败当成整批失败。\n返回值 的分支 1:\n返回值 必有字段=data\n返回值.ok 取值=[true]\n返回值 的分支 2:\n返回值 必有字段=error,reason\n返回值.ok 取值=[false]\n","type":"object"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true ⟨3 unchanged words⟩
{"additionalProperties":true,"description":"返回字段说明(不增加校验约束;缺失、零值和 null 按各字段说明解释):\n返回值 [object] 必有字段=ok: 业务响应信封;字段缺失表示没有提供,不能自动补零。数组的 null 与 [] 都不含条目,但 null 不承诺完成了该部分查询。\n返回值.data [object] 必有字段=regions,hotels,place: 地点匹配;各类别可能为空,不编造 ID 或坐标。\n返回值.data.hotels [array|null]: 酒店列表,无结果时为 null。\n返回值.data.hotels[] [object] 必有字段=hotel_id,name: 匹配酒店,非实时可售性结果。\n返回值.data.hotels[].address [string]: 地址。\n返回值.data.hotels[].country [string]: 国家。\n返回值.data.hotels[].hotel_id [integer]: 酒店 ID,调用其他工具时使用字符串。\n返回值.data.hotels[].name [string]: 酒店名。\n返回值.data.hotels[].name_cn [string]: 酒店中文名。\n返回值.data.hotels[].region_id [string]: 区域 ID。\n返回值.data.hotels[].region_name [string]: 区域名。\n返回值.data.hotels[].star_rating [integer]: 酒店星级;缺失表示未知。\n返回值.data.place [object|null] 必有字段=place_id,name,latitude,longitude,source,recommended_radius_km,search_scope: 首个匹配 POI;null 表示没有提供 POI,可使用 regions/hotels。\n返回值.data.place.formatted_address [string]: 地点完整地址。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.place.latitude [number]: 纬度,单位度;详情返回数字字符串,搜索返回 number。\n返回值.data.place.longitude [number]: 经度,单位度;详情返回数字字符串,搜索返回 number。\n返回值.data.place.name [string]: 名称。\n返回值.data.place.place_id [string]: Google 地点标识,不是 TourMind hotel_id/region_id。\n返回值.data.place.recommended_radius_km [number]: 建议搜索半径,公里;调用搜索时需要显式传 radius_km,不是搜索服务默认值。\n返回值.data.place.search_scope [string]: 地点与推荐半径的文字说明。\n返回值.data.place.source [string]: 坐标来源,当前为 google。\n返回值.data.place.types [null|array]: Google 地点类别列表。 缺失表示本次未提供;不可自动当成零、false 或空字符串。\n返回值.data.place.types[] [string]\n返回值.data.regions [array|null]: 行政区域列表,无结果时为 null。\n返回值.data.regions[] [object] 必有字段=region_id,name: 匹配行政区域,使用返回 ID 继续搜索。\n返回值.data.regions[].country [string]: 国家名称。\n返回值.data.regions[].full_name [string]: 完整区域路径。\n返回值.data.regions[].full_name_cn [string]: 中文完整区域路径。\n返回值.data.regions[].hotel_count [integer]: 区域酒店数;缺失表示未提供,不能当成零。\n返回值.data.regions[].latitude [number]: 纬度,度。\n返回值.data.regions[].longitude [number]: 经度,度。\n返回值.data.regions[].name [string]: 区域名称。\n返回值.data.regions[].name_cn [string]: 中文名称。\n返回值.data.regions[].region_id [integer]: 区域 ID,传回 region_id 时用字符串。\n返回值.data.regions[].region_type [string]: 地区类型,由地域服务提供。\n返回值.error [string]: 业务失败说明,不作为可重试或成功的唯一依据。\n返回值.error_code [string]: 鉴权等机器可读错误码,仅在错误路径提供。\n返回值.ok [boolean]: 业务是否成功。false 时读取 error/reason;工具执行错误也可能通过 MCP isError 返回而没有 structuredContent。\n返回值.reason [string] 取值=[\"invalid_request\",\"hotel_not_found\",\"upstream_timeout\",\"upstream_error\",\"hotel_detail_unavailable\"]: 失败原因:invalid_request=参数无效,hotel_not_found=酒店不存在,upstream_timeout=上游超时,upstream_error=上游失败,hotel_detail_unavailable=酒店详情不可用。成功空结果的 no_matching_live_room 位于 data.reason;批量逐项判断,不把一项失败当成整批失败。\n返回值 的分支 1:\n返回值 必有字段=data\n返回值.ok 取值=[true]\n返回值 的分支 2:\n返回值 必有字段=error,reason\n返回值.ok 取值=[false]\n","type":"object"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true ⟨3 unchanged words⟩
⟨11 unchanged words⟩ "description":"Payment method: Stripe, 微信支付, 支付宝, or支付宝支付宝AI付 (Qwen native cashier; returns prepay_id, not pay_url)","type":"string"},"user_key":{ ⟨17 unchanged words⟩
Create a hotel booking from a verified rate.AConfigure a valid TourMind user_keyisinrequired.a trusted local Skill or client integration that supplies the user_key tool argument. Do not ask users to paste user keys into chat.
⟨125 unchanged words⟩ "TourMind user key required for authenticated ToC bookingoperations","type":"string"}},"required": ⟨12 unchanged words⟩
Create a payment request for a booking owned by theuser_keyauthenticated account. CNY WeChat Pay and Alipay return a one-time device-aware payment link. Configure a valid TourMind user_key in a trusted local Skill or client integration that supplies the user_key tool argument. Do not ask users to paste user keys into chat.
⟨22 unchanged words⟩ :"TourMind user key required for authenticated ToCbooking operationspayment","type":"string"}},"required": ⟨5 unchanged words⟩
Query a booking owned by theuser_keyauthenticated account. Configure a valid TourMind user_key in a trusted local Skill or client integration that supplies the user_key tool argument. Do not ask users to paste user keys into chat.
⟨12 unchanged words⟩ :"TourMind user key required for authenticated ToCbookingorderoperationsaccess","type":"string"}},"required": ⟨4 unchanged words⟩