   ](https://github.com/MikkoParkkola/trvl/releases)     ](https://go.dev/)  
trvl——旅游MCP服务器
Asciinema来源: demo.cast
AI助手的标准旅行MCP。1个智能工具。63个兼容性别名。21家供应商。API密钥为零。一个二进制。 为您的AI助手提供Claude、Cursor、Windsurf、Codex和任何兼容MCP的AI 1智能MCP工具—— travel 路由器——有63个兼容别名,用于航班、酒店、火车、公共汽车、渡轮、价格警报、奖励最佳地点、天气、行李、休息室和目的地情报。免费。API第一。它还可以作为一个具有50个命令的独立CLI。对于:每年预订≥4次旅行的AI助手用户·集成旅行意图的AI应用程序构建者·开发购物MCP注册表。 不是为了:通过网站预订的人(使用谷歌航班)·旅行社SaaS购物者(我们不是托管产品)。
→ 全面定位: docs/POSITIONING.md ·比较: docs/COMPARISON.md ·架构: docs/ARCHITECTURE.md ·旅行者工作区: docs/traveller-workspace.md ·工具: AGENTS.md
它是什么样子的
你: 我有300欧元和一个免费的周末。让我吃惊。 克劳德(带trvl): 🎲 查询赫尔辛基最便宜的目的地。.. 克罗地亚杜布罗夫尼克 🇭🇷 `` ✈️ Ryanair HEL→DBV Fri 14:25→17:10 (nonstop) — €167 RT 🏨 Old Town Studios, 4.6★ — €42/night × 2 = €84 🌡️ 26°C, sunny, Adriatic swimming 💰 Total: €251 (€49 under budget!) Optimizations applied: Fly Friday not Saturday: -€48 Split airlines (Ryanair out, easyJet back): -€31 📊 Naive booking: €350 → Optimized: €251 → Saved: €99 (28%) `` 想让我看看那个周末附近的餐馆或活动吗?尝试的前5个提示
将这些复制到Claude、Cursor、Windsurf、Codex或任何MCP客户端 trvl mcp install:
I have a free long weekend from July 1-5, 2026. Find the cheapest realistic trip from Helsinki with nonstop flights and hotels near the center.I have 80,000 Amex Membership Rewards points and 20,000 Virgin points. Compare award sweet spots from HEL to LHR in business class on August 15, 2026.Check whether AMS -> HEL -> RIX on July 1, 2026 is a sensible hidden-city option if I only have carry-on luggage, and compare it against a EUR 150 direct baseline.Find 3+ star hotels within 5 km of ExCeL London for July 1-4, 2026 for two guests, sorted by cheapest first.Create a mistake-fare watch for HEL -> BCN, July 1-8, 2026, and alert me if it drops below EUR 90.trvl是一个 MCP服务器 +CLI,使Claude、Cursor、Windsurf和任何兼容MCP的AI助手可以直接访问谷歌航班、谷歌酒店、Trivago、Airbnb、Booking.com、Hostelworld、Ferryhopper和欧洲地面交通数据。它自动搜索、优化和应用旅行技巧-无需个人API密钥,无需月费,默认情况下为API-first,仅为少数受保护的提供商提供可选的浏览器辅助故障。
设置
一个命令——你的AI什么都做:
阅读https://raw.githubusercontent.com/MikkoParkkola/trvl/main/AGENTS.md并设置trvl
就是这样。你的人工智能将安装二进制文件,连接MCP服务器,安装技能,构建你的旅行档案,并验证一切正常。不到一分钟。适用于Claude Code、Cursor、Windsurf、Codex和任何具有终端访问权限的AI。
或者告诉你的AI助手:
阅读https://github.com/MikkoParkkola/trvl并将trvl安装为我的旅行MCP服务器
或手动安装:
brew install MikkoParkkola/tap/trvl # install
trvl mcp install # wire to Claude Desktop (default)trvl mcp install 自动检测您的AI客户端。指定一个 --client:
trvl mcp install --client claude-code # Claude Code
trvl mcp install --client cursor # Cursor
trvl mcp install --client windsurf # Windsurf
trvl mcp install --client codex # OpenAI Codex CLI
trvl mcp install --client vscode # VS Code Copilot
trvl mcp install --client zed # Zed
trvl mcp install --client --list # show all 10 supported clients还支持: gemini, amazon-q, lm-studio。安装后重新启动客户端。
More install options
# Direct binary (no Homebrew)
curl -fsSL https://github.com/MikkoParkkola/trvl/releases/latest/download/trvl_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz | tar xz -C /usr/local/bin trvl
# Go
go install github.com/MikkoParkkola/trvl/cmd/trvl@latest
# Docker
docker run --rm ghcr.io/mikkoparkkola/trvl flights HEL NRT 2026-06-15
# Build from source
git clone https://github.com/MikkoParkkola/trvl.git && cd trvl && make build
# Claude Code CLI
claude mcp add trvl --transport stdio -- trvl mcp
# Manual JSON (Claude Desktop, Cursor, Windsurf, etc.)
# Add to your MCP client config:
# { "mcpServers": { "trvl": { "command": "trvl", "args": ["mcp"] } } }3.(可选)教你的AI关于trvl
如果您使用了上面的一个命令设置,则该技能已经安装。否则,请安装捆绑的技能,教Claude如何最佳地使用trvl,以及用于安全可选提供程序设置的提供程序助手技能:
# Install the bundled skills (Claude Code)
mkdir -p ~/.claude/skills
for s in trvl providers; do
curl -fsSL "https://raw.githubusercontent.com/MikkoParkkola/trvl/main/.claude/skills/$s.md" -o "$HOME/.claude/skills/$s.md"
done4.建立你的旅行档案
trvl学习你如何旅行。首次使用时,AI会进行一次简短的面试(4个阶段,约2分钟),以了解您的家乡机场、旅行风格、最喜欢的城市和预订策略。它还可以扫描您的电子邮件以查找过去的预订。
Tell trvl to build my travel profile该配置文件使后续的每次搜索都更加智能——它跳过已经知道答案的问题,自动应用您的偏好,并根据您的模式建议目的地。
5.让你的AI搜索
就是这样。你的人工智能助手现在有1个智能旅行工具可用。旧的63个工具名称仍然可以作为兼容性别名调用,以及 TRVL_MCP_TOOL_MODE=legacy 为需要它的客户恢复旧的广告列表。自然地问:
- *“7月1日从肯尼迪机场到东京的商务舱搜索航班”*
- *“查找7月1日至5日在巴黎的酒店,至少4星级”*
- *“8月份从赫尔辛基飞往巴塞罗那最便宜的一天是什么时候?”*
- *“这个周末我在哪里可以从赫尔辛基廉价飞行?”*
- *“在巴塞罗那一周要花多少钱——机票和酒店?”*
- *“我什么时候应该飞往伦敦?查看7月15日左右的日期”*
- *“计划行程:赫尔辛基->巴塞罗那->罗马->巴黎,最便宜的路线”*
- *“5月3日从布拉格到克拉科夫的搜索巴士”*
- *“比较布拉格到维也纳的火车和公共汽车价格”*
- *从阿姆斯特丹、埃因霍温或安特卫普到赫尔辛基或塔林的搜索航班*
- *“显示赫尔辛基400欧元以下的旅游优惠”*
- *“当飞往东京的航班降至500欧元以下时提醒我”*
- *“将此预订确认导入我的日本之旅,然后检查候选酒店是否仍在预订中”*
MCP工具+兼容性别名
| 工具 | 功能 | 示例 |
|---|---|---|
| 旅行 | 用于自然或结构化请求的智能MCP路由器;转发到正确的兼容性别名 | “查找东京酒店”/ intent=search_flights |
| 探照灯 | 搜索特定日期的航班 | HEL->NRT,2026-06-15,商务舱,直达 |
| 搜索日期 | 查找在某个日期范围内飞行最便宜的一天 | HEL->BCN,2026年6月至8月 |
| 搜索酒店 | 搜索任何城市的酒店 | 东京,6月15日至18日,4星级以上 |
| 搜索酒店详情 | 搜索酒店,用房间、价格和设施丰富首选 | 巴黎,7月1日至5日,前3名详细信息 |
| 酒店_价格 | 比较谷歌的酒店价格(从多个提供商汇总) | |
| 酒店点评 | 获取特定酒店的评论 | 按评级或最近度排序的热门评论 |
| 酒店_房间 | 获取房间级别的可用性、膳食和取消详情 | 酒店地点ID,7月1日至5日 |
| 目的地信息 | 任何城市的旅行情报 | 东京:天气、安全、假期、货币 |
| 计算三次成本 | 估算总旅行费用(航班+酒店) | HEL->BCN,7月1日至8日,2位客人 |
| 周末_中途 | 寻找廉价的周末目的地 | 7月从HEL出发,预算500欧元 |
| 建议日期 | 目标日期前后的智能日期建议 | HEL->BCN 7月15日左右,+/-7天 |
| 优化多样性 | 查找多城市旅行的最便宜路线 | HEL->BCN、ROM、标准杆数->HEL |
| 附近的地方 | 查找附近的景点 | 酒店附近的餐厅、景点 |
| 旅游指南 | 城市维基导游 | 邻里、出行、安全 |
| 本地事件 | 查找旅行期间的活动 | 音乐会、节日、展览 |
| 搜索范围 | 搜索公共汽车、火车和渡轮(20家提供商,API-first,可选浏览器故障) | 布拉格->维也纳,5月3日,仅限火车 |
| 搜索_机场_接送 | 搜索机场到酒店或机场到城市的地面交通,加上出租车费用 | CDG->14:30后的巴黎卢特西亚酒店 |
| 搜索餐厅 | 查找附近的餐馆(谷歌地图) | 巴塞罗那,意大利美食 |
| search_deals | 来自4个RSS订阅源的旅行优惠(错误票价、闪购) | HEL 400欧元以下的优惠 |
| 计划行程 | 计划一次完整的旅行——航班+酒店同时搜索 | AMS→PRG,6月15日至18日,欧元 |
| search_route | 结合航班、火车、公共汽车和渡轮的多式联运路线 | 赫尔辛基→ 杜布罗夫尼克,2026年4月10日前抵达 |
| get_weather | 获取任何城市的天气预报(Open Meteo,最多14天) | 布拉格,周末预报 |
| get_references | 读取用户旅行偏好(FF状态、行李规则、座位偏好) | -- |
| 检测旅行背包 | 运行18个并行探测器,以节省飞行和地面成本 | HEL→ AMS,4月13日,仅限携带 |
| 检测_通讯_黑客 | 查找酒店拆分节省(例如,2个城市的住宿比1个酒店便宜) | 布拉格,6月15日至22日 |
| 搜索_自然 | 使用关键字启发式的自然语言搜索——自动发送到正确的工具 | “赫尔辛基7月最便宜的周末” |
| find_trip_window | 通过将价格日历与繁忙时段相交(从日历工具中传递)找到最佳旅行时段 | “布拉格最佳周,5月-8月” |
| search_lounges | 查找机场休息室、出入规则和卡/身份资格 | 拥有优先通行证或寰宇一家身份的HEL休息室 |
| check_visa | 检查护照的签证和入境要求→目的地国家对 | FI护照→ TH |
| 计算点值 | 比较现金价格与兑换所需积分 | 450欧元vs 20000芬兰航空Plus积分 |
| 搜索_病房 | 根据积分余额和转会合作伙伴对奖励席位的最佳点进行排名 | VS席位+MR/UR/Bilt余额 |
| list_trips | 列出来自~/.trvl/trips.json | 的已保存行程-- |
| get_trip | 获取已保存行程的详细信息 | 行程ID |
| create_trip | 创造新的旅行记录 | “赫尔辛基球场+布拉格+阿姆斯特丹” |
| add_trip_leg | 将航班、酒店或地面航段添加到已保存的行程中 | 行程ID、类型、详细信息 |
| mark_trip_booked | 将行程标记为已预订 | 行程ID,行程索引 |
| trip工作空间 | 导入确认、导出工作区、保存预订候选人、运行行程检查和获取票价情报 | action=import_reservation / action=booking_ready |
| get_bagge_rules | 查询航空公司的随身行李和托运行李限额 | AY随身行李+托运行李规则 |
| 构建文件 | 根据预订历史建立旅行者档案(电子邮件解析+LLM) | 扫描电子邮件以查找过去的预订 |
| add_booking | 在旅行者资料中添加预订 | 航班、酒店、地面或乘车 |
| 面试_行程 | 根据个人资料知识生成预搜索面试问题 | 跳过个人资料已经回答的问题 |
搜索筛选
飞行过滤器(search_flights)
| 筛选器 | 参数 | 备注 |
|---|---|---|
| 客舱等级 | cabin_class | economy, premium_economy, business, first |
| 最大停止次数 | max_stops | nonstop, one_stop, two_plus,或 any |
| 联盟 | alliances | STAR_ALLIANCE, ONEWORLD, SKYTEAM --服务器端 |
| 出发时间窗口 | depart_after / depart_before | HH:MM 格式--服务器端 |
| 更低的排放 | less_emissions | 只有二氧化碳排放量低于平均水平的航班——服务器端 |
| 随身行李 | carry_on_bags | 需要包含N个随身行李——服务器端价格重新计算 |
| 托运行李 | checked_bags | 隐藏的谷歌功能 --服务器端需要包含N个托运行李。谷歌自己的用户界面只暴露了继续;trvl还将检查袋槽连接到同一过滤器阵列中。 |
| 需要托运行李 | require_checked_bag | 客户端后置过滤器:在解析的响应中丢弃任何没有≥1个免费托运行李的航班 |
| 最高价格 | max_price | 整数、整货币单位——服务器端 |
| 最长持续时间 | max_duration | 分钟--服务器端 |
| 不包括基本经济 | exclude_basic | 降低BE票价——服务器端 |
| 排序 | sort_by | cheapest, duration, departure, arrival |
| 航空公司 | airlines | 逗号分隔的IATA代码(例如。 AY,LH) |
酒店过滤器(search_hotels)
| 筛选器 | 参数 | 备注 |
|---|---|---|
| 免费取消 | free_cancellation | ?fc=1 服务器端谷歌酒店参数 |
| 物业类型 | property_type | hotel, apartment, hostel, resort, bnb, villa --服务器端 ?ptype=N |
| 品牌/连锁 | brand | 不区分大小写的子字符串匹配(例如。 hilton, marriott)--客户端 |
| 星级评定 | stars | 最少1-5--服务器端 ?class=N |
| 客人评价 | min_rating | 例如。 4.0 --服务器端 ?rating=N 客户端防护 |
| 距中心距离 | max_distance | 公里----服务器端 ?lrad=N (米) |
| 便利设施 | amenities | 逗号分隔的所需设施——客户端 |
| 价格范围 | min_price / max_price | 每晚-服务器端 ?min_price / ?max_price 客户端防护 |
| 排序 | sort | price, rating, distance, stars |
地面运输过滤器(search_ground)
| 筛选器 | 参数 | 备注 |
|---|---|---|
| 模式 | type | bus, train, ferry --客户端 |
| 最高价格 | max_price | 货币单位——客户端 |
| 供应商 | provider | 仅限于一个提供商(例如。 flixbus, db, regiojet) |
独特功能: 这checked_bags过滤search_flights直接在谷歌内部设置托运行李插槽batchexecute过滤器阵列——与手提行李的铁丝位置相同。谷歌自己的Flights UI只暴露了随身携带的过滤器;托运行李槽在服务器端工作,但没有记录,也没有出现在UI中。trvl是唯一公开它的客户端。
MCP协议特性(v2025-11-25)
| 功能 | 详细信息 |
|---|---|
| 结构化内容 | 键入JSON(structuredContent)与人类可读的摘要一起 |
| 内容注释 | audience: ["user"] 对于摘要, audience: ["assistant"] 数据 |
| 输出模式 | 完整的JSON模式验证 travel 智能路由器和所有63个兼容性工具响应 |
| 提示 | plan-trip, find-cheapest-dates, compare-hotels, where-should-i-go |
| 资源 | 机场代码(50个主要枢纽)、航班/酒店使用指南、价格观察订阅 |
| 工具描述编排 | find_trip_window 指示LLM首先获取日历数据,然后在每个MCP客户端的--works中传递繁忙间隔。看 docs/MCP-ORCHESTRATION.md |
| 进度通知 | 长时间运行的搜索将进度令牌流式传输到客户端 |
| 资源订阅 | 价格观察资源通知订阅者价格变化 |
| 渐进式披露 | 每次回复中的后续搜索建议 |
| 预订链接 | 搜索结果中直接显示谷歌航班/酒店链接 |
旅行黑客探测器
detect_travel_hacks 和 trvl hacks 并行运行37个探测器。每个都是独立的,有20秒的超时时间:
| 探测器 | 它发现了什么 |
|---|---|
| 一次性 | 预订更长的行程,跳过最后一段(当附加组件免费时) |
| 隐藏城市 | 当通过真实目的地的转机航班更便宜时,飞往枢纽 |
| 定位 | 从附近的机场起飞,享受更低的票价 |
| 分裂 | 在不同的航空公司将一张机票分成两种方式 |
| 夜间运输 | 乘坐通宵火车/渡轮以节省酒店住宿 |
| 中途停留 | 添加一个免费的多日停留(芬兰航空/冰岛航空/TAP/土耳其航空/卡塔尔航空/阿联酋航空/新加坡/阿提哈德航空) |
| date_flex | 提前或推迟一天飞行可节省大量费用 |
| open_jaw | 飞进一个城市,飞出另一个城市 |
| 铁定位 | 乘坐渡轮前往航班更便宜的枢纽(如HEL)→TLL渡轮+TLL航班) |
| multi_stop | 将旅程分为两个更便宜的部分 |
| 货币套利 | 以目标货币预订,以避免动态定价 |
| 日历冲突 | 在您的旅行日期标记公共假日或旺季 |
| 星期二_预订 | 确定更便宜的预订窗口(非高峰工作日) |
| 低成本载波 | 寻找聚合器中未显示的低成本运营商替代方案 |
| 多模态飞行 | 用火车或公共汽车代替短途飞行 |
| 多模定位 | 前往枢纽的地面交通+更便宜的航班(火车/渡轮/公共汽车) |
| 多模openjaw_round | 混合地面和空气进行开放式行程 |
| 多模返回拆分 | 出站与回程的不同模式 |
| 预付款_购买 | 确定提前14-21天预订可大幅降低票价的路线 |
| group_split | 将一组人拆分到单独的预订中,以降低每人票价 |
| 铁路租赁 | 火车到枢纽+航班比直飞便宜 |
| fare_breakpoint | 将日期移动1-2天以跨越票价等级边界 |
| 目的地_机场 | 飞往同一城市的二级机场 |
| 一次性地面 | 预订一次性地腿,以解锁更便宜的捆绑包 |
| 欧洲之星_返回 | 欧洲之星往返票比单程票便宜 |
| cross_border_rail | 跨境铁路比国内+国内铁路便宜 |
| 渡船_客舱 | 带客舱的过夜渡轮可节省酒店住宿时间 |
| eu261 | 长连接触发EU261补偿权 |
| 自我转移 | 通过两张单独的票建立自己的连接 |
| 区域通行证 | 日/周铁路票比点对点票便宜 |
| 部门税 | 从其他国家出发,避免高额离境税 |
| 铁路请愿 | 有竞争力的铁路线路比飞行便宜 |
| back_to_back | 两次重叠的往返比灵活的单程便宜 |
| 里程_轮 | 廉价机票赚取了不成比例的飞行常客里程 |
| day_use | 白天使用酒店进行长时间停留,而不是一整晚 |
| error_fare | 标记异常便宜的票价(潜在的错误票价或闪购) |
航班提供商
trvl船用 谷歌航班 (手动滚动protobuf)在默认代码路径上,通过以下方式进行增强 几维鸟 (虚拟行间合并)用于兼容单向搜索和 AFKLM蓝天飞行 (提供API v3,opt-ing)以进行奖励可用性扫描。另外两个提供商可作为特定用例的选择加入:
| 提供者 | 协议 | 强度 | 激活 | 授权 |
|---|---|---|---|---|
| 谷歌航班 | 手工制作的protobuf | 覆盖范围最广,服务器端过滤器 | 默认 | 无 |
| 几维鸟 | REST | 虚拟内联+自连接候选 | 默认(单向合并) | 无 |
| AFKLM蓝天飞行 | 提供API v3+奖励API | 现金+KL/AF金属机舱搜索 | --award (CLI)/内置选择加入 | KLM/蓝天飞行会话cookie |
| 打滑 | 流式HTTP MCP(@skiplagged/mcp v0.0.4,协议2025-06-18) | 类型定义隐藏城市+虚拟联程默认值 | 默认值(单向合并)/ --provider skiplagged 独奏 | 无 |
默认的航班搜索将Google Flights、Kiwi和Skiplaged的结果合并到一个排序列表中,非常简单 trvl flights HEL BCN 2026-07-01 已经包括隐藏城市/虚拟联程选项。使用 --provider skiplagged 当您想交叉验证或只查看隐藏的城市候选时,可以自行查询Skiplaged。
# Default (Google Flights + Kiwi + Skiplagged merge):
trvl flights HEL BCN 2026-07-01
# Skiplagged hidden-city / virtual-interlining only:
trvl flights HEL BCN 2026-07-01 --provider skiplagged
# AFKLM Flying Blue award availability:
trvl flights AMS NRT 2026-09-15 --award地面运输供应商
trvl同时搜索20家地面运输提供商,覆盖欧洲大部分地区。除此之外,机场接送还增加了出租车估算,因此trvl总共披露了21家交通服务提供商:
| 提供商 | 协议 | 覆盖范围 | 起始价格 | 授权 |
|---|---|---|---|---|
| 欧洲之星 | GraphQL | 伦敦↔ 巴黎/布鲁塞尔/阿姆斯特丹/科隆 | 39英镑+ | 浏览器cookies(Datadome) |
| 德国铁路 | REST(Vendo) | 所有欧洲铁路连接 | 37欧元+ | 无 |
| ÖBB | 休息(商店+HAFAS) | 奥地利铁路+跨境(AT/DE/HU/IT) | 38欧元+ | 无 |
| VR(通过Digitransit) | GraphQL | 芬兰铁路网 | 14欧元+ | 公共API密钥(嵌入式) |
| 国家科学 | REST | 荷兰铁路网 | 5+欧元 | 公共订阅密钥(嵌入式) |
| Renfe | 休息 | 西班牙AVE高速+区域 | 36欧元+ | 无 |
| 法国国家铁路公司 | REST | 法国TGV、TER、城际 | 变化 | 默认情况下无;可选浏览器/curl回退 |
| 火车线 | REST | 聚合:SNCF、DB、欧洲之星、意大利电信… | 变化 | 默认情况下无;可选浏览器/curl回退 |
| FlixBus 的 | 休息 | 泛欧巴士(40多个国家) | 5+欧元 | 无 |
| 区域 飞机 | 休息 | CZ/SK/AT/HU/DE/PL公共汽车+火车 | 5欧元+ | 无 |
| 过渡性的 | MOTIS2 REST | 泛欧交通(基于时间表的回退) | -- | 无 |
| 塔林客 | 预订SPA API | 波罗的海渡轮(赫尔辛基、塔林、斯德哥尔摩、里加)-未来日期 | 16欧元+ | 会话cookie(自动) |
| 维京 | 参考时间表 | 波罗的海渡轮(赫尔辛基、塔林、斯德哥尔摩、图尔库) | 22+欧元 | 无 |
| 埃克罗线 | Magento AJAX API | 赫尔辛基↔ 塔林(芬兰南部) | 19欧元+ | 无 |
| 斯坦纳线 | 参考时间表 | 北海+波罗的海(哥德堡、基尔、卡尔斯克鲁纳、格丁尼亚等) | 25欧元+ | 无 |
| Finnlines | GraphQL(AppSync) | 赫尔辛基↔ 纳坦利特拉维德↔ 马尔默Kapellskär↔ hwinoujście | 27欧元+ | 公共API密钥(嵌入式) |
| 丹麦联合汽船有限公司 | REST API | 北海+波罗的海(基尔、阿姆斯特丹、纽卡斯尔、哥本哈根等) | 49欧元+ | 无 |
两个提供商(NS、Digitration/VR)使用嵌入二进制文件中的公共API密钥-不需要用户注册或个人密钥。
trvl如何比较
有关以代理为中心的与Google Flights、KAYAK、ChatGPT搜索和其他旅行MCP的比较,请参阅 docs/COMPARISON.md.
| 功能 | trvl | fli | 谷歌航班 | Skyscanner | Kiwi |
|---|---|---|---|---|---|
| 航班搜索 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 巴士/火车/渡轮搜索 | ✅ (20家供应商:FlixBus、RegioJet、欧洲之星、DB、ÖBB、NS、VR、SNCF、Trainline、Transitous、Renfe、European Sleeper、Snälltåget、Tallink、Viking Line、EckeröLine、Finnlines、Stena Line、DFDS、Ferryhopper) | ❌ | ❌ | ❌ | ❌ |
| 价格跟踪 | ✅ (带警报的手表) | ❌ | ❌ | ❌ | ❌ |
| 酒店搜索 | ✅ (5家提供商:谷歌酒店、Trivago、Airbnb、Booking.com、Hostelworld) | ❌ | ❌ | ❌ | ❌ |
| 酒店搜索+顶级N间客房/设施详情 | ✅ (search_hotels_with_details) | ❌ | ✅ (web用户界面) | ❌ | ❌ |
| 航班提供商 | ✅ (Google Flights默认+Kiwi虚拟联程合并;AFKLM蓝天飞行奖扫描仪;通过选择加入跳过隐藏城市 --provider skiplagged) | ✅ | ✅ | ✅ | ✅ |
| 酒店评论 | ✅ | ❌ | ❌ | ❌ | ❌ |
| 行程成本计算器 | ✅ | ❌ | ❌ | ❌ | ❌ |
| 探索目的地 | ✅ | ❌ | ✅ (仅限网络) | ✅ (网络) | ✅ |
| 多城市优化器 | ✅ | ❌ | ❌ | ❌ | ⚠️ (1.7★) |
| 目的地情报 | ✅ | ❌ | ❌ | ❌ | ❌ |
| 旅行技巧(自动应用) | ✅ | ❌ | ❌ | ❌ | ❌ |
| MCP服务器 | ✅ | ✅ | ❌ | ❌ | ❌ |
| 个人资料 | ✅ | ❌ | ❌ | ❌ | ❌ |
| CLI | ✅ | ✅ | ❌ | ❌ | ❌ |
| 不需要API密钥 | ✅ | ✅ | N/A | N/A | N/A |
| 单二进制 | ✅ (前进) | ❌ (Python) | 不适用 | 不适用 |
mcp网关集成
backends:
trvl:
transport: stdio
command: trvl mcpAI助理
看 快速设置步骤3 上面是AGENTS.md和llms.txt链接。
______________________________________________________________________
CLI使用情况
trvl还可以作为一个具有50个命令的独立CLI工具:
接受所有搜索命令 --currency (例如。 --currency EUR)转换显示的价格。trvl检测实际的API货币,并在显示层进行转换-没有硬编码货币。
航班
$ trvl flights HEL NRT 2026-06-15
Found 86 flights (one_way)
| Price | Duration | Stops | Route | Airline | Departs |
+----------+----------+---------+--------------------------+-----------------------+------------------+
| EUR 603 | 24h 20m | 2 stops | HEL -> CPH -> AUH -> NRT | Scandinavian Airlines | 2026-06-15T06:10 |
| EUR 656 | 24h 10m | 2 stops | HEL -> CPH -> AUH -> NRT | Finnair | 2026-06-15T06:20 |
| EUR 875 | 31h 20m | 1 stop | HEL -> IST -> NRT | Turkish Airlines | 2026-06-15T19:35 |trvl flights JFK LHR 2026-07-01 --cabin business --stops nonstop
trvl flights AMS,EIN,ANR HEL,TKU,TLL 2026-06-15 # Multi-airport search
trvl flights HEL BCN 2026-07-01 --return 2026-07-08
trvl flights HEL NRT 2026-06-15 --format json # JSON output最便宜的日期
trvl dates HEL NRT --from 2026-06-01 --to 2026-06-30
trvl dates HEL BCN --from 2026-07-01 --to 2026-08-31 --duration 7 --round-trip酒店
$ trvl hotels "Tokyo" --checkin 2026-06-15 --checkout 2026-06-18
Found 20 hotels:
| Name | Stars | Rating | Reviews | Price |
+-----------------------------------+-------+--------+---------+---------+
| HOTEL MYSTAYS PREMIER Omori | 4 | 4.1 | 2059 | 150 EUR |
| Hotel JAL City Tokyo Toyosu | 4 | 4.2 | 1080 | 89 EUR |trvl hotels "Paris" --checkin 2026-07-01 --checkout 2026-07-05 --stars 4 --sort rating
trvl prices "" --checkin 2026-06-15 --checkout 2026-06-18
trvl prices hold "" --name "Hotel Lutetia Paris" --checkin 2026-06-15 --checkout 2026-06-18 --price 420 --currency EUR --refundable
trvl prices rebook --min-savings 25
trvl rooms "Hotel Lutetia Paris" --checkin 2026-06-15 --checkout 2026-06-18探索目的地
trvl explore HEL # Cheapest destinations from Helsinki
trvl explore JFK --from 2026-07-01 --to 2026-07-14 # With dates
trvl explore AMS --currency EUR # Display prices in EUR价格网格
trvl grid HEL NRT --depart-from 2026-07-01 --depart-to 2026-07-07 \
--return-from 2026-07-08 --return-to 2026-07-14目的地信息
trvl destination "Tokyo" # Weather, safety, holidays, currency
trvl destination "Barcelona" --dates 2026-07-01,2026-07-08计划旅程
搜索航班和酒店在一个命令。并行运行这两个搜索并显示成本摘要。
trvl trip AMS PRG --depart 2026-06-15 --return 2026-06-18 --currency EUR
trvl trip JFK LHR --depart 2026-08-01 --return 2026-08-10 --guests 2旅行费用
trvl trip-cost HEL BCN --depart 2026-07-01 --return 2026-07-08 --guests 2周末旅行
trvl weekend HEL --month july-2026 # Top 10 cheapest weekends
trvl weekend HEL --month july-2026 --budget 500 # Under EUR 500 total智能日期建议
trvl suggest HEL BCN --around 2026-07-15 --flex 7 # Best dates +/- 7 days多城市优化器
trvl multi-city HEL --visit BCN,ROM,PAR --dates 2026-07-01,2026-07-21公共汽车、火车和渡轮
同时搜索20家供应商:FlixBus(公共汽车,泛欧),RegioJet(公共汽车+火车,CZ/SK/AT/HU/DE/PL),欧洲之星/Snap(火车,伦敦)↔巴黎/布鲁塞尔/阿姆斯特丹/科隆)、德国铁路(火车,所有欧洲铁路)、ÖBB(商店/HAFAS API)、NS(荷兰铁路)、VR(芬兰铁路,经由Digitransit API)、SNCF(火车,法国TGV/TER)、Trainline(欧洲主要运营商的综合铁路)、Transitous.org(运输路线,泛欧铁路)、Renfe(西班牙AVE高速API)、欧洲轨枕(夜间列车布鲁塞尔)↔柏林↔布拉格+阿姆斯特丹/鹿特丹/安特卫普/德累斯顿),Snälltåget(瑞典夜行列车斯德哥尔摩↔Malmö/Åre/Berlin,Sqills S3 API),Tallink(波罗的海渡轮,API直播),Viking Line(波罗的海渡轮),EckeröLine(赫尔辛基↔塔林,现场马根托API),芬兰(赫尔辛基↔纳坦利特拉维德↔Kapellskär、GraphQL API)、Stena Line(北海+波罗的海渡轮)、DFDS(北海+Baltic渡轮,现场可用API)和Ferryhopper(33个国家,190多家渡轮运营商,通过MCP)。机场接送还增加了出租车费用估算,以便进行门到门比较。
API路由是默认路径。如果你想让trvl为SNCF或Trainline等受保护的提供商尝试浏览器/curl/cookie辅助回退,请通过 --allow-browser-fallbacks (或设置 TRVL_ALLOW_BROWSER_FALLBACKS=true).
trvl ground Prague Vienna 2026-07-01 # All 20 providers
trvl ground London Paris 2026-07-01 # Eurostar + FlixBus + DB
trvl bus Prague Krakow 2026-07-01 # Same command, bus alias
trvl train Prague Vienna 2026-07-01 --type train # Trains only
trvl ground Prague Vienna 2026-07-01 --provider regiojet # RegioJet only
trvl ground Vienna Salzburg 2026-07-01 --provider oebb # ÖBB Railjet (EUR 38+)
trvl ground Helsinki Tampere 2026-07-01 --provider vr # VR Finnish Railways (EUR 14+)
trvl ground Amsterdam Utrecht 2026-07-01 --provider ns # NS Dutch Railways (EUR 5+)
trvl ground Paris Lyon 2026-07-01 --provider sncf # SNCF TGV only
trvl ground Berlin Munich 2026-07-01 --provider db # DB ICE (e.g. EUR 47.99)
trvl ground London Paris 2026-07-01 --provider trainline --allow-browser-fallbacks # Trainline aggregated rail + optional protected fallback
trvl ground Madrid Barcelona 2026-07-01 --provider renfe # Renfe AVE high-speed (EUR 36+)
trvl ground Prague Vienna 2026-07-01 --max-price 20 # Under EUR 20
trvl airport-transfer CDG "Hotel Lutetia Paris" 2026-07-01
trvl airport-transfer LHR "Paddington Station" 2026-07-01 --arrival-after 14:30
trvl airport-transfer CDG "Hotel Lutetia Paris" 2026-07-01 --provider taxi多模式路由
将所有20家供应商的航班、火车、公共汽车和渡轮组合成最佳行程。 --avoid 仅过滤已避免的模式,以及 --depart-after / --arrive-by 根据组装的行程时间进行应用。
trvl route Helsinki Dubrovnik --arrive-by 2026-04-10 # Pareto-optimal itineraries
trvl route HEL TLL --arrive-by 2026-04-06 # Ferry + bus options
trvl route London Barcelona --arrive-by 2026-07-15 # Eurostar + TGV vs flight价格观察
跟踪航班和酒店价格随时间的变化。当价格降至阈值以下时收到警报。
trvl watch add HEL BCN --depart 2026-07-01 --return 2026-07-08 --below 200
trvl watch add Prague --type hotel --depart 2026-07-01 --return 2026-07-02 --last-minute
trvl watch list # Show all active watches
trvl watch check # Check current prices
trvl watch daemon --every 6h # Keep checking on a schedule
trvl watch history # Price history for a watch
trvl watch remove # Remove a watch旅游优惠
聚合来自4个RSS提要(秘密飞行、Fly4Free、假日海盗、The Points Guy)的错误票价、闪购和交易。当找到匹配的交易时,交易也会自动出现在航班搜索结果中。
trvl deals # All recent deals
trvl deals --from HEL,AMS --max-price 400 # From my airports, under €400
trvl deals --from Helsinki,Amsterdam,Prague # City names also accepted
trvl deals --type error_fare # Error fares only旅行技巧
并行运行37个探测器,并对节省机会进行排名。通过 --return 往返黑客。添加 --carry-on 只限制隐性城市的结果进行。
trvl hacks HEL AMS 2026-04-13 # One-way hacks
trvl hacks HEL AMS 2026-04-13 --return 2026-04-15 --carry-on # Round-trip, carry-on
trvl hacks-accom Prague --checkin 2026-06-15 --checkout 2026-06-22 # Hotel split hacks旅行坚持
保存和管理跨会话的行程。行程存储在 ~/.trvl/trips.json.
trvl trips list # List all saved trips
trvl trips show # Show trip details
trvl trips create "Helsinki → Prague → Amsterdam" # Create a new trip
trvl trips add-leg flight --from HEL --to PRG --date 2026-06-15
trvl trips book # Mark trip as booked
trvl trips delete # Remove a trip用户偏好
个人旅行资料存储在 ~/.trvl/preferences.json.驱动实时过滤:酒店结果按星级、评级和邻里进行过滤;旅馆和机场酒店除外;按预算和出发时间窗口过滤的航班结果。您的AI助手在首次使用时会自动构建此配置文件(通过 get_preferences + update_preferences MCP工具)。
trvl prefs # Show current preferences
trvl prefs init # Interactive setup wizard
trvl prefs edit # Open in $EDITOR首次搜索时,系统会自动从您的IP中检测家庭机场和货币。AI助手会在你第一次使用时对你进行面试。配置文件控制的示例:
| 偏好 | 它做什么 |
|---|---|
home_airports: ["HEL", "AMS"] | 每次搜索的默认来源 |
no_dormitories: true | Drops旅馆、胶囊旅馆、客房 |
min_hotel_stars: 4 | 结果中只有4星级以上酒店 |
min_hotel_rating: 4.0 | 只有经过好评的房产(需要20+条评论) |
preferred_districts: {"Prague": ["Prague 1"]} | 首先选择您最喜欢的社区的酒店 |
carry_on_only: true | 解锁隐藏的城市和一次性门票黑客 |
prefer_direct: true | 仅限直达航班 |
budget_per_night_max: 150 | 酒店价格上限通过谷歌酒店API |
budget_flight_max: 300 | 超出预算的航班从结果中下降 |
flight_time_earliest: "07:00" | 上午5点没有出发 |
default_companions: 1 | 酒店搜索默认为2位客人(您+同伴) |
notes: "boutique hotels, no chains" | 自由文本——人工智能将其作为软过滤器应用 |
完整配置文件参考: 代理商.md
积分和里程
将兑换与支付现金进行比较,或列出支持的忠诚度计划:
trvl points-value --cash 450 --points 20000 --program finnair-plus
trvl points-value --cash 300 --offer world-of-hyatt:12000 --offer hilton-honors:80000
trvl points-value --list旅行者简介
根据您的预订历史建立个人旅行档案。个人资料会学习你的模式——首选航空公司、最喜欢的目的地、住宿偏好、旅行技巧——并使用它们来跳过多余的面试问题和个性化搜索。
trvl profile # Show your travel profile
trvl profile summary # Quick stats
trvl profile add --type flight --provider KLM --ref ZHS9BM # Add a booking manually
trvl profile import-email # Build profile from email history (LLM-assisted)配置文件存储:
- 常旅客状态:联盟级别、计划成员
- 预订历史:航班、酒店、Airbnb、地面交通、乘车
- 偏好:首选航空公司、公寓与酒店、最喜欢的社区
- 使用的旅行技巧:你以前用过的票价技巧
- 家庭构成:旅行伴侣,无人陪伴的未成年人体验
- 季节性模式:当你通常旅行时
运作原理
谷歌的旅行前端使用一种名为gRPC over HTTP的内部协议 batchexecute. trvl 本机使用此协议:
- Chrome TLS指纹 — 工具 模拟Chrome的TLS ClientHello
- 航班 —
FlightsFrontendService/GetShoppingResults带有编码滤波器阵列 - 酒店 —
TravelFrontendUi嵌入式JSON解析AF_initDataCallback块 - 酒店价格 —
TravelFrontendUi/data/batchexecute使用rpcidyY52ce - 探索 —
GetExploreDestinations用于目的地发现 - 目的地信息 -5个免费API的并行聚合(Open-Meteo、REST国家/地区、Nager.Date、travel-advisory.info、ExchangeRate-API)
- 公交车 -FlixBus公共API(
global.api.flixbus.com)城市自动补全+搜索 - 火车(RegioJet) -RegioJet公共API(
brn-ybus-pubapi.sa.cz)路线搜索+定价 - 火车(欧洲之星) —
site-api.eurostar.com/gatewayGraphQL伦敦版↔巴黎/布鲁塞尔/阿姆斯特丹/科隆 - 火车(德国联邦铁路) DB 销售 API
int.bahn.de/web/api)适用于所有欧洲铁路连接 - 火车(ÖBB) --奥地利联邦铁路通过商店/HAFAS API;Railjet实时票价(38+欧元)
- 火车(NS) -NS荷兰铁路公共API(
gateway.apiportal.ns.nl)带有嵌入式订阅密钥 - 火车(VR) -芬兰铁路通过Digitransit GraphQL API(
api.digitransit.fi)从Matka.fi出发的固定票价 - 火车(SNCF) -法国国营铁路公司连接API,用于法国TGV、TER和城际线路;受保护会话的可选浏览器/curl回退
- 火车(火车线路) -欧洲主要运营商的Trainline综合铁路API;受保护会话的可选浏览器/curl回退
- 过境(过境) —
routing.spicebus.orgMOTIS2 API用于泛欧运输路线 - 火车(Renfe) -通过REST API的西班牙AVE高速铁路和区域铁路;票价36欧元+
- 速率限制 --每个提供商的令牌桶(10个需求/秒FlixBus/RegioJet;1个需求/2秒DB;1个请求/6秒SNCF/Transitous;1个要求/20秒欧洲之星),在429/5xx上呈指数回退
大多数提供商使用纯HTTP/JSON API。可选的浏览器/curl辅助回退仅适用于有时需要实时Cookie或验证的受保护提供商(目前为SNCF和Trainline);默认路径保持API-first。
所有结果均可预订
每个航班和酒店的结果都包括 booking_url --直接链接到谷歌航班或谷歌酒店,您可以在那里完成预订:
{
"price": 113,
"currency": "EUR",
"airline": "Norwegian",
"flight_number": "D8 2900",
"booking_url": "https://www.google.com/travel/flights?q=Flights+to+BCN+from+HEL+on+2026-07-01"
}人工智能使用这些来为您提供可操作的建议:“在这里预订:\[链接\]”。不要将航班号复制到另一个搜索引擎中。
概览
| 二进制 | 对于API-first流,单个静态~15MB。可选的受保护提供程序回退可能会使用本地浏览器/python工具。 |
| 数据 | 实时来自谷歌航班+5家酒店来源(谷歌酒店、Trivago、Airbnb、Booking.com、Hostelworld)+20家地面提供商(FlixBus、RegioJet、欧洲之星、DB、ÖBB、NS、VR、SNCF、Trainline、Transitous、Renfe、European Sleeper、Snälltåget、Tallink、Viking Line、EckeröLine、Finnlines、Stena Line、DFDS、Ferryhopper)+5个免费目的地API |
| 认证 | 不需要个人API密钥。两个提供商(NS、Digitransit/VR)使用嵌入在二进制文件中的公钥。当明确启用时,受保护的提供商可以使用可选的浏览器/cookie回退。 |
| 主控程序 | 完整的v2025-11-25-1个智能MCP工具,63个兼容性别名(包括4个配置文件别名、3个价格观察别名、提供商健康状况、奖励最佳点扫描),7个提示、资源、结构化内容、进度通知、资源订阅、工具描述编排 |
| 命令行界面 | 50个命令(+7个watch子命令),带表/JSON输出、颜色、shell完成 |
| 预订链接 | 每个航班和酒店结果都包含一个直接的谷歌预订链接 |
| 旅行技巧 | 37个探测器(一次性、隐藏城市、定位、渡轮、多式联运、中途停留、日期弹性、错误票价、背靠背、铁路竞争等) |
| 个人简介 | 从您的预订历史中学习(电子邮件解析+LLM)。记住FF状态、行李需求、最喜欢的房产、出发偏好、使用的旅行技巧、住宿偏好、家庭构成。预搜索面试跳过了个人资料已经回答的问题。 |
| 输出 | 带有颜色(默认)或JSON的漂亮表格(--format json) |
| 平台 | Linux、macOS(amd64、arm64)。Windows CI正在进行中。 |
| 代码 | 622个Go文件,203K LOC,32个包,6400多个测试,82%的覆盖率 |
| 许可证 | PolyForm非商业1.0 |
归因
建在以下肩膀上:
法律
trvl 是一个 个人使用工具 它访问来自谷歌航班、谷歌酒店和其他旅游提供商的面向公众的网络API。它不会绕过身份验证、访问受保护的内容或绕过速率限制。请求模式的速率受到限制,与手动浏览无法区分(每个提供者0.5-2个请求/秒)。
重要提示: 自动访问可能违反某些提供商的服务条款。此工具根据PolyForm Noncommercial 1.0获得许可,禁止商业使用、作为服务运行或重新分发抓取的数据。您有责任确保您的使用符合您所在司法管辖区的适用条款和法律。方法与 飞 (1K+星,麻省理工学院授权)。
生态系统
trvl是MCP工具套件的一部分:
| 工具 | 说明 |
|---|---|
| mcp网关 | 通用MCP网关——紧凑的12-15刀具表面可替代100多个注册 |
| 持续 | AI旅行社——1个智能MCP工具加上63个航班、酒店、地面交通的兼容别名 |
| 逮捕 | Web内容提取——使用Cookie+反机器人旁路获取任何URL |
| 轴终止器 | macOS GUI自动化-通过Accessibility API提供35个MCP工具 |
故障排除
MCP服务器未显示工具? 运行后重新启动AI客户端 trvl mcp install。验证二进制文件是否在您的 $PATH 随着 which trvl.
航班搜索返回空结果? 某些航线在Google Flights中没有数据。尝试一对主要的机场(例如。 trvl flights HEL LHR 2026-07-01)以确认其有效。使用 --format json 查看原始响应。
地面运输“超过上下文截止日期”? 渡轮和铁路供应商有时会节流。30秒后重试,或使用 --timeout 3m 对于速度较慢的供应商。
酒店搜索显示0个结果? 查看您的日期——谷歌酒店要求您在未来办理入住手续,并且至少入住一晚。尝试: trvl hotels "London" --checkin 2026-07-01 --checkout 2026-07-03.
MCP服务器在启动时崩溃? 跑 trvl mcp 直接在您的终端中查看错误。常见原因:使用时端口冲突 --http。尝试使用其他端口 --port 8081HTTP模式正在监听 127.0.0.1 默认情况下,需要 Authorization: Bearer ;set TRVL_MCP_TOKEN 或者使用生成的启动令牌。
许可证
PolyForm非商业版1.0.0 --免费用于个人和非商业用途。商业用途需要单独的许可证。
