mcpField
I
Inside Airbnb

Inside Airbnb

远程服务
pipeworx.io商业与营销02 周前更新

关于 Inside Airbnb

Inside Airbnb 是面向短租市场研究者的 MCP 服务,提供所覆盖城市的 Airbnb 房源统计与可筛选的房源记录。它包含价格、房型、街区和可订状态等信息,且各城市数据带有各自的抓取日期。

主要功能

  1. 01列出覆盖城市及房源数量
  2. 02查看城市、房型和街区价格中位数
  3. 03按条件筛选房源记录
  4. 04返回可订状态与评价数量

适用场景

  1. 01比较不同城市的短租价格
  2. 02分析街区或房型的房源分布
  3. 03按价格和房型筛选房源

MCP 相关

通过 MCP 提供城市列表、城市汇总和房源筛选工具。可连接 Pipeworx 网关,也可作为本地 stdio MCP 服务运行;独立运行时没有可查询的数据。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://gateway.pipeworx.io/inside-airbnb/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

44
参数类型必填说明
qstring否question 的别名。
askstring否question 的别名。
textstring否question 的别名。
inputstring否question 的别名。
packsarray否可选。将路由限制为这些包的 slug(例如 ["sec-form-d","sec-13f"]),路由器随后只会从这些包中的工具进行选择。省略则使用默认的完整目录路由。Slug 可从 list_packs / search_packs / https://pipeworx.io/directory 获取;未列出或未知的 slug 会被忽略,并在 _meta.pack_scope.ignored 中列出。如果没有任何 slug 能匹配问题,则会在整个目录中路由,并设置 _meta.pack_scope.full_catalog:true(绝不会返回空答案)。
querystring否question 的别名。
promptstring否question 的别名。
messagestring否question 的别名。
questionstring是用自然语言表达的问题或请求。支持 query、q、prompt、text、input、ask、message 作为别名。

详细介绍

@pipeworx/inside-airbnb

按城市提供短租(Airbnb)房源数据:每晚房价中位数、房间类型和街区细分,以及可筛选的房源级记录——价格、房间类型、可订状态、评价数——涵盖此数据包已加载的所有城市。Fleet #2973。

属于 Pipeworx——一个将 AI Agent 连接到 1784+ 个实时数据源的 MCP 网关。这是一个独立的非官方集成,与上游提供方无关联、未获其认可,也非由其发布。

工具

  • list_str_cities() — 列出所有覆盖的城市,以及房源数、总体每晚房价中位数和该城市自己的抓取日期(data_as_of — 各城市的覆盖日期不同)。
  • str_city_summary(city) — 房源总数、总体房价中位数、按房间类型细分的数据(整套房屋/公寓、独立房间、合住房间、酒店房间——每种类型都包含各自的数量和房价中位数),以及按房源数排序的热门街区(每个街区都包含各自的数量和房价中位数)。如果城市未覆盖,工具会按名称拒绝请求,并列出所有已覆盖城市。
  • str_listings(city, neighbourhood?, room_type?, min_price?, max_price?, limit?, offset?) — 房源级记录:ID、公开房源 URL、房源标题、街区、房间类型、价格、最少入住晚数、评价数、最近评价日期、availability_365,以及房东的房源总数(纯数字)。 limit 默认为 50(最大值为 200);如果匹配记录数超过返回数,响应会带有 truncated: true 和 total_matching,而不是悄然丢弃记录。

城市名称采用宽松匹配("NYC"、"New York"、"new-york-city" 均可;参见 src/store.ts 中的 CITY_ALIASES)。room_type 接受四种标准值,也接受宽松匹配("apartment" → "Entire home/apt")。

个人数据

Inside Airbnb 的原始房源文件中,每一行都包含 host_id、host_profile_id、host_name(房东的名字)和 license(可能包含当地注册号)。加载程序不会读取这四列中的任何一列,且此数据包所服务的任何 D1 表中都不存在这些列——没有可供误选的列,而不仅仅是响应结构中省略了字段。保留 calculated_host_listings_count 是因为它是纯计数,而非标识符——它表示该房东经营的房源数量,而非房东身份。每个响应仅限于房源级或城市/街区级数据:价格、房间类型、可订状态、街区、评价数以及由这些数据汇总得到的指标,外加房源 ID 和公开的 https://www.airbnb.com/rooms/<id> URL(这两项在 Airbnb 自己的网站上已经公开)。

认证

无需密钥。工具仅通过 Pipeworx 网关提供响应,数据存放在该网关中;单独运行 npm install 没有可读取的数据,在此环境中,每个工具都会抛出清晰的 "not bound in this runtime" 错误,而不是返回空列表。

许可证

Inside Airbnb 以 CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) 发布内容。根据 Inside Airbnb 自己的署名要求,此处每个工具响应都包含 source、source_url、license 和 attribution 字段,并引用该许可证。

数据来源

  • Inside Airbnb,按城市提供的房源摘要——由社区维护的公开 Airbnb 房源数据快照,按城市独立抓取和发布,采用 CC BY 4.0 许可证。该项目仅发布按城市划分的批量文件(没有实时查询 API),因此此数据包会构建数据副本(scripts/inside-airbnb/load-data.mjs),而非充当代理。只注明发布者和数据集,不得注明下载路径、目录、文件名、端点、数据源 URL 或查询形式(CLAUDE.md 第 9b 步)。路由仅存在于 scripts/inside-airbnb/load-data.mjs 中。
覆盖范围

精选了北美、欧洲、亚太地区的主要城市,以及南美、非洲和中东的少数城市——确切的实时城市列表请参见 list_str_cities,完整表格(slug、国家、抓取日期)请参见 scripts/inside-airbnb/load-data.mjs。这里并未涵盖 Inside Airbnb 发布数据的所有城市(其覆盖范围超过一百个城市),而是从各地区精选出具有代表性的一组城市。扩展覆盖范围时,只需在加载器的 CITIES 表中添加一行,然后使用 --cities <new-slug> 重新运行即可——架构和工具都无需更改。

已知限制——扩展此数据包前请先阅读

每个城市的抓取日期相互独立,且会逐渐变化。 Inside Airbnb 按各城市自己的节奏重新抓取数据(大约每季度一次,各城市之间不同步),因此,同一轮加载的不同城市的 data_as_of 合理地会有所不同——这不是错误,而是此数据包中每个城市唯一真实的来源信息。刷新数据时,应针对每个城市重新检查 https://insideairbnb.com/get-the-data/ 上的当前日期,而不是复用加载器中写死的日期。

中位数在加载时预先计算,而非在查询时计算。 D1/SQLite 没有 MEDIAN() 聚合函数,而常见的整数偏移子查询写法若在每次请求中按街区运行一次,会很快超出 D1 的单次查询 CPU 预算。加载器会在 Node 中,针对该城市完整的内存价格数组,一次性计算所有中位数(全市、按房型、按街区),并存储结果——因此 str_city_summary 只需执行一次 SELECT,而非 N 次。若要扩展聚合指标(例如增加价格百分位数),需修改加载器的聚合步骤,而不是添加运行时查询。

listings.name 是房源自身的标题,不是房东信息。 这是房东为房源填写的自由文本(例如“公园附近的温馨单间公寓”),不会被排除——它不是此数据包删除的四项个人信息之一。房东若在房源标题中写入自己的姓名,该信息此前就已显示在 Airbnb 自己的公开页面上;此数据包不会增加 Inside Airbnb 在该列中已发布内容之外的任何信息披露,并且完全不会读取单独的、明确属于个人信息的 host_name 列。

刷新或扩展数据
node scripts/inside-airbnb/load-data.mjs                              # full reload, all covered cities
node scripts/inside-airbnb/load-data.mjs --cities paris,london        # reload a subset
node scripts/inside-airbnb/load-data.mjs --concurrency 4              # be gentler on the upstream

需要使用登录 Pipeworx Cloudflare 账户的 wrangler。每次运行都会替换 cities、neighbourhoods 和 listings(DROP 后重新加载),而非追加,并且仅处理传入的城市。使用 --cities 指定子集重新加载时,仍会删除并重建整个架构,因此完整加载后若使用子集重新运行,其他城市的数据表仍会保留,只是因为 DROP TABLE 和 CREATE TABLE 每次完整运行时只执行一次,而不是每个城市执行一次;使用子集重新运行适用于测试某个城市的解析结果,不适用于生产环境的部分刷新。生产环境刷新时,请传入所有要保留的城市,或完全省略 --cities。

快速开始

添加到 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):

{
  "mcpServers": {
    "inside-airbnb": {
      "url": "https://gateway.pipeworx.io/inside-airbnb/mcp"
    }
  }
}
此端点实际提供的内容

https://gateway.pipeworx.io/inside-airbnb/mcp 上的 tools/list 会返回上表中的工具,以及 Pipeworx 的共享元工具——ask_pipeworx、discover_tools、search_within、remember/recall 和网关范围内的其余工具。因此,你看到的工具数量会多于此表:目前,单个工具包端点除了列出该工具包自身的工具,还会列出约 30 个共享工具。连接的 initialize 响应会说明其确切范围,是当天适用范围的权威说明。

这是有意为之,并非意外的多路复用。元工具让限定范围的连接也能回答此工具包未涵盖的问题——通过 ask_pipeworx 在整个目录中路由——无需再添加第二个 MCP 服务。目前无法挂载不含这些元工具的工具包端点;如果额外的架构定义占用的上下文超过路由功能带来的价值,不妨只连接一次完整网关,而不是连接多个工具包端点。

或者连接完整的 Pipeworx 网关,直接列出所有工具包的工具,而不只是此工具包的工具:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

两个 URL 都连接到同一个网关,也能访问相同的 1784+ 个数据源。唯一的区别是哪些工具包的工具会被直接列出;无论连接哪个 URL,ask_pipeworx 都能访问全部工具。

没有 MCP 客户端?通过 HTTP 调用

curl -X POST https://gateway.pipeworx.io/v1/tools/list_str_cities \
  -H 'Content-Type: application/json' \
  -d '{}'

首次调用无需账号。检查任意工具:GET https://gateway.pipeworx.io/v1/tools/list_str_cities。查找工具:使用 {"query":"..."} 调用 POST https://gateway.pipeworx.io/v1/tools/search_packs。

独立运行(无需网关账号)

此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账号,也无需与网关往返通信:

{
  "mcpServers": {
    "inside-airbnb": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-inside-airbnb"]
    }
  }
}

或者直接运行,以确认它可以启动:

npx -y @pipeworx/mcp-inside-airbnb

它通过 stdin/stdout 使用 MCP,并针对仅此工具包的工具响应 initialize/tools/list/tools/call——不包含上文网关连接额外提供的任何共享元工具。来源相同,工具相同,但不提供 ask_pipeworx 路由。

使用 ask_pipeworx

你可以用通俗英语提问,而不是直接调用工具——此功能既适用于上文的工具包端点,也适用于完整网关:

ask_pipeworx({ question: "your question about Inside Airbnb data" })

网关会选择合适的工具,并自动填入参数。

更多信息

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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