article
README
🚀 Airbnb搜索与房源 - 桌面扩展 (DXT)
这是一款全面的桌面扩展程序,具备高级筛选功能,可用于搜索Airbnb房源,并能检索详细的房源信息。它以桌面扩展(DXT)格式封装为模型上下文协议(MCP)服务器,便于与兼容的人工智能应用程序配合安装和使用。
✨ 主要特性
🔍 高级搜索功能
- 基于位置的搜索:支持按城市、州和地区进行搜索
- 集成Google Maps Place ID:实现精确的位置定位
- 日期筛选:支持设置入住和退房日期
- 宾客配置:可设置成人、儿童、婴儿和宠物的数量
- 价格范围筛选:可设置最低和最高价格限制
- 分页支持:便于浏览大量搜索结果
🏠 详细的房源信息
- 全面的房源详情:包括便利设施、政策和亮点
- 位置信息:包含坐标和周边社区详情
- 房屋规则和政策:帮助用户做出明智的预订决策
- 房源描述和关键特征
- 直达Airbnb房源的链接:方便用户直接预订
🛡️ 安全与合规
- 遵守Robots.txt规则:可配置覆盖设置以便进行测试
- 请求超时管理:防止请求挂起
- 增强的错误处理:提供详细的日志记录
- 具备速率限制意识:合理使用API
- 通过DXT用户设置实现安全配置
📦 安装指南
针对Claude桌面版
此扩展程序以桌面扩展(DXT)文件的形式提供。安装步骤如下:
- 从发布页面下载
.dxt文件。 - 打开兼容的人工智能应用程序(例如Claude桌面版)。
- 通过应用程序的扩展管理器安装该扩展。
- 根据需要配置扩展设置。
针对Cursor等应用
在开始之前,请确保你的桌面已安装 Node.js,以便使用 npx。
- 进入:Cursor设置 > 工具与集成 > 新建MCP服务器。
- 将以下内容添加到你的
mcp.json文件中:
{
"mcpServers": {
"airbnb": {
"command": "npx",
"args": [
"-y",
"@openbnb/mcp-server-airbnb"
]
}
}
}
若要在所有请求中忽略Robots.txt规则,请使用以下带有 --ignore-robots-txt 参数的版本:
{
"mcpServers": {
"airbnb": {
"command": "npx",
"args": [
"-y",
"@openbnb/mcp-server-airbnb",
"--ignore-robots-txt"
]
}
}
}
- 重启应用程序。
📚 详细文档
配置选项
该扩展程序提供以下可由用户配置的选项:
忽略Robots.txt规则
- 类型:布尔值(复选框)
- 默认值:
false - 描述:在向Airbnb发送请求时绕过Robots.txt规则限制
- 建议:除非用于测试目的,否则建议保持禁用状态
工具说明
airbnb_search
使用全面的筛选选项搜索Airbnb房源。
参数:
location(必需):搜索的地点(例如,“加利福尼亚州旧金山”)placeId(可选):Google Maps Place ID(会覆盖location参数)checkin(可选):入住日期,格式为YYYY - MM - DDcheckout(可选):退房日期,格式为YYYY - MM - DDadults(可选):成人数量(默认值:1)children(可选):儿童数量(默认值:0)infants(可选):婴儿数量(默认值:0)pets(可选):宠物数量(默认值:0)minPrice(可选):每晚的最低价格maxPrice(可选):每晚的最高价格cursor(可选):用于浏览搜索结果的分页游标ignoreRobotsText(可选):在本次请求中覆盖Robots.txt规则
返回值:
- 包含房源详情、价格和直达链接的搜索结果
- 用于浏览更多结果的分页信息
- 参考用的搜索URL
airbnb_listing_details
获取特定Airbnb房源的详细信息。
参数:
id(必需):Airbnb房源IDcheckin(可选):入住日期,格式为YYYY - MM - DDcheckout(可选):退房日期,格式为YYYY - MM - DDadults(可选):成人数量(默认值:1)children(可选):儿童数量(默认值:0)infants(可选):婴儿数量(默认值:0)pets(可选):宠物数量(默认值:0)ignoreRobotsText(可选):在本次请求中覆盖Robots.txt规则
返回值:
- 详细的房源信息,包括:
- 包含坐标的位置详情
- 便利设施和设备
- 房屋规则和政策
- 房源亮点和描述
- 房源的直达链接
🔧 技术细节
架构
- 运行时环境:Node.js 18+
- 协议:通过标准输入输出传输的模型上下文协议(MCP)
- 格式:桌面扩展(DXT)v0.1
- 依赖项:为确保安全性和可靠性,外部依赖项极少
错误处理
- 带有时间戳的全面错误日志记录
- 当Airbnb页面结构发生变化时能进行优雅降级处理
- 网络请求的超时保护
- 详细的错误消息,便于故障排除
安全措施
- 默认遵守Robots.txt规则
- 请求超时限制
- 输入验证和清理
- 安全的环境变量处理
- 不存储敏感数据
性能
- 使用Cheerio进行高效的HTML解析
- 在适当的情况下进行请求缓存
- 内存占用极小
- 启动和响应速度快
兼容性
- 平台:macOS、Windows、Linux
- Node.js:18.0.0或更高版本
- Claude桌面版:0.10.0或更高版本
- 其他MCP客户端:与任何支持MCP的应用程序兼容
📚 详细文档
开发相关
从源代码构建
# 安装依赖项
npm install
# 构建项目
npm run build
# 在开发过程中监听文件变化
npm run watch
测试
可以通过直接运行MCP服务器来测试该扩展程序:
# 运行时遵守Robots.txt规则(默认)
node dist/index.js
# 运行时忽略Robots.txt规则(用于测试)
node dist/index.js --ignore-robots-txt
法律和道德考量
- 遵守Airbnb服务条款:本扩展程序仅用于合法的研究和预订辅助
- 遵守Robots.txt规则:扩展程序默认遵守Robots.txt规则
- 速率限制:注意请求频率,避免对Airbnb服务器造成过大压力
- 数据使用:仅为合法目的提取公开可用的信息
支持
- 问题反馈:在 GitHub Issues 上报告错误和提出功能请求
- 文档:仓库中提供了更多详细文档
- 社区:加入关于MCP和DXT开发的讨论
📄 许可证
本项目采用MIT许可证,详情请参阅 LICENSE 文件。
贡献
欢迎贡献代码!请阅读贡献指南,并提交拉取请求以进行改进。
⚠️ 重要提示
本扩展程序与Airbnb公司没有关联,它是一个独立的工具,旨在帮助用户搜索和分析公开可用的Airbnb房源。
微信扫一扫