关于 hotelbooking-ai
hotelbooking-ai 是面向旅行 Agent 开发者的酒店搜索与预订 MCP 服务,提供酒店筛选、实时房价和房型详情,并支持按标签细化搜索。
主要功能
- 01按地点和条件搜索酒店
- 02获取实时房价与库存
- 03查看酒店详情和政策
- 04获取筛选用的酒店标签
适用场景
- 01为旅行规划 Agent 添加酒店搜索
- 02比较商务旅行的酒店选项
- 03预订前查询房价
MCP 相关
该服务通过 streamable HTTP 向 MCP 客户端提供酒店搜索和详情工具。核心端点提供 3 种工具,OAuth 2.0 模式还包含预订和订单相关工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| size | number | 否 | 要返回的结果数,整数,1~20。默认值为 10。 |
| place | string | 是 | 用于定义搜索范围的单个可进行地理编码的位置文本,例如 "Beijing"、"Shanghai Pudong International Airport"、"Tokyo Disneyland"、"No. 19 Sanlitun Road, Chaoyang District, Beijing"。 |
| hotelTags | object | 否 | 用于价格、品牌和特定设施的结构化标签筛选条件。 |
| hotelTags.requiredTags | array | 否 | 必须具备的标签/设施(硬性约束)。 |
| hotelTags.preferredBrands | array | 否 | 首选酒店品牌。 |
| hotelTags.maxPricePerNight | number | 否 | 每晚最高价格,单位为 RMB(例如 500)。 |
| placeType | string | 是 | 位置类型。允许的值:`city`、`airport`、`point_of_interest`、`train_station`、`subway_station`、`hotel`、`district/county`、`detailed address`。必须与 `place` 在语义上保持一致。 |
| countryCode | string | 否 | 用于货币/区域设置偏好的 ISO 3166-1 alpha-2 国家代码,例如 US、GB、JP。 |
| originQuery | string | 是 | 用户原始的自然语言查询(原文),用于语义理解和排序。 |
| checkInParam | object | 否 | 入住参数。字段:adultCount(整数,>=1,默认 2);checkInDate(字符串,YYYY-MM-DD,未来日期);stayNights(整数,1~28,默认 1)。 |
| checkInParam.adultCount | number | 否 | |
| checkInParam.stayNights | number | 否 | |
| checkInParam.checkInDate | string | 否 | |
| filterOptions | object | 否 | 可选筛选条件。字段:distanceInMeter(整数,>0,仅适用于 POI);starRatings(数组 [min, max],0.0~5.0,步长 0.5)。 |
| filterOptions.starRatings | array | 否 | |
| filterOptions.distanceInMeter | number | 否 |
详细介绍
RollingGo Hotel MCP — 酒店搜索与预订
🏠 申请密钥 · 🚀 快速开始 · 📚 示例 · 💬 支持 · 🔍 问答 · 💰通过 RollingGo 创收
这是一个官方 MCP 服务,可让 AI Agent 搜索、比较并预订全球超过 200 万家酒店;该服务填补了 AI 旅行推荐与现实世界预订之间的空白。
| 服务 | 端点 | 可用工具 | 身份验证 |
|---|---|---|---|
| 酒店 MCP | https://mcp.rollinggo.ai/mcp | searchHotels, getHotelDetail, getHotelSearchTags | Authorization: Bearer <YOUR_API_KEY> |
- 传输协议:
streamable-http - 定价:完全免费,不限使用次数
- 访问方式:按照本文档自助接入;适合快速原型开发和工具开发。
RollingGo MCP 还提供 OAuth 2.0 Authorization Code 流程,包含 7 个工具,包括 getHotelSearchTags、searchHotels、getHotelDetail、hotelPriceConfirm、searchHotelOrders 等。该模式面向与企业级生产应用的深度集成,需要通过 [email protected] 联系商务团队。
🌟 为什么选择 RollingGo Hotel MCP?
传统 AI Agent 只能依据静态训练数据集推荐酒店。RollingGo Hotel MCP 赋予大模型 Agent 直接、实时的交易能力:
✅ 实时房价与可预订库存 — 零延迟价格验证;每条结果都可立即预订。
✅ 供应链 — 全流程完全基于 API。
✅ 全球酒店网络 — 覆盖 200 多个国家/地区的 2,000,000+ 家住宿。拥有 500+ 家供应商,覆盖从豪华连锁酒店到本地精品酒店的各个层级。
✅ 直签合作 — 与 110,000+ 家酒店直接连接,实时同步价格和库存。
✅ 源头价格优势 — 价格源自 OTA 上游;热门地点价格实惠。
✅ 为 Agent 而构建 — 兼容 Cursor、Claude Code、Codex、Windsurf、Copilot 等 40+ 个领先 Agent。
✅ 每次 MCP 调用均可创收 — 设置特定国家/地区的加价,在每笔已完成的预订中赚取佣金,并实时跟踪订单、收入和付款。企业和个人开发者均可灵活提现。
🎯 适用对象
• 构建 AI Agent 的公司或个人开发者
• 希望将酒店预订能力集成到 MCP 客户端的开发者
• 构建旅行规划、商务旅行管理、OTA 和生活服务 Agent 的开发者
• 希望验证 AI Agent 商业交易闭环的产品团队
• 有酒店搜索、价格比较和降价提醒需求的个人******
🎯 使用场景
- 通用 Agent:为任意 AI Agent 配备原生酒店预订能力。用户可以在一次自然语言对话中比较、筛选并预订酒店。
- AI 旅行规划工具:将酒店搜索直接集成到自然语言行程中。
- 企业差旅助手:允许员工通过 Slack、Teams 或自定义聊天界面查询、比较并预订商务行程。
- 交易演示:无需繁重的后端集成,即可验证端到端 AI Agent 商务和支付流程。
🚀 快速开始
无需编写代码,只需不到 5 分钟,即可将全球酒店搜索和预订功能集成到你的 AI 助手中。
步骤 1:获取开发者 API 密钥
- 前往 合作伙伴中心,注册并免费获取密钥。
- 你将收到一封电子邮件,其中包含:B2B 合作伙伴中心控制面板的登录凭据(可用于监控订单、配置加价和跟踪收入)。
步骤 2:连接到你的 Agent
推荐客户端:Claude CLI、Codex 和 Cursor。其他兼容 MCP 的客户端(例如 Kiro、Doubao 等)也可以用类似方式配置。
Claude CLI
在项目根目录中创建 .mcp.json:
{
"mcpServers": {
"Rollinggo-Hotel": {
"url": "https://mcp.rollinggo.ai/mcp",
"type": "http",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
或者直接通过命令行添加:
claude mcp add \
--transport http \
--header "Authorization: Bearer YOUR_API_KEY" \
Dida-Hotel \
https://mcp.rollinggo.ai/mcp
Codex
配置文件位置:项目根目录下的 .codex/config.json,或全局路径 ~/.codex/config.json
{
"mcpServers": {
"Rollinggo-Hotel": {
"url": "https://mcp.rollinggo.ai/mcp",
"type": "streamable-http",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Cursor
配置文件位置:项目根目录下的 .cursor/mcp.json,或全局路径 ~/.cursor/mcp.json
{
"mcpServers": {
"Rollinggo-Hotel": {
"url": "https://mcp.rollinggo.ai/mcp",
"type": "streamable-http",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
将
YOUR_API_KEY替换为你的实际 API 密钥。
直接使用 cURL 测试
注意:cURL 必须包含
-H "Accept: application/json, text/event-stream",否则服务将返回 400 错误。
curl -X POST https://mcp.rollinggo.ai/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "searchHotels",
"arguments": {
"originQuery": "Shanghai Bund five-star hotel",
"place": "Shanghai Bund",
"placeType": "Attraction",
"checkInParam": {
"checkInDate": "2026-06-01",
"stayNights": 2
},
"filterOptions": {
"starRatings": [5.0]
},
"size": 3
}
},
"id": 1
}'
步骤 3:发起首次 MCP 调用
配置完成后,只需告诉你的 AI 助手:
“帮我找一家上海外滩附近的五星级酒店,入住日期为后天。”
AI 将自动调用 searchHotels 工具并返回酒店列表。
酒店搜索示例
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "searchHotels",
"arguments": {
"originQuery": "Shanghai Bund five-star hotel",
"place": "Shanghai Bund",
"placeType": "Attraction",
"checkInParam": {
"checkInDate": "2026-06-01",
"stayNights": 2
},
"filterOptions": {
"starRatings": [5.0]
},
"size": 3
}
},
"id": 1
}
步骤 4:查看结果和示例数据
酒店搜索结果(真实数据)
搜索“上海外滩五星级酒店”,入住 2 晚,结果如下:
| 酒店 | 星级 | 每晚最低价格 | 距离外滩 |
|---|---|---|---|
| Fairmont Peace Hotel Shanghai | ⭐⭐⭐⭐⭐ | $648 | 124m |
| The Peninsula Shanghai | ⭐⭐⭐⭐⭐ | $940 | 252m |
预期响应 JSON 示例
{
"message": "Hotel search successful",
"hotelInformationList": [
{
"hotelId": 29529,
"bookingUrl": "https://rollinggo.ai/pages/hotel/detail/index?...",
"name": "Fairmont Peace Hotel on the Bund",
"address": "No. 20 Nanjing East Road",
"starRating": 5.0,
"price": {
"message": "Price query successful. Lowest price: 648, Currency: USD",
"hasPrice": true,
"currency": "USD",
"lowestPrice": 648.0
},
"hotelAmenities": ["Bar", "Gym", "Pool", "SPA", "Parking", "WIFI"],
"tags": ["SPA Service", "Resort Hotel", "Sports-Friendly Hotel"]
}
]
}
🔧 可用工具
服务注册了 3 个核心工具,可处理从搜索到预订的完整流程:
1) searchHotels
按位置、日期、价格、星级和标签查找酒店。
- 输入参数:
originQuery(string,必填):用户的原始文本请求(例如:“查找东京每晚低于 $200 的精品酒店”)。place(string,必填):具体目的地、景点或机场名称。placeType(string,必填):位置类型(city、airport、point_of_interest、hotel等)。支持的值:city、airport、point_of_interest、train_station、subway_station、hotel、district/county、detailed address。countryCode(string,可选):ISO 3166-1 alpha-2 国家代码,例如CN、US。size(number,可选,默认值:5):返回的酒店数量,最多20家。checkInParam(object,可选):入住相关参数。filterOptions(object,可选):筛选参数。hotelTags(object,可选):标签/品牌/预算筛选条件。
🔎 查看详细输入参数(checkInParam、filterOptions、hotelTags)
checkInParam 字段:
adultCount(number,可选,默认值:2):每间房的成人数。checkInDate(string,可选,格式:YYYY-MM-DD):入住日期。如果省略、日期已过或格式错误,则默认设为明天。stayNights(number,可选,默认值:1):入住晚数(最多 28 晚)。
filterOptions 字段:
distanceInMeter(number,可选):与 POI 的直线距离,单位为米。使用 POI 时默认为2000。starRatings(number[],可选):星级范围,默认为[0.0, 5.0],步长为0.5。
hotelTags 字段:
requiredTags(string[],可选):必需标签(硬性条件)。preferredBrands(string[],可选):偏好品牌。maxPricePerNight(number,可选):每晚最高预算(CNY)。
📄 查看响应 JSON Schema 示例
{
"message": "Hotel search succeeded",
"hotelInformationList": [
{
"hotelId": 43615,
"bookingUrl": "https://rollinggo.ai/pages/hotel/detail/index?...",
"name": "Sunworld Dynasty Hotel Beijing",
"brand": null,
"address": "50 Wangfujing Street",
"destinationId": "6140156",
"latitude": 39.917748,
"longitude": 116.412249,
"distanceInMeters": 205,
"starRating": 5.0,
"price": {
"message": "Price found, lowest: 626.0, currency: CNY",
"hasPrice": true,
"currency": "CNY",
"lowestPrice": 626.0
},
"areaCode": "CN",
"description": "...",
"imageUrl": "https://image-cdn.RollingGo.com/...",
"hotelAmenities": ["24h Front Desk", "WiFi"],
"score": 1.0,
"tags": ["Near Shopping Mall", "Free WiFi"]
}
]
}
注意:
price是一个对象,而不是数字。根据城市/供应来源的不同,某些字段可能缺失或为null。
2) getHotelDetail
获取所选酒店的实时房型、动态价格、库存和取消政策。
- 输入参数:
hotelId(number,可选):酒店 ID。不能与name同时使用;如果两者都已提供,则优先使用hotelId。name(string,可选):酒店名称(模糊匹配)。dateParam(object,可选):入住/退房日期参数。occupancyParam(object,可选):住客人数和房间数量参数。localeParam(object,可选):国家和货币参数。
🔎 查看详细输入参数(dateParam、occupancyParam、localeParam)
dateParam 字段:
checkInDate(string,可选,格式:YYYY-MM-DD):入住日期。如果为空、格式错误或日期已过,则默认为明天。checkOutDate(string,可选,格式:YYYY-MM-DD):退房日期。如果为空、格式错误或日期不晚于入住日期,则默认为checkInDate + 1天。
occupancyParam 字段:
adultCount(number,可选,默认值:2):每间房的成人数。childCount(number,可选,默认值:0):每间房的儿童数。childAgeDetails(number[],可选):儿童年龄,例如[3, 5]。roomCount(number,可选,默认值:1):房间数量。
localeParam 字段:
countryCode(string,可选,默认值:US):ISO 3166-1 alpha-2 国家代码。currency(string,可选,默认值:USD):货币代码。
📄 查看响应 JSON Schema 示例
{
"success": true,
"errorMessage": null,
"hotelId": 43615,
"bookingUrl": "https://rollinggo.ai/pages/hotel/detail/index?...",
"name": "Sunworld Dynasty Hotel Beijing",
"checkIn": "2026-03-05",
"checkOut": "2026-03-06",
"roomRatePlans": [
{
"roomTypeId": 4984714,
"roomName": "Superior Room",
"roomNameCn": "高级客房",
"ratePlanId": "7012072001634754626",
"ratePlanName": "Superior Room King Bed, 1 King Bed",
"bedType": 73,
"bedTypeDescription": "Unknown",
"currency": "CNY",
"totalPrice": 0,
"totalSalesRate": null,
"inventoryCount": null,
"isOnRequest": null,
"recommendIndex": null,
"cancellationPolicies": [
{
"fromDate": "2026-03-02T10:00:00+08:00",
"toDate": null,
"amount": 634,
"percent": null,
"type": null,
"description": null
}
],
"includedFees": null,
"excludedFees": null,
"metadata": null
}
]
}
**注意:**失败时,响应可能包含错误消息(例如“获取价格失败,请稍后重试”)或结构化错误字段。
roomRatePlans数组可能很长,建议在客户端分页或限制显示内容。
3) getHotelSearchTags
获取包含所有可筛选标签名称(例如“免费 WiFi”“健身房”“适合儿童”)的元数据,以细化搜索筛选。适合本地缓存和客户端意图映射。
📄 查看响应 JSON Schema 示例
{
"tags": [
{
"name": "Free WiFi",
"category": "Core Amenities",
"description": "Provides free WiFi"
}
],
"usageGuide": {
"tagUsage": "Place tag names into hotelTags.preferredTags (preference), requiredTags (hard requirement), or excludedTags (exclusion)",
"exampleRequest": "{...}"
}
}
常见标签类别:
- 品牌与评分
- 特色亮点
- 核心设施
- 家庭与儿童
- 服务详情
- 服务与餐饮
- 交通与支付
- 景观与房型
- 酒店类型
- 价格
📚 使用示例
示例 1:城市搜索
{
"originQuery": "Find 4-star+ hotels in Beijing for 2 nights",
"place": "Beijing",
"placeType": "city",
"checkInParam": {
"checkInDate": "2026-03-01",
"stayNights": 2
},
"filterOptions": {
"starRatings": [4.0, 5.0]
},
"size": 5
}
示例 2:设置标签和预算限制
{
"originQuery": "Find quality hotels in Beijing with free WiFi, budget under 1000 per night",
"place": "Beijing",
"placeType": "city",
"hotelTags": {
"requiredTags": ["Free WiFi"],
"maxPricePerNight": 1000
},
"size": 5
}
示例 3:查询酒店房型和价格
{
"hotelId": 43615,
"dateParam": {
"checkInDate": "2026-03-05",
"checkOutDate": "2026-03-06"
},
"occupancyParam": {
"adultCount": 2,
"roomCount": 1
},
"localeParam": {
"currency": "CNY",
"countryCode": "CN"
}
}
💬 问答
问答
Q1:配置后客户端未显示工具
- 检查 JSON 配置格式是否正确
- 确认
url和type是否正确 - 确认
Authorization标头中的 API Key 是否正确 - 重启客户端(更改仅在重启后生效)
Q2:返回 401 Unauthorized API Key 无效或格式错误:
- API Key 应以
mcp_开头 - 在
Authorization: Bearer YOUR_API_KEY中,Bearer 后必须有一个空格 - 确保 API Key 中没有多余的空格或换行符
Q3:返回 400 Bad Request 使用 cURL 直接调用时常见。请检查是否包含 Accept 标头:
-H "Accept: application/json, text/event-stream"
Q4:searchHotels 返回空结果
- 检查
place和placeType是否匹配(例如,“Shanghai Bund”应与“Attraction”搭配) - 放宽筛选条件(移除星级/标签限制)
- 确认
checkInDate不是过去的日期
Q5:价格与实际价格不符 搜索结果显示的是参考价格;实时价格可能有所不同。目前仅支持查询,暂不支持在线预订。
💬 支持
- 📧 邮箱:[email protected]
- 🐛 问题反馈:在 GitHub Issues 提交问题或功能请求。
- 💬 Discord 社区:加入我们的 Discord Server,或扫描下方二维码,与其他开发者交流、讨论集成方案,并获得 RollingGo 团队的实时支持。
🌟 RollingGo Hotel MCP(OAuth)v2.3 重大更新
v2.3 优化了订单查询结构,并新增多个订单详情字段,帮助 Agent 更好地处理入住、支付和取消场景。注意:此更新仅适用于 OAuth 集成版本,不适用于本文档介绍的 API Key 版本。OAuth 版本需要联系 [email protected] 办理商务接入。
变更内容
未变更的工具(4)
getHotelSearchTags— 获取所有已启用的酒店筛选标签searchHotels— 根据条件搜索全球酒店列表getHotelDetail— 获取酒店可用房型和价格hotelPriceConfirm— 锁定所选房型的实时最终零售价
已修改的工具(2)
createHotelBookingWithPaymentURL— 移除alipayUrlScene参数;将bookingResult.paymentUrl统一为通用结账链接searchHotelOrders— 输出简化为 9 个核心字段(orderNo、hotelName、roomName、orderStatus、totalPrice等),用于列表视图;完整详情移至专用工具
新增的工具(1)
getHotelOrderDetail— 根据orderNo查询完整的结构化订单详情,包括hotelConfirmationNo、住客名单、床型、联系电话、坐标、付款/取消截止时间和政策标记
新增字段
hotelConfirmationNo— 酒店端真实确认号,可供前台查询stayInfo.bedTypeStr— 易于阅读的床型描述(例如:"1 King Bed (1.8m)")stayInfo.guestNames— 用于核验的官方拼音/英文住客姓名列表priceInfo.paymentDeadline— 付款截止时间戳(YYYY-MM-DD HH:mm:ss),用于倒计时提醒policyInfo.freeCancelDeadline— 免费取消截止时间戳,用于检查退款期限policyInfo.isCancelable— 当前是否仍可免费取消
工具数量: 共 7 个(从 v2.2 的 6 个增加)——新增 1 个、修改 2 个、未更改 4 个。
附录
🔣 如果要本地部署
方法 A:通过 uv 运行(推荐——零配置设置)
如果已安装 uv,即可立即运行服务:
uv run --with-requirements requirements.txt server.py
方法 B:标准 Python 设置
# Clone the repository
git clone https://github.com/DIDA-AI/dida_hotel_mcp_global.git
cd dida_hotel_mcp_global
# Setup virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies and run
pip install -r requirements.txt
python server.py
本地服务将在 http://localhost:8000/mcp 上运行,并自动将请求转发到安全的 RollingGo 全球 API 节点。
🔑 安全与标头
- 本地服务会将请求转发到安全的 DIDA 全球 API。
- 请始终在标头中提供 API Key。密钥必须以
mcp_开头。 - 必需标头:
Authorization: Bearer mcp_your_key_here
📜 许可证
本项目采用 MIT License 授权,详情请参阅 LICENSE 文件。
由 RollingGo 团队倾心打造 ❤️
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。