mcpField
B
bookdata

bookdata

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

关于 bookdata

bookdata 是面向住宿搜索和行程规划的本地桥接服务,可按目的地与日期搜索住宿,或获取单个 Booking.com 房源详情。它将调用转发至 HasData Booking MCP 服务,提供只读的房源数据,不支持预订或付款。

主要功能

  1. 01按目的地、日期和人数搜索住宿
  2. 02筛选价格、类型、评分及设施
  3. 03获取房源政策、价格和评价
  4. 04查看照片与可用房型
  5. 05按页获取搜索结果

适用场景

  1. 01比较某目的地指定日期的住宿
  2. 02查看房源价格、政策和地址
  3. 03筛选符合设施或评分要求的住宿

MCP 相关

作为 MCP 服务,它在本地提供上游工具列表,并将工具调用和参数转发至 HasData Booking MCP 服务,原样返回结果。

配置

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

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

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

安装包
npm@reneturcios/bookdata0.1.0
ocighcr.io/cloudcorprecords/bookdata:0.1.0

工具

2

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

参数类型必填说明
urlstring是住宿页面的完整 Booking.com URL。仅接受 `booking.com` 和 `www.booking.com` 主机名。
roomsnumber是预订的客房数。
adultsnumber是所有客房中的成人宾客总人数。
childrennumber是所有客房中的儿童宾客总人数(0–10)。没有儿童时传入 `0`。
currencystring否响应中返回的价格所用币种。使用 `hotelCurrency` 可保留每个住宿的本币。请提供一个文档中列出的确切值(共允许 52 种),例如 `hotelCurrency`、`usd`。
languageenum否Booking.com 界面及响应中本地化字段所用的语言。en-us | en-gb | de | nl | fr | es | es-ar | es-mx | ca | it | pt-pt | pt-br | no | fi | sv | da | cs | hu | ro | ja | zh-cn | zh-tw | pl | el | ru | tr | bg | ar | ko | he | lv | uk | hi | id | ms | th | et | hr | lt | sk | sr | sl | vi | tl | is
checkInDatestring是`YYYY-MM-DD` 格式的入住日期。必须是未来日期,且早于 `checkOutDate`。
checkOutDatestring是`YYYY-MM-DD` 格式的退房日期。必须晚于 `checkInDate`。
childrenAgesstring否以逗号分隔的儿童年龄列表,每名儿童对应一个值(每个值为 `0`–`17`)。当 `children > 0` 时必填,且年龄数量必须与 `children` 相等。 示例:`1,3,7`

详细介绍

bookdata

bookdata 是一个小型本地桥接程序,用于连接托管的 HasData Booking MCP 服务,该服务以 JSON 返回 Booking.com 数据。提供目的地关键词、入住和 退房日期以及入住人数——房间数、成人数、儿童数——即可搜索该目的地可入住的住宿;提供同一日期下某处房源的 Booking.com URL,即可获取该房源的完整详情:身份信息和 地址、政策、价格、评分和评论、照片,以及该时间段内可入住的套房。

该桥接程序不保存任何住宿数据。它会在本地提供上游服务的工具列表,内容与从实时端点 捕获的完全一致,并将每次工具调用转发给上游,原样返回 结果。捕获的工具仅供读取:它会搜索和读取公开的 Booking.com 房源页面。尽管供应商名称中包含 Booking,但其中没有预订、预约、 消息或支付工具。

工具

  • hasdata_booking_search_getBookingSearchResults — 按目的地搜索住宿。必填: keyword、checkInDate、checkOutDate、rooms、 adults、children。可选筛选条件包括 childrenAges、sort、价格范围、卧室数和 浴室数、房源类型、星级、评分、 设施和无障碍功能、床铺和 预订偏好、language、currency,以及 page(每页 25 条结果)。返回每家酒店的 ID、标题和 URL、位置、政策、价格、评分、 评论摘要和主照片。
  • hasdata_booking_place_getBookingPlaceDetails — 获取某处房源的完整详情。必填:url (Booking.com 房源 URL)、checkInDate、 checkOutDate、rooms、adults、children。 可选:childrenAges、language、currency。 返回房源身份信息、地址和坐标、 政策、价格、评分和评论摘要、照片, 以及可入住的套房。

配置

  • HASDATA_BOOKING_MCP_URL(可选)——覆盖 上游端点。默认为 https://mcp.hasdata.com/mcp?apis=booking。(此 覆盖入口是本次重建自行标注的 实现。)
  • HASDATA_API_KEY(可选)——设置后,每个 上游请求都会携带 x-api-key: <key> 请求头,使用调用方自己的 HasData API 密钥。未设置时, 不会发送密钥请求头。(请求头 名称和环境变量名由原始项目的 registry 记录确定;从此环境 变量转发密钥是本次重建自行标注的实现——原始 工具表面是在不带密钥的情况下捕获的。)
转发机制

首次调用工具时,客户端会与上游建立可流式传输的 HTTP 会话:发送 JSON-RPC initialize 请求(protocolVersion 2025-03-26, clientInfo 名称为 bookdata),然后发送 notifications/initialized 通知,接着发送携带调用方参数的 tools/call 请求,参数保持不变。上游以带有 Mcp-Session-Id 请求头的 initialize 响应时,该值会随 此会话后续的每个请求一同发送;该会话会在进程运行期间重复使用。 响应可能是纯 JSON,也可能是服务器发送的事件;两种格式都会读取。

成功的上游结果会原样透传, 包括上游设置的任何 isError 标记。 失败——JSON-RPC 错误、非 2xx 状态、无法读取的响应,或 无法完成的请求——会以 isError 结果返回,其 文本以 bookdata error: 开头(此呈现方式 是本次重建自行标注的实现)。

命令行界面

每个工具也可以作为子命令调用,并接收一个 JSON 参数字符串:

npx @reneturcios/bookdata hasdata_booking_search_getBookingSearchResults '{"keyword":"Paris","checkInDate":"2026-11-10","checkOutDate":"2026-11-14","rooms":1,"adults":2,"children":0}'
npx @reneturcios/bookdata hasdata_booking_place_getBookingPlaceDetails '{"url":"https://www.booking.com/hotel/fr/example.html","checkInDate":"2026-11-10","checkOutDate":"2026-11-14","rooms":1,"adults":2,"children":0}'
npx @reneturcios/bookdata --version

退出代码:成功时为 0,返回 isError 结果时为 1,用法错误时为 2。

MCP 服务

npx -y @reneturcios/bookdata mcp

MCP 客户端配置:

{
  "mcpServers": {
    "bookdata": {
      "command": "npx",
      "args": ["-y", "@reneturcios/bookdata", "mcp"]
    }
  }
}

Docker

docker run -i ghcr.io/cloudcorprecords/bookdata
docker run --rm ghcr.io/cloudcorprecords/bookdata --version

容器的默认命令是 mcp,因此第一种形式是 stdio MCP 服务;其他参数会照常传递给 命令行界面。

开发

npm install
npm run build
npm test
npm run dev

测试套件完全使用桩接的 JSON-RPC 上游运行,不会进行实时网络调用。

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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