mcpField
S
staydata

staydata

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

关于 staydata

staydata 是连接 HasData Airbnb MCP 服务的本地桥接程序,供需要查询住宿信息的客户端使用。它转发只读搜索和房源详情请求,并将结果以 JSON 返回。

主要功能

  1. 01按地点或地图范围搜索可订住宿
  2. 02按入住日期和入住人数筛选
  3. 03分页获取搜索结果
  4. 04按 Airbnb URL 获取房源详情
  5. 05提供 CLI 与 stdio MCP 服务

适用场景

  1. 01比较指定日期和地区的住宿价格
  2. 02查看房源的房间、设施、照片与评价
  3. 03在客户端中读取公开 Airbnb 房源数据

MCP 相关

它向 MCP 客户端提供两个工具,并将调用转发至 HasData Airbnb MCP 服务:搜索住宿和读取房源详情。该接口为只读,不支持预订、消息或付款。

配置

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

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

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

安装包
npm@reneturcios/staydata0.1.0
ocighcr.io/cloudcorprecords/staydata:0.1.0

工具

2

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

参数类型必填说明
petsnumber否宠物数量。
neLatnumber否地图边界框东北角的纬度。提供全部四个边界框坐标后,将在框内搜索房源,而不是按位置搜索。
neLngnumber否地图边界框东北角的经度。
swLatnumber否地图边界框西南角的纬度。
swLngnumber否地图边界框西南角的经度。
adultsnumber否成人数量。
checkInstring是房源的入住日期。
infantsnumber否婴幼儿数量。
checkOutstring否房源的退房日期。
childrennumber否子女数量。
locationstring否用于搜索房源的地点。除非提供完整地图边界框(neLat、neLng、swLat、swLng),否则必填。
nextPageTokenstring否用于获取下一页结果的令牌。

详细介绍

staydata

staydata 是一个小型本地桥接程序,连接托管的 HasData Airbnb MCP 服务,并以 JSON 返回 Airbnb 数据。 提供地点(或地图边界框)以及 入住日期,它就会搜索该日期和人数条件下 可入住的住宿;提供一个房源的 URL,它就会获取该房源的完整页面:房东、 房间和床位、照片、便利设施、评分和评论 数量。

该桥接程序不保存自己的房源数据。它会在本地提供 上游服务的工具列表,内容与从实时端点捕获的 完全一致,并将每次工具调用转发至上游,原样 返回结果。捕获的接口为只读:它会搜索并读取公开房源页面。 其中没有预订、 消息或支付工具。

工具

  • hasdata_airbnb_listing_getAirbnbListings — 搜索 可入住的住宿。必填:checkIn。提供 location, 或提供全部四个边界框坐标 (neLat、neLng、swLat、swLng),即可改为在 地图框内搜索。可选:checkOut、adults、 children、infants、pets 和用于分页的 nextPageToken。返回房源 ID/URL、标题、每晚 和总价、评分、评论数量、坐标 和照片。
  • hasdata_airbnb_property_getAirbnbPropertyDetails — 获取一个房源的完整页面。必填: url(有效的 Airbnb 房源 URL)。返回标题、 描述、位置、坐标、评分和 评论数量、房东资料、房间/床位/浴室数量、 照片和便利设施列表。

配置

  • HASDATA_AIRBNB_MCP_URL(可选)— 覆盖 上游端点。默认值为 https://mcp.hasdata.com/mcp?apis=airbnb。(此 覆盖钩子是本次重建自行标注的 还原内容。)
  • HASDATA_API_KEY(可选)— 设置后,每个 上游请求都会携带 x-api-key: <key> 请求头,使用调用者自己的 HasData API 密钥。未 设置时,不会发送密钥请求头。(请求头 名称和环境变量名称由原始版本的注册记录固定; 从此环境变量转发密钥属于标注的还原内容 —— 原始接口是在不带密钥的情况下捕获的。)
转发机制

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

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

CLI

每个工具也可作为子命令使用,接受一个 JSON 参数字符串:

npx @reneturcios/staydata hasdata_airbnb_listing_getAirbnbListings '{"location":"San Francisco","checkIn":"2026-11-10","checkOut":"2026-11-14","adults":2}'
npx @reneturcios/staydata hasdata_airbnb_property_getAirbnbPropertyDetails '{"url":"https://www.airbnb.com/rooms/12345678"}'
npx @reneturcios/staydata --version

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

MCP 服务

npx -y @reneturcios/staydata mcp

MCP 客户端配置:

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

Docker

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

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

开发

npm install
npm run build
npm test
npm run dev

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

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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