关于 staydata
staydata 是连接 HasData Airbnb MCP 服务的本地桥接程序,供需要查询住宿信息的客户端使用。它转发只读搜索和房源详情请求,并将结果以 JSON 返回。
主要功能
- 01按地点或地图范围搜索可订住宿
- 02按入住日期和入住人数筛选
- 03分页获取搜索结果
- 04按 Airbnb URL 获取房源详情
- 05提供 CLI 与 stdio MCP 服务
适用场景
- 01比较指定日期和地区的住宿价格
- 02查看房源的房间、设施、照片与评价
- 03在客户端中读取公开 Airbnb 房源数据
MCP 相关
它向 MCP 客户端提供两个工具,并将调用转发至 HasData Airbnb MCP 服务:搜索住宿和读取房源详情。该接口为只读,不支持预订、消息或付款。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
2收录的工具列表 · 更新于 2 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| pets | number | 否 | 宠物数量。 |
| neLat | number | 否 | 地图边界框东北角的纬度。提供全部四个边界框坐标后,将在框内搜索房源,而不是按位置搜索。 |
| neLng | number | 否 | 地图边界框东北角的经度。 |
| swLat | number | 否 | 地图边界框西南角的纬度。 |
| swLng | number | 否 | 地图边界框西南角的经度。 |
| adults | number | 否 | 成人数量。 |
| checkIn | string | 是 | 房源的入住日期。 |
| infants | number | 否 | 婴幼儿数量。 |
| checkOut | string | 否 | 房源的退房日期。 |
| children | number | 否 | 子女数量。 |
| location | string | 否 | 用于搜索房源的地点。除非提供完整地图边界框(neLat、neLng、swLat、swLng),否则必填。 |
| nextPageToken | string | 否 | 用于获取下一页结果的令牌。 |
详细介绍
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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。