Skip to main content
Glama

Get Hotel Detail

get_hotel_detail
Read-onlyIdempotent

Get static hotel details, facilities, rooms, policies, and images. 普通 ToC 酒店查询可匿名,user_key 可选;下单、订单查询、取消和支付需要客户端安全配置的 user_key。 使用已解析的 hotel_id 获取静态设施、政策、图片;不据此判断实时库存。 查询失败时先区分参数/鉴权错误和上游暂时失败:修正参数或重新授权后再调用,仅暂时失败可有限重试;不得把错误或空结果改述成成功。

Input Schema

NameRequiredDescriptionDefault
hotel_idYesTourMind 酒店 ID,数字字符串;从地点/酒店搜索返回取得,不使用 Google place_id。
languageNo酒店图片查询语言,省略默认 zh-CN;直接传给图片服务,不承诺全部酒店文字翻译,也不改变 web_url 的固定 zh-CN 语言。
user_keyNo由可信本地客户端配置的 TourMind 用户凭证;勿让用户在聊天中粘贴。普通 ToC 查询可省略,订单/支付操作必填;OAuth 与 ToB 不接受此字段。

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / hotel_id / description
      Previous value: -"TourMind hotel identifier"New value: +"TourMind 酒店 ID,数字字符串;从地点/酒店搜索返回取得,不使用 Google place_id。"
    • changedInput schema / properties / language / description
      Previous value: -"Response language, defaults to zh-CN"New value: +"酒店图片查询语言,省略默认 zh-CN;直接传给图片服务,不承诺全部酒店文字翻译,也不改变 web_url 的固定 zh-CN 语言。"
    • changedInput schema / properties / user_key / description
      Previous value: -"Optional TourMind user key for authenticated ToC access"New value: +"由可信本地客户端配置的 TourMind 用户凭证;勿让用户在聊天中粘贴。普通 ToC 查询可省略,订单/支付操作必填;OAuth 与 ToB 不接受此字段。"
    • addedOutput schema / description
      Added value: +"返回字段说明(不增加校验约束;缺失、零值和 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"
  2. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real value on top: anonymous ToC queries without user_key, required user_key only for booking/payment flows, and a strong rule not to restate errors or empty results as success. It does not discuss rate limits or caching of static data.

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 core purpose and the static-vs-live distinction are front-loaded, but the description mixes languages and includes auth rules for ordering/payment/cancellation, which are not operations this read-only tool performs, adding noise for the agent.

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

Completeness4/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; the description covers scope, auth necessity, and failure handling sufficiently for a read-only detail lookup. Minor gaps are the absence of any caching or freshness note for 'static' data.

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%, so hotel_id provenance (not a Google place_id) and user_key optionality are already documented there. The description adds only the framing of user_key as safety-config-supplied, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Get static hotel details, facilities, rooms, policies, and images') and the qualifier 'static' plus '不据此判断实时库存' separates it from rate/availability siblings such as check_room_availability and query_room_rates.

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?

Tells the agent to call it with an already-resolved hotel_id and explicitly warns not to use it for real-time inventory, which routes to the rate/availability tools. It also gives error-triage guidance (fix params/re-auth vs. limited retry on transient failure). It never names a sibling or alternative explicitly, so it falls short of a 5.

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.