Airbnb MCP 服务器使用说明
项目简介
'mcp-server-airbnb' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 应用提供与 Airbnb 平台交互的能力。通过此服务器,LLM 客户端可以调用预定义的工具来搜索 Airbnb 房源并获取详细信息,从而扩展 LLM 在旅行和住宿领域的应用场景。
主要功能点
- Airbnb 房源搜索: 提供 'airbnb_search' 工具,允许用户通过关键词、地理位置、日期、价格范围和房客数量等条件搜索 Airbnb 房源。
- 房源详情查询: 提供 'airbnb_listing_details' 工具,允许用户根据房源 ID 获取 Airbnb 房源的详细信息,包括描述、设施、房东信息等。
- 无需 API 密钥: 服务器通过抓取 Airbnb 网页数据获取信息,无需用户提供 Airbnb API 密钥。
- 结构化 JSON 输出: 返回清晰、结构化的 JSON 格式数据,方便 LLM 客户端解析和利用。
- 尊重 robots.txt: 默认情况下,服务器遵循 Airbnb 的 robots.txt 协议,避免抓取禁止访问的页面(可通过配置忽略)。
安装步骤
- 安装 Node.js: 确保您的计算机上已安装 Node.js (版本 >= 16)。
- 配置 MCP 服务器: 打开您的 MCP 客户端(例如 Claude Desktop)的配置文件。
- 对于 Claude Desktop,请进入 "Settings > Developer > Edit Config",编辑 'claude_desktop_config.json' 文件。
- 添加服务器配置: 在 'claude_desktop_config.json' 文件的 '"mcpServers"' 字段下添加以下 JSON 配置信息。
服务器配置
{ "mcpServers": { "airbnb": { "command": "npx", // 启动命令,使用 npx 运行 npm 包 "args": [ "-y", // 自动确认安装 npm 包 "@openbnb-org/mcp-server-airbnb" // 要运行的 npm 包名称 ] } } }
参数说明:
- '"airbnb"': 服务器名称,可以自定义,用于在 MCP 客户端中标识该服务器。
- '"command": "npx"': 指定用于启动服务器的命令为 'npx',它允许直接运行 npm 包,无需全局安装。
- '"args": [...]"': 传递给 'npx' 命令的参数列表。
- '"-y"': 告诉 'npx' 自动确认安装 '@openbnb-org/mcp-server-airbnb' 包,如果尚未安装的话。
- '"@openbnb-org/mcp-server-airbnb"': 指定要运行的 npm 包名称,即 Airbnb MCP 服务器的包。
忽略 robots.txt (可选):
如果您希望服务器忽略 Airbnb 的 'robots.txt' 规则(不推荐,可能违反网站服务条款),可以使用以下配置:
{ "mcpServers": { "airbnb": { "command": "npx", "args": [ "-y", "@openbnb-org/mcp-server-airbnb", "--ignore-robots-txt" // 添加参数 "--ignore-robots-txt" 来忽略 robots.txt ] } } }
- 重启客户端: 重启您的 MCP 客户端(例如 Claude Desktop),配置更改才会生效。
基本使用方法
配置完成后,您的 MCP 客户端应该能够检测到名为 "airbnb" 的 MCP 服务器。您可以通过客户端提供的界面或指令,调用以下工具与 Airbnb 服务器进行交互:
-
'airbnb_search': 用于搜索 Airbnb 房源。
- 必需参数: 'location' (搜索地点,例如 "Paris")
- 可选参数: 'placeId', 'checkin', 'checkout', 'adults', 'children', 'infants', 'pets', 'minPrice', 'maxPrice', 'cursor', 'ignoreRobotsText' (详细参数说明请参考仓库 README 或工具的 'inputSchema')
- 示例调用 (假设在 Claude 中): 'call tool airbnb.airbnb_search with location="Paris", adults=2, checkin="2024-12-25", checkout="2024-12-30"'
-
'airbnb_listing_details': 用于获取指定 Airbnb 房源的详细信息。
- 必需参数: 'id' (Airbnb 房源 ID,例如 "12345678")
- 可选参数: 'checkin', 'checkout', 'adults', 'children', 'infants', 'pets', 'ignoreRobotsText' (详细参数说明请参考仓库 README 或工具的 'inputSchema')
- 示例调用 (假设在 Claude 中): 'call tool airbnb.airbnb_listing_details with id="98765432"'
LLM 客户端会向 MCP 服务器发送 JSON-RPC 请求,服务器执行相应的工具并返回 JSON-RPC 响应,其中包含抓取到的 Airbnb 房源数据。
注意: 请合理使用此 MCP 服务器,避免对 Airbnb 网站造成过大的访问压力。
信息
分类
网页与API