关于 hoteldata
hoteldata 是用于搜索 Google Hotels 的本地桥接工具,适合旅行规划工具和 Agent。它支持多种条件筛选并返回住宿、价格和设施数据,结果由 HasData 提供,项目不存储数据。
主要功能
- 01搜索酒店和度假租赁房源
- 02按价格、评分、类型和设施筛选
- 03返回价格、评价和住宿详情
- 04提供 CLI 和 stdio MCP 服务
适用场景
- 01比较指定日期的住宿选项
- 02按设施或价格筛选住宿
- 03按卧室数量搜索度假租赁房源
MCP 相关
向 MCP 客户端提供只读酒店搜索工具,并将调用转发到托管的 HasData Google Hotels MCP 服务。不提供预订或支付工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 2 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| q | string | 是 | Google Hotels 的搜索查询(例如城市、街区或酒店名称)。 |
| gl | string | 否 | 要将搜索范围限制到的国家/地区的两字母国家代码。请提供一个精确的已记录值(共支持 245 个),例如 `ac`、`af`。 |
| hl | string | 否 | 要用于搜索的两位语言代码。请提供一个准确的文档所列值(共允许 159 个),例如 `af`、`ak`。 |
| adults | number | 否 | 成人宾客人数(1-6)。 |
| brands | string | 否 | 要筛选的品牌 ID 列表,以逗号分隔。相同查询的响应中,`brands` 字段会返回品牌 ID。 |
| rating | enum | 否 | 按最低总体住客评分筛选。可选值: - `threePointFivePlus` — 3.5 星及以上 - `fourPlus` — 4.0 星及以上 - `fourPointFivePlus` — 4.5 星及以上threePointFivePlus | fourPlus | fourPointFivePlus |
| sortBy | enum | 否 | 对酒店结果排序。选项: - `lowestPrice` — 最低价格 - `highestRating` — 最高评分 - `mostReviewed` — 评价数最多lowestPrice | highestRating | mostReviewed |
| bedrooms | number | 否 | 卧室数量下限(仅限度假租赁房源)。 |
| children | number | 否 | 儿童宾客人数(1-5)。宾客总数(成人 + 儿童)不得超过 6 人。 |
| currency | string | 否 | 此参数用于定义返回价格的货币。请提供一个准确的文档值(共允许 71 个),例如 `ALL`、`DZD`。 |
| maxPrice | number | 否 | 所选货币的每晚最高价格。 |
| minPrice | number | 否 | 所选货币的每晚最低价格。 |
| amenity__ | array | 否 | 要筛选的设施列表(例如,`hotelFreeWifi,hotelPool`)。 搜索酒店时(默认模式),适用以 `hotel*` 为前缀的值。设置 `vacationRentals=true` 时,适用以 `rental*` 为前缀的值。 这两组值互不重叠,因为 Google Hotels 会针对每种模式提供不同的设施目录 — 请传入与所查询模式匹配的值。 |
| bathrooms | number | 否 | 浴室数量下限(仅限度假租赁房源)。 |
| hotelClass | string | 否 | 要包含的酒店星级列表,以逗号分隔(例如,`2,3,4,5`)。 |
| checkInDate | string | 是 | 入住日期,格式为 'yyyy-MM-dd'。 |
| checkOutDate | string | 是 | 退房日期,格式为 'yyyy-MM-dd'。 |
| childrenAges | string | 否 | 以逗号分隔的儿童年龄列表(例如 `5,8,12`)。数量必须与儿童人数一致。 |
| ecoCertified | boolean | 否 | 仅显示获得生态认证的房源。 |
| nextPageToken | string | 否 | 用于获取下一页酒店结果的令牌。此令牌由先前响应的 `pagination` 字段返回。 |
| propertyToken | string | 否 | 用于获取特定房源详情的令牌。该令牌会随每个搜索结果房源返回。 |
| specialOffers | boolean | 否 | 仅显示提供特别优惠的房源。 |
| propertyType__ | array | 否 | 要筛选的房源类型列表(例如,`hotelResort,hotelMotel`)。 搜索酒店时(默认模式),适用以 `hotel*` 为前缀的值。设置 `vacationRentals=true` 时,适用以 `rental*` 为前缀的值。 这两组值互不重叠,因为 Google Hotels 会针对每种模式提供不同的房源类型目录 — 请传入与所查询模式匹配的值。 |
| vacationRentals | boolean | 否 | 搜索度假租赁房源,而非酒店。 |
| freeCancellation | boolean | 否 | 仅显示提供免费取消的房源。 |
详细介绍
hoteldata
hoteldata 是一个小型本地桥接程序,可连接托管的 HasData Google Hotels MCP 服务,并以 JSON 格式返回 Google Hotels 搜索结果。提供地点或房源名称,以及入住和退房日期后, 它会获取匹配的酒店和度假租赁房源:每处房源的名称、链接、 位置、每晚和总价、酒店等级、住客评分和评论数、图片、 便利设施和附近地点,均与上游返回的内容一致。搜索可按 住客组成(成人,以及附带年龄的儿童)进行设置,也可按 本地化选项(国家/地区、语言和货币)进行设置,还可使用 一系列筛选条件,包括价格范围、排序方式、房源类型、 便利设施、最低评分、品牌、酒店等级、免费取消、特别优惠、 生态认证、带有卧室和浴室最低数量条件的度假租赁模式,以及分页令牌。
该桥接程序不会存储自己的搜索结果。它会在本地提供上游 服务的工具列表,内容与从实时端点捕获的内容完全一致, 并将每次工具调用转发到上游,原样返回结果。捕获到的工具 范围仅包含一项只读搜索:其中没有预订、预约或付款工具。
工具
hasdata_google_travel_hotels_getGoogleHotels— 搜索一次 Google Hotels 入住行程。必填:q(搜索查询:城市、街区或酒店名称)、checkInDate和checkOutDate(均采用yyyy-MM-dd格式)。可选:gl(国家/地区)、hl(语言)、currency、adults、children和childrenAges(逗号分隔的年龄,数量须与 儿童人数相符)、sortBy(lowestPrice/highestRating/mostReviewed)、每晚的minPrice和maxPrice、propertyType__(酒店和租赁房源类型)、amenity__(酒店和租赁房源的便利设施)、rating(最低 住客评分)、brands、hotelClass、freeCancellation、specialOffers、ecoCertified、vacationRentals、bedrooms、bathrooms、nextPageToken(分页)和propertyToken(单个房源的详情)。返回每处房源的价格、 价格比较、评分、评论、便利设施、优惠和分页令牌。
配置
HASDATA_GOOGLE_HOTELS_MCP_URL(可选)— 覆盖上游端点。默认为https://mcp.hasdata.com/mcp?apis=google_travel_hotels。 (此覆盖钩子是本次重建中自行标注的还原内容。)HASDATA_API_KEY(可选)— 设置后,每个上游请求都会携带x-api-key: <key>标头,使用调用方自己的 HasData API 密钥。 未设置时,不会发送密钥标头。(标头名称和环境变量名称 由原始版本的注册记录确定;从此环境变量转发密钥属于自行 标注的还原内容——原始工具范围是在未提供密钥的情况下捕获的。)
转发机制
首次调用工具时,客户端会与上游建立可流式传输的 HTTP 会话:
先发送 JSON-RPC initialize 请求(protocolVersion 2025-03-26,
clientInfo name hoteldata),然后发送
notifications/initialized 通知,最后发送携带调用方参数且
未经修改的 tools/call 请求。如果上游在 initialize 响应中
返回 Mcp-Session-Id 标头,该值会随该会话的每个后续请求发送;
会话会在进程的整个生命周期内重复使用。响应可能是普通 JSON,
也可能是服务器发送的事件;两种格式都会读取。
成功的上游结果会原样传递,包括上游设置的任何 isError 标记。
失败情况——JSON-RPC 错误、非 2xx 状态、无法读取响应,或
无法完成的请求——会作为 isError 结果返回,其文本以
hoteldata error: 开头(此呈现方式是本次重建中自行标注的还原内容)。
CLI
此工具也可作为子命令使用,接受一个 JSON 参数字符串:
npx @reneturcios/hoteldata hasdata_google_travel_hotels_getGoogleHotels '{"q":"San Francisco","checkInDate":"2026-11-10","checkOutDate":"2026-11-12","adults":2,"sortBy":"lowestPrice"}'
npx @reneturcios/hoteldata --version
退出代码:成功时为 0,返回 isError 结果时为 1,用法错误时为 2。
MCP 服务
npx -y @reneturcios/hoteldata mcp
MCP 客户端配置:
{
"mcpServers": {
"hoteldata": {
"command": "npx",
"args": ["-y", "@reneturcios/hoteldata", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/hoteldata
docker run --rm ghcr.io/cloudcorprecords/hoteldata --version
容器的默认命令是 mcp,因此第一种形式是 stdio MCP 服务;其他参数则会正常传递给命令行工具。
开发
npm install
npm run build
npm test
npm run dev
测试套件完全通过模拟的 JSON-RPC 上游运行,不会发起实时网络调用。
许可证
MIT — 请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。