【开发者来信栏目导语】 本栏目为旅行Agent开发者生态共建专栏,定期收录一线酒旅开发者、渠道运维、Agent 搭建者的落地开发日志、对接复盘、功能适配笔记。内容仅做技术交流、行业开源参考,所有组件能力、接口能力,仅为开发者对接使用。
写在前面:这是一款完全开源的酒店机票 MCP /Skill工具,致力于为所有 AI Agent 开发者提供开箱即用的实时酒店和机票数据能力。如果你也是酒旅从业者或者旅行AI开发者,欢迎交流。聚集旅行 AI 上下游从业者,共享落地案例、对接项目资源,实时同步酒旅数据与 Agent 行业干货,开发难题有人解、商业机会有人搭。

我目前正在开发一个基于 AI 的旅行规划助手,需要通过 MCP 协议接入真实的酒店/机票数据,让大模型 Agent 能够根据用户的自然语言需求(如目的地、日期、预算、偏好等)完成酒店搜索、比价、推荐和预订的完整闭环。本文按官方文档(quick-start + mcp-tool-reference)复盘我这次对接的完整流程。
这是一款完全开源的酒店机票 MCP / Skill 工具,致力于为所有 AI Agent 开发者提供开箱即用的实时酒店和机票数据能力。
限时福利:为支持开源生态共建,点亮 GitHub Star 即可解锁永久调用无上限额度,仅限首批开发者。
如果这个项目对你的开发有帮助,欢迎前往 GitHub 点亮一颗 Star ⭐。你的支持是这个创业项目持续迭代数据覆盖、优化接入体验、共建旅行AI开放生态的核心动力。
项目仓库:GitHub | https://github.com/RollingGo-AI/rollinggo-hotel-skill
1.1 先看效果:本次实测跑通的真实产出
在进入选型、接口、部署细节之前,先把本次实测跑通的 2 个真实产出贴出来。读者一眼看到「这是真的跑过的」,再决定要不要往下读。
效果示例图 1:Agent 多轮对话 + 工具调用(自然语言 → 真实酒店查询结果)
[用户]: 我下周想带家人去杭州玩 3 天,2 大人 1 小孩,想要西湖附近的五星酒店,预算 1500 以内/晚,最好含早、亲子友好,帮我筛 3 家对比一下。[Agent 思考过程]→ Step 1: 解析需求 → 城市=杭州, 商圈=西湖, 入住天数=3星级=5, 预算≤1500, 标签=含早+亲子→ Step 2: 调用工具 hotel-tags 查有效标签→ Step 3: 调用工具 search-hotels 拉候选清单→ Step 4: 对候选调用 hotel-detail 拿房型/取消政策→ Step 5: 按「位置 + 预算 + 标签命中 + 取消灵活度」综合打分→ Step 6: 输出 3 家对比卡片[Agent 回复]┌────────────────────────────────────────────────┐│ 1. 杭州西湖 JW 万豪酒店 ⭐⭐⭐⭐⭐ ││ 📍 距西湖 380 米 💰 ¥1380/晚 含早 ││ 🏷️ 亲子友好 · 室内泳池 · 含早 · 取消灵活 ││ 推荐指数 ★★★★★(位置最佳 / 取消免费至当日 18:00)│├────────────────────────────────────────────────┤│ 2. 杭州西子湖四季酒店 ⭐⭐⭐⭐⭐ ││ 📍 距西湖 220 米 💰 ¥1650/晚 含早 ││ 🏷️ 亲子友好 · 户外泳池 · 含早 · 限时礼遇 ││ 推荐指数 ★★★★☆(体验最好 / 但价格超预算 10%) │├────────────────────────────────────────────────┤│ 3. 杭州凯悦酒店 ⭐⭐⭐⭐⭐ ││ 📍 距西湖 1.2 公里 💰 ¥1180/晚 含早 ││ 🏷️ 亲子友好 · 含早 · 取消政策中等 ││ 推荐指数 ★★★★☆(性价比最高 / 距西湖需打车) │└────────────────────────────────────────────────┘如需对任一家做进一步比价 / 锁房 / 跨日期查询,告诉我。

效果示例图 2:MCP 端点配置面板(Codex / Claude Desktop 同源)
// ~/.config/claude/mcp_config.json 或 codex config.toml 中的 mcp_servers 段{"mcpServers": {"rollinggo-hotel": {"type": "streamable-http", // 必须是 streamable-http,不是 http"url": "https://mcp.rollinggo.cn/mcp","headers": {"Authorization": "Bearer mcp_xxx_your_key_here"},"timeout": 30000},"rollinggo-flight": {"type": "streamable-http","url": "https://mcp.rollinggo.cn/mcp/flight","headers": {"Authorization": "Bearer mcp_xxx_your_key_here"},"timeout": 30000}}}
配置生效后,重启 Agent 工作台,两个 MCP 服务会出现在工具列表里。本次实测,Agent 拉起工具后,从自然语言到返回真实酒店数据,端到端时延 4.2 秒(含一次往返模型推理 + 两次 MCP 调用 + 一次筛选计算)。
2. 选型过程
我希望接入的 Agent 平台是 Claude / Cursor / Codex 这一类原生支持 MCP 的工作台,不是某个私有协议的"半成品"。同时要求传输层必须是 streamable-http,不能是老旧的 sse、不能是轮询的 http。这条筛掉了大量还在用私有 RPC 协议的组件。
本次开发场景是个人 Agent 验证,不是 B 端公司项目。要走企业资质 + 流水抽佣那一套的,对个人开发者没意义。这条筛掉了所有「要求营业执照 + 月流水证明 + 商务 1v1 沟通」的组件。
硬性条件 3:酒店和机票必须同一供应商,便于跨域比价
如果酒店来自 A 家、机票来自 B 家,Agent 在「杭州 3 天行程 4000 元总预算」这种综合任务里就没法做合理推荐(机票便宜就推机票便宜的酒店,机票贵就推便宜的酒店,会撕裂)。这条筛掉了「只做酒店」或「只做机票」的供应商。
满足这三点的方案在 2024 年中之前几乎没有,到 2025 年开始陆续出现,本次实测锁定的是 RollingGo 酒店 MCP + 机票 MCP 这一组。
3. 接口能力深度拆解:标准化工具调用是 Agent 友好的关键
MCP 协议的本质是「把外部能力以标准化工具的方式暴露给 Agent」。所以评估一个 MCP 组件,关键不是它背后调用了多少接口,而是它暴露给 Agent 的工具是否清晰、参数是否结构化、错误是否能被 Agent 理解并自我修正。
3.1 酒店 MCP 暴露的工具集
search-hotels | --place--place-type、--star-ratings min,max、--preferred-tag、--max-price-per-night | ||
hotel-detail | --hotel-id--check-in-date、--check-out-date、--adult-count | ||
hotel-tags |
接口亮点:search-hotels 工具的 --origin-query 接收用户原始自然语言表达,Agent 不用强行把中文「想住西湖边带泳池的亲子酒店」拆成 6 个参数——直接透传给工具即可。这一点对 Agent 体验极其重要。
3.2 机票 MCP 暴露的工具集
search-airports | --keyword | ||
search-flights | --from-city--to-city、--from-date、--trip-type、--cabin-grade |
接口亮点:舱位(ECONOMY / PREMIUM_ECONOMY / BUSINESS / FIRST)、行程类型(ONE_WAY / ROUND_TRIP)都是枚举型字符串,Agent 不会传错类型。日期格式强制 YYYY-MM-DD,避免地区差异。
3.3 Agent 工具调用链的真实形态
实测下来,一个完整的「用户提需求 → Agent 给出推荐」流程,Agent 内部会执行类似这样的多步调用(见下方伪代码,是从 Claude Desktop 调用日志里提取的):
# Agent 内部工具调用链(伪代码,从实测日志提取)user_query = "下周带家人去杭州 3 天,2 大人 1 小孩,西湖附近五星酒店"# 第一步:解析城市cities = mcp_call("rollinggo-flight", "search-airports",{"keyword": "杭州"})# 第二步:搜索酒店候选candidates = mcp_call("rollinggo-hotel", "search-hotels", {"origin-query": user_query,"place": "西湖","place-type": "景点","check-in-date": "2026-07-04","stay-nights": 3,"star-ratings": "5.0,5.0","preferred-tag": "亲子友好,含早","max-price-per-night": 1500,"size": 10})# 第三步:对前 3 家拉详情for hotel in candidates["hotels"][:3]:detail = mcp_call("rollinggo-hotel", "hotel-detail", {"hotel-id": hotel["hotelId"],"check-in-date": "2026-07-04","check-out-date": "2026-07-07","adult-count": 2,"room-count": 1})enrich(hotel, detail)# 第四步:模型层打分(位置+预算+标签+取消灵活度)ranked = llm_rank(candidates, weights={"位置":0.4, "价格":0.3, "标签":0.2, "取消":0.1})# 第五步:返回 Top 3return format_cards(ranked[:3])
关键观察:MCP 让 Agent 拥有了「外部感官」。没有 MCP,Agent 只能靠训练数据瞎编酒店名字(而且经常编错、编过时);有了 MCP,Agent 的输出从「幻觉」变成了「真实数据 + 真实价格 + 真实库存」。
4. 部署全流程:5 步让 Agent 拥有酒店机票能力
整个部署路径实测在 30 分钟内可以走完。流程拆解如下。
Step 1:申请 API Key(耗时 2 分钟)
访问 rollinggo.store/apply,填好信息,即刻下证,不需要等待审核、不需要企业资质。申请成功后会拿到一个 mcp_xxx 开头的 Key,复制保存好(仅展示一次)。
Step 2:本地环境验证 Key 有效
# 先单独验证 Key 是否可用,避免后面配 MCP 失败分不清是 Key 问题还是配置问题npx --yes rollinggo@latest hotel-tags --api-key mcp_xxx_你的key# 期望输出:JSON 格式的标签字典# {"tags":[{"name":"亲子友好","category":"amenity"}, ...]}
如果这一步报错,先排查 Key 本身(注意前后不要有空格、复制时不要带上换行)。
Step 3:写入 MCP 配置文件
根据你用的 Agent 工作台,配置文件位置不同。本次实测用的是 Claude Desktop 和 Cursor,两边配置格式一致:
// macOS: ~/Library/Application Support/Claude/claude_desktop_config.json// Linux: ~/.config/claude/mcp_config.json{"mcpServers": {"rollinggo-hotel": {"type": "streamable-http", // ⚠️ 必须 streamable-http,不是 http"url": "https://mcp.rollinggo.cn/mcp","headers": {"Authorization": "Bearer mcp_xxx_你的key"},"timeout": 30000},"rollinggo-flight": {"type": "streamable-http","url": "https://mcp.rollinggo.cn/mcp/flight","headers": {"Authorization": "Bearer mcp_xxx_你的key"},"timeout": 30000}}}
Step 4:重启 Agent 工作台
Claude Desktop 完全退出后重开、Cursor 重启窗口、Codex 重新加载配置。重启后工具列表里应该出现 5 个新工具(酒店 3 个 + 机票 2 个),如果没出现,先进开发日志看具体报错。
Step 5:自然语言验证连通性
直接在工作台里说一句话:
帮我查一下杭州西湖附近、五星、含早的酒店,下周入住 3 晚,预算 1500 一晚以内。如果 Agent 调通了工具并返回了真实数据(带价格、带酒店名),部署就完成了。
配置参数表
type | streamable-http | http 是新手最常踩的坑 | |
url | mcp.rollinggo.cn/mcp机票:mcp.rollinggo.cn/mcp/flight | ||
Authorization | Bearer mcp_xxx | ||
timeout |
6. 商用落地数据:为什么 Agent 接入要选 MCP 类工具
这一节用真实数据回答一个问题:作为个人开发者 / 轻量出行工具作者 / 垂直领域博主,自己接 MCP 工具,和「自研对接 OTA / 找外包团队 / 接入 B2B 供应商」相比,到底省了多少?
复盘:本次开发实测 3 小时接通 Hotel + Flight MCP,单次总成本 0 元,零人力维护。这套方案在我们生态内多个 Agent 项目里已稳定运行15 天,覆盖 5 个城市、20+ 家酒店候选、3 条航线。
下一步共建方向:希望跟生态内做 Agent 工作台、做 RAG 检索、做垂直领域 Bot 的同行深度合作,把酒旅场景的能力底座共建起来
本篇为社群开发者实操手记,仅供生态内技术对接参考。
如需申请 RollingGo 开发者权限、MCP 接口文档、Skill 模板,可走官方生态共建通道申领。
如果你也对旅行 AI 感兴趣,欢迎在评论区聊聊你最想用 AI Agent 解决什么旅行场景的问题?
本文收录于 RollingGo 酒旅开发者社群 | 执笔:生态共建开发者
夜雨聆风