想象一下这样的场景:你正在计划一次旅行,希望通过AI助手直接搜索Airbnb上的房源,而不必在网页上手动填写各种筛选条件。你只需要告诉AI你的目的地、日期和预算,它就能为你找到合适的住宿推荐。这个愿望现在可以通过mcp-server-airbnb实现。

这是一个为AI代理设计的MCP服务器,它让AI能够直接搜索Airbnb的房源信息。通过简单的对话,你的AI助手就能帮你查找短租住宿,获取详细的房源信息,甚至分析不同选项的优劣。它把复杂的房源搜索变成了自然的聊天体验。

项目基本信息

信息项详情
项目名称mcp-server-airbnb
GitHub地址https://github.com/openbnb-org/mcp-server-airbnb
项目描述Search Airbnb using your AI Agent
作者openbnb-org
开源协议MIT License
开源状态公开状态
LanguagesJavaScript, TypeScript
支持平台Windows / macOS / Linux
最后更新2026-04-25

一、项目介绍

mcp-server-airbnb是一个将Airbnb房源搜索能力包装成AI工具的服务器。它提供了两个核心工具:airbnb_search用于搜索房源,airbnb_listing_details用于获取特定房源的详细信息。通过这两个工具,AI可以完成从查找房源到获取详细信息的完整流程。

这个项目的独特之处在于它处理国际地址的方式。Airbnb自带的地址解析对于非美国地区经常出错(比如把巴黎解析到法国另一个地方)。所以该服务器引入了Photon和Nominatim这两个免费的地理编码服务,将你的位置描述正确转换成地图坐标,然后再去Airbnb搜索。如果不需要地理编码,你也可以关闭这个功能。

二、核心优势

自然语言驱动的房源搜索

这是项目最直观的价值。你可以像跟朋友聊天一样告诉AI:“帮我在东京找一家适合3个人住、每晚预算500-800元、8月份入住的民宿。”AI会自动调用搜索工具,填入相应的参数,然后把结果整理给你看。

灵活的参数筛选

搜索工具支持丰富的筛选条件。位置是必填项,你可以提供城市名、区域名,或者精确的Google Maps Place ID。日期方面支持入住和退房。人数配置包括成人、儿童、婴幼儿和宠物。价格范围可以设置上下限。房源类型可以筛选整套房子、独立房间、合住房间或酒店房间。这些参数组合起来,几乎覆盖了Airbnb网页版的所有核心筛选功能。

准确的国际位置支持

这是技术上最值得一提的特性。项目团队发现Airbnb自己的地理编码在非美国地区存在严重问题。为了解决这个问题,服务器在发送搜索请求之前,会先通过Photon(主要)和Nominatim(备用)这两个开源地理编码服务,将位置名称转换为准确的经纬度边界框,然后带着这个边界框去Airbnb搜索。这确保了巴黎的搜索真的在巴黎,而不是跑到法国另一个同名的小地方。

分页浏览支持

搜索结果可能很多,项目通过cursor(游标)参数支持分页。AI可以先获取第一页结果,如果你需要查看更多,它可以继续请求下一页。这比一次性加载几百条结果更高效,也不会超出AI的处理能力。

三、适用场景

旅行计划助手

这是最直接的场景。你可以让AI帮你规划整个住宿方案。例如:“我打算9月份去罗马旅行,4个成人,住7晚,希望住在市中心,预算每晚150-250欧元。帮我找几个合适的房源,并列出它们靠近哪些主要景点。”AI会调用搜索工具,获取结果后分析地理位置和评价,给出推荐。

预算比较和分析

如果你对不同日期的价格差异感兴趣,可以让AI分别搜索几个不同时段的房源,比较价格变化。例如:“帮我看看巴塞罗那同一套房源在6月、9月和11月的价格差异。”AI会多次调用airbnb_listing_details工具(传入不同的日期),然后汇总价格信息。

临时住宿应急查找

当你到达一个城市后临时需要换住处,可以打开AI助手:“我现在在伦敦国王十字车站附近,需要今晚就能入住、适合一个人的房间,预算100英镑以内。”AI可以根据你提供的模糊位置信息尝试搜索,快速给出备选方案。

房源信息的深度分析

对于已经看中的某个房源,你可以让AI获取详细信息:“帮我查一下这个房源的退订政策、是否允许宠物、以及有哪些厨房设施。”AI会调用airbnb_listing_details工具,从返回的详细内容中提取你关心的部分。

四、安装教程

mcp-server-airbnb的安装非常简便,因为它发布在npm上,可以通过npx直接运行。

前提条件

确保你已经安装了Node.js 18.0或更高版本。你可以通过在终端输入node --version来检查。

与Claude Desktop集成

找到Claude Desktop的配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

用文本编辑器打开,添加以下内容:

{
"mcpServers": {

"airbnb": {
  "command": "npx",
  "args": [
    "-y",
    "@openbnb/mcp-server-airbnb"
  ]
}

}
}

保存文件后,完全退出并重启Claude Desktop。现在你就可以通过自然语言让AI搜索Airbnb了。

高级配置:忽略robots.txt

该服务器默认遵守Airbnb的robots.txt规则。如果你想在测试时绕过这个限制(不推荐常规使用),可以添加--ignore-robots-txt参数:

{
"mcpServers": {

"airbnb": {
  "command": "npx",
  "args": [
    "-y",
    "@openbnb/mcp-server-airbnb",
    "--ignore-robots-txt"
  ]
}

}
}

使用MCP Bundle文件(Claude Desktop特定)

如果你使用的是较新版本的Claude Desktop,可以从项目的Releases页面下载.mcpb文件,直接双击打开,Claude Desktop会弹出安装对话框,引导你完成安装。这种方式更直观,不需要手动编辑JSON配置。

关键配置选项

在Claude Desktop的设置中,找到这个扩展,你可以调整以下选项:

  • Ignore robots.txt:勾选后忽略robots.txt限制,默认为关闭
  • Disable third-party geocoding:勾选后禁用Photon/Nominatim地理编码,默认为关闭

五、使用示例

以下是你配置好mcp-server-airbnb后,可以与AI进行的真实对话和操作示例。

示例1:基本位置搜索

用户指令:“帮我在纽约曼哈顿找几家适合2个人住的民宿,8月1日到8月5日,预算每晚150-250美元。”

AI会调用airbnb_search,参数大致如下:

{
"location": "Manhattan, New York",
"checkin": "2025-08-01",
"checkout": "2025-08-05",
"adults": 2,
"minPrice": 150,
"maxPrice": 250
}

AI会返回搜索结果列表,包括房源名称、价格、评分和链接,然后向你推荐几个最合适的。

示例2:使用Place ID精确搜索

用户指令:如果你知道某个地点的Google Maps Place ID,可以更精确地搜索。“帮我找找这个地标附近的房源:ChIJd8BlQ2BZwokRAFUEcmqOJl0”

AI会调用airbnb_search,使用placeId参数而不是location,这会跳过地理编码步骤,直接定位。

示例3:获取房源详细信息

用户指令:“帮我看看这个房源的具体情况:12345678(房源ID),适合4个人住3晚,9月10日入住。”

AI会调用airbnb_listing_details:

{
"id": "12345678",
"checkin": "2025-09-10",
"checkout": "2025-09-13",
"adults": 4
}

AI会获取并总结该房源的设施、规则、房东信息、位置等详细内容。

示例4:组合使用两个工具

用户指令:“先帮我在巴黎找到几家评价好的整套公寓,然后挑最贵的那家告诉我详细信息。”

AI会先调用airbnb_search,筛选出propertyType为entire_home的结果,从中找出价格最高的房源,获取其ID,再调用airbnb_listing_details获取详细信息并展示给你。

六、常见问题

问题1:搜索非美国位置时结果不准确

解决方案:这是项目要解决的核心问题。首先确保你没有在配置中启用Disable third-party geocoding(保持默认false)。服务器会自动使用Photon/Nominatim地理编码来修正位置。如果依然不准确,你可以自己从Google Maps获取Place ID,通过placeId参数直接指定位置,完全跳过地理编码步骤。

问题2:安装后AI说找不到airbnb工具

解决方案:检查Claude Desktop是否完全重启了。仅仅关闭聊天窗口不够,需要通过应用菜单完全退出再重新打开。另外检查配置文件中的命令是否写正确,args应该包含-y和包名。

问题3:搜索总是返回空结果或错误

解决方案:这可能是因为触发了Airbnb的反爬机制或速率限制。尝试减少请求频率,或者在Claude Desktop设置中临时开启Ignore robots.txt看是否有改善(仅测试用)。如果问题持续,可能是Airbnb的页面结构发生了变化,导致解析失败,可以关注项目的更新或提交issue。

问题4:地理编码服务调用失败或超时

解决方案:Photon和Nominatim是免费服务,有使用限制。如果遇到超时,服务器会自动降级:直接传递原始位置字符串给Airbnb(虽然结果可能不准确)。你可以考虑自己获取Place ID,通过placeId参数来搜索,这样就完全不需要地理编码了。也可以启用Disable third-party geocoding,但要注意这可能导致位置解析问题。

问题5:担心被Airbnb封禁IP

解决方案:项目默认遵守robots.txt,并做了速率限制。建议正常使用,不要高频发送请求。如果只是偶尔搜索几次,风险很低。如果需要大量搜索,考虑使用项目团队提供的商业托管服务openbnb.ai,由他们处理合规和稳定性问题。

七、总结

mcp-server-airbnb是一个实用且有深度的项目。它展示了一个现实挑战的解决思路:如何让AI代理可靠地访问一个并不直接提供公共API的商业网站。项目团队没有选择违反服务条款的黑客手段,而是通过巧妙的地址预处理(地理编码修正)和对robots.txt的尊重,走出了一条既实用又相对合规的路。

从技术实现来看,项目选择了Node.js运行时,通过MCP协议与AI客户端通信。它解析Airbnb的网页HTML来提取数据(使用Cheerio库),这种方式虽然对网站结构变化敏感,但也是目前无需官方API的主要方案。开发者对非美国地址问题的深入研究和解决方案,体现了对实际用户体验的重视。

对于普通用户,如果你经常使用AI助手并且有旅行住宿查找的需求,这个服务器值得配置。对于开发者,这是一个学习如何构建真实世界MCP服务的完整案例——包括如何处理外部依赖、如何优雅降级、如何平衡功能与合规性。项目团队还提供了托管版本openbnb.ai,适合不想自己维护服务器的用户。总体来说,这是一个将AI能力与日常生活场景紧密结合的优秀实践。

标签: 内容抓取

已有 35 条评论

    1. OliverCarter OliverCarter

      The error logging helped me debug a network issue. Clear messages.

    2. ZoePerez ZoePerez

      I appreciate that the article explains the trade-offs of each configuration option.

    3. NathanRoberts NathanRoberts

      The MCP Bundle installation method is the easiest. Just double-click the .mcpb file.

    4. VictoriaMurphy VictoriaMurphy

      Does it cache search results to reduce repeated requests? That would be efficient.

    5. DylanRoss DylanRoss

      This project made me realize how powerful MCP can be for real-world tasks.