想象一下这样的场景:你正在计划一次旅行,希望通过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. LoganWalker LoganWalker

      Secure configuration through MCPB user settings is a nice touch. No need to edit JSON files.

    2. AbigailHall AbigailHall

      The request timeout management prevents hanging. Good for slow connections.

    3. MasonAllen MasonAllen

      I tested with a very obscure location and it still found listings. Impressive.

    4. HarperYoung HarperYoung

      The direct link to Airbnb listing is essential. I want to book through official site anyway.

    5. ElijahKing ElijahKing

      This is much better than using the Airbnb app search. AI can understand complex requirements.