mcpField
H
hoteldata

hoteldata

本地服务
github.com/CloudCorpRecords地图与出行02 天前更新

关于 hoteldata

hoteldata 是用于搜索 Google Hotels 的本地桥接工具,适合旅行规划工具和 Agent。它支持多种条件筛选并返回住宿、价格和设施数据,结果由 HasData 提供,项目不存储数据。

主要功能

  1. 01搜索酒店和度假租赁房源
  2. 02按价格、评分、类型和设施筛选
  3. 03返回价格、评价和住宿详情
  4. 04提供 CLI 和 stdio MCP 服务

适用场景

  1. 01比较指定日期的住宿选项
  2. 02按设施或价格筛选住宿
  3. 03按卧室数量搜索度假租赁房源

MCP 相关

向 MCP 客户端提供只读酒店搜索工具,并将调用转发到托管的 HasData Google Hotels MCP 服务。不提供预订或支付工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-hoteldata": {
"command": "npx",
"args": [
"-y",
"@reneturcios/hoteldata"
]
}
}
}
启动命令npx -y @reneturcios/hoteldata

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/hoteldata0.1.0
ocighcr.io/cloudcorprecords/hoteldata:0.1.0

工具

1

收录的工具列表 · 更新于 2 天前

参数类型必填说明
qstring是Google Hotels 的搜索查询(例如城市、街区或酒店名称)。
glstring否要将搜索范围限制到的国家/地区的两字母国家代码。请提供一个精确的已记录值(共支持 245 个),例如 `ac`、`af`。
hlstring否要用于搜索的两位语言代码。请提供一个准确的文档所列值(共允许 159 个),例如 `af`、`ak`。
adultsnumber否成人宾客人数(1-6)。
brandsstring否要筛选的品牌 ID 列表,以逗号分隔。相同查询的响应中,`brands` 字段会返回品牌 ID。
ratingenum否按最低总体住客评分筛选。可选值: - `threePointFivePlus` — 3.5 星及以上 - `fourPlus` — 4.0 星及以上 - `fourPointFivePlus` — 4.5 星及以上threePointFivePlus | fourPlus | fourPointFivePlus
sortByenum否对酒店结果排序。选项: - `lowestPrice` — 最低价格 - `highestRating` — 最高评分 - `mostReviewed` — 评价数最多lowestPrice | highestRating | mostReviewed
bedroomsnumber否卧室数量下限(仅限度假租赁房源)。
childrennumber否儿童宾客人数(1-5)。宾客总数(成人 + 儿童)不得超过 6 人。
currencystring否此参数用于定义返回价格的货币。请提供一个准确的文档值(共允许 71 个),例如 `ALL`、`DZD`。
maxPricenumber否所选货币的每晚最高价格。
minPricenumber否所选货币的每晚最低价格。
amenity__array否要筛选的设施列表(例如,`hotelFreeWifi,hotelPool`)。 搜索酒店时(默认模式),适用以 `hotel*` 为前缀的值。设置 `vacationRentals=true` 时,适用以 `rental*` 为前缀的值。 这两组值互不重叠,因为 Google Hotels 会针对每种模式提供不同的设施目录 — 请传入与所查询模式匹配的值。
bathroomsnumber否浴室数量下限(仅限度假租赁房源)。
hotelClassstring否要包含的酒店星级列表,以逗号分隔(例如,`2,3,4,5`)。
checkInDatestring是入住日期,格式为 'yyyy-MM-dd'。
checkOutDatestring是退房日期,格式为 'yyyy-MM-dd'。
childrenAgesstring否以逗号分隔的儿童年龄列表(例如 `5,8,12`)。数量必须与儿童人数一致。
ecoCertifiedboolean否仅显示获得生态认证的房源。
nextPageTokenstring否用于获取下一页酒店结果的令牌。此令牌由先前响应的 `pagination` 字段返回。
propertyTokenstring否用于获取特定房源详情的令牌。该令牌会随每个搜索结果房源返回。
specialOffersboolean否仅显示提供特别优惠的房源。
propertyType__array否要筛选的房源类型列表(例如,`hotelResort,hotelMotel`)。 搜索酒店时(默认模式),适用以 `hotel*` 为前缀的值。设置 `vacationRentals=true` 时,适用以 `rental*` 为前缀的值。 这两组值互不重叠,因为 Google Hotels 会针对每种模式提供不同的房源类型目录 — 请传入与所查询模式匹配的值。
vacationRentalsboolean否搜索度假租赁房源,而非酒店。
freeCancellationboolean否仅显示提供免费取消的房源。

详细介绍

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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。