Skip to main content
Glama

Query Booking

query_booking
Read-onlyIdempotent

Query a booking owned by the authenticated 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. 普通 ToC 酒店查询可匿名,user_key 可选;下单、订单查询、取消和支付需要客户端安全配置的 user_key。 仅查询当前账号拥有的 TourMind 订单号;核实付款和酒店确认均使用本工具返回的状态。PENDING 表示已支付待确认,不能再次支付。 查询失败时先区分参数/鉴权错误和上游暂时失败:修正参数或重新授权后再调用,仅暂时失败可有限重试;不得把错误或空结果改述成成功。

Input Schema

NameRequiredDescriptionDefault
user_keyYes由可信本地客户端配置的 TourMind 用户凭证;勿让用户在聊天中粘贴。普通 ToC 查询可省略,订单/支付操作必填;OAuth 与 ToB 不接受此字段。
agent_ref_idYescreate_booking 返回的 TourMind 订单号,必须属于当前鉴权用户;不是酒店确认号或第三方支付订单号。

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / agent_ref_id / description
      Previous value: -"TourMind booking reference"New value: +"create_booking 返回的 TourMind 订单号,必须属于当前鉴权用户;不是酒店确认号或第三方支付订单号。"
    • changedInput schema / properties / user_key / description
      Previous value: -"TourMind user key required for authenticated ToC order access"New value: +"由可信本地客户端配置的 TourMind 用户凭证;勿让用户在聊天中粘贴。普通 ToC 查询可省略,订单/支付操作必填;OAuth 与 ToB 不接受此字段。"
    • addedOutput schema / description
      Added value: +"返回字段说明(不增加校验约束;缺失、零值和 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"
  2. Changed1 schema field changed
    • changedInput schema / properties / user_key / description
      Previous value: -"TourMind user key required for authenticated ToC booking operations"New value: +"TourMind user key required for authenticated ToC order access"
  3. First observed

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/openWorldHint, and the description adds value well beyond them: the PENDING status semantics (paid, awaiting confirmation, must not be paid again), the auth model (user_key supplied by a trusted local Skill, never pasted into chat), and retry policy on failures. It also warns against rephrasing errors or empty results as success, which is a real agent failure mode.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and the user_key handling rule are front-loaded, but the same user_key / trusted-client instruction appears in the English text, again in the Chinese text, and a third time in the schema, making the block noticeably redundant. The language mixing also adds parsing overhead without adding information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers everything else an agent needs: ownership restriction on the order number, auth sourcing for user_key, status interpretation, and failure/retry handling. Nothing required to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are fully documented in the schema, including that user_key may be omitted for ToC queries and that agent_ref_id is not a hotel confirmation or third-party payment number. The description restates rather than extends that information. Baseline 3 is appropriate when the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (query a booking) and scopes it to bookings owned by the authenticated account, identified by the agent_ref_id returned from create_booking. It also implicitly separates itself from pay_order by declaring PENDING means already paid. It stops short of naming sibling alternatives (create_booking, cancel_booking, query_room_rates) explicitly, so differentiation is only partial.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for when user_key is optional (anonymous ToC hotel search) versus mandatory (ordering, order query, cancellation, payment), and instructs using this tool to verify payment and hotel confirmation. Error handling guidance — distinguish param/auth errors from transient upstream failure, retry only the latter — is concrete and actionable. No explicit 'use X instead of this tool' routing is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.