关于 Google Flights
Google Flights 是面向旅行规划者的 MCP 服务,可搜索航班并分析票价、航线和机场信息。它提供价格追踪与舱位比较等 12 种工具,无需 API 密钥。
主要功能
- 01搜索单程、往返及多城市航班
- 02追踪票价并查看历史趋势
- 03查看日历价格与价格评估
- 04比较舱位并分析中转风险
- 05查询机场、排放和机型详情
- 06生成 Google Flights 预订链接
适用场景
- 01寻找指定日期或日期范围内的低价航班
- 02比较同一路线的经济舱与商务舱
- 03监测航线票价变化并发现降价
- 04评估中转衔接与附近机场选择
MCP 相关
该 MCP 服务向兼容客户端提供 12 种航班搜索、票价分析和机场查询工具。README 列出 Claude Desktop、Claude Code、Cursor 等客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
12收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| origin | string | 是 | 出发机场 IATA 代码(例如 JFK) |
| destination | string | 是 | 到达机场 IATA 代码(例如 NRT) |
| departureDate | string | 是 | 出发日期,格式为 YYYY-MM-DD |
| returnDate | string | 否 | 返程日期,格式为 YYYY-MM-DD(设定后将搜索往返航班) |
| cabinClass | enum | 否 | 客舱等级economy | premium_economy | business | first |
| adults | integer | 否 | 成人乘客人数 |
| children | integer | 否 | 儿童乘客人数 |
| infants | integer | 否 | 婴儿乘客人数 |
| maxStops | integer | 否 | 最多经停次数(0=直飞,1、2)。留空表示不限。 |
| sortBy | enum | 否 | 按以下方式对结果排序best | price | duration | departure | arrival |
| maxResults | integer | 否 | 要返回的最大结果数 |
详细介绍
google-flights-mcp
功能最丰富的 Google Flights MCP 服务。无需 API 密钥。
提供 12 个工具,用于搜索航班、追踪价格、比较舱位、分析中转等,全部由 Google Flights 实时数据驱动。
兼容 Claude Desktop、Claude Code、Cursor 及任何兼容 MCP 的客户端。
独有的 Google Flights MCP 功能
- 碳排放:按航班和航段显示(CO2,单位为 kg)
- 价格参考:Google 对价格是否偏低、正常或偏高的评估
- 价格追踪:通过 SQLite 持久化记录价格变化,检测降价和趋势
- 日历热力图:一次 API 调用即可获取 60 天的每日价格
- 舱位比较:并排比较经济舱、高端经济舱、商务舱和头等舱
- 附近机场建议:查找更便宜的替代机场(例如,JFK 附近的 EWR/LGA)
- 中转分析:评估转机时间风险(紧张/充裕/过夜)
- 机型和座椅详情:波音 787 和 777 对比、座椅间距(英寸)
- Google Flights 网址:用户可点击的直接预订链接
你可以询问
- “查找下个月从 JFK 到伦敦的直飞航班”
- “从 SFO 飞往东京,哪一周最便宜?”
- “比较从 LAX 到巴黎的经济舱和商务舱”
- “JFK 附近有没有更便宜、值得查询的机场?”
- “追踪 6 月 15 日从 SFO 到 NRT 的价格,降价时提醒我”
- “显示从 SFO 飞往东京的航班排放量”
- “分析从 SFO 飞往曼谷的中转航班”
快速开始
选项 1:npx(无需安装)
可立即与 Claude Code 配合使用:
claude mcp add google-flights -- npx -y google-flights-mcp
或在 Claude Desktop 中,将其添加到 claude_desktop_config.json:
{
"mcpServers": {
"google-flights": {
"command": "npx",
"args": ["-y", "google-flights-mcp"]
}
}
}
选项 2:从源代码安装
git clone https://github.com/andreacappelletti97/google-flights-mcp.git
cd google-flights-mcp
npm install
npm run build
然后连接到 Claude Code:
claude mcp add google-flights node /absolute/path/to/google-flights-mcp/dist/index.js
或连接到 Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"google-flights": {
"command": "node",
"args": ["/absolute/path/to/google-flights-mcp/dist/index.js"]
}
}
}
重启 MCP 客户端。你应该会看到 12 个可用的航班工具。
工具(12 个)
搜索
| 工具 | 描述 |
|---|---|
search_flights | 搜索单程和往返航班。返回价格、航空公司、时长、经停次数、机型、座椅间距、CO2 排放量和价格参考。 |
search_multi_city | 搜索多航段行程(2-5 个航段)。 |
价格分析
| 工具 | 描述 |
|---|---|
get_calendar_heatmap | 通过一次 API 调用获取完整的每日价格日历(约 60 天)。一目了然地查看最便宜的日期。 |
get_price_insights | 扫描日期范围,查找最便宜的出发日期(通过多次 API 调用提高准确性)。 |
compare_cabin_classes | 比较同一路线的经济舱、高端经济舱、商务舱和头等舱价格。 |
track_price | 记录当前价格并报告趋势(下降/上涨/稳定)。数据持久保存在 SQLite 中。 |
get_price_history | 查看已追踪航线的所有价格记录。 |
list_tracked_routes | 列出所有正在追踪价格的航线及其最近的已知价格。 |
机场工具
| 工具 | 描述 |
|---|---|
lookup_airport | 按城市、名称、IATA 代码或国家/地区搜索 8,800 多个机场。 |
find_nearby_airports | 查找指定半径内的替代机场(默认:200km)。使用 Haversine 距离公式。 |
实用工具
| 工具 | 描述 |
|---|---|
get_flight_url | 生成可直接预订的 Google Flights 网址。 |
analyze_layovers | 分析多次中转航班的转机质量。报告风险等级、转机类型和机型。 |
输出示例
search_flights(包含排放量和价格参考)
Flights from SFO to NRT on 2026-06-15:
Price assessment: HIGH ($294 above typical). Range: $500 - $700, typical: $577
Flight 1: $874 | 11h 15m | 0 stop(s) | CO2: 428kg
ZG 25: SFO -> NRT (11h 15m) [aircraft: Boeing 787, seat pitch: 31 inches, CO2: 428kg]
Flight 2: $1310 | 11h 5m | 0 stop(s) | CO2: 545kg
NH 7: SFO -> NRT (11h 5m) [aircraft: Boeing 777, seat pitch: 34 inches, CO2: 545kg]
get_calendar_heatmap
Price calendar: SFO -> NRT
61 days of data
Cheapest: $384 (2026-02-12)
Most expensive: $870 (2026-04-13)
Average: $632
2026-02:
12: $384 ***
13: $384 ***
...
20: $540 ***
2026-03:
06: $609 *
...
20: $689
find_nearby_airports
Airports near JFK within 150km:
LGA - LaGuardia Airport (New York, US), 17km away
EWR - Newark Liberty International Airport (Newark, US), 33km away
HPN - Westchester County Airport (White Plains, US), 48km away
工作原理
Google Flights 没有官方 API。此服务对 Google 内部的 FlightsFrontendService 端点进行逆向工程。它提取的不只是航班信息,还包括隐藏的元数据:排放量、价格评估、每日价格日历、机型和座位详情。
可靠性
- 缓存:缓存 TTL 为 5 分钟,相同的搜索不会重复请求 Google
- 失败后重试:遇到 429/5xx 错误时,采用指数退避并加入随机抖动,并遵循
Retry-After标头 - 熔断器:连续失败 5 次后停止请求,30 秒后自动恢复
- 结构验证:Google 更改响应格式时会显示明确的错误
- TLS 缓解措施:使用带有类浏览器标头的
undici,并轮换 User-Agent,同时提供fetch回退方案
价格追踪
价格历史记录存储在 ~/.google-flights-mcp/prices.db 中。每次调用 track_price 都会记录当前最低价格,并报告与之前记录相比的趋势。
开发
npm install # Install dependencies
npm run build # Build with tsup
npm test # Run tests (85 tests)
npm run lint # ESLint with FP rules (no-let, immutable-data, no-loop-statements)
npm run typecheck # TypeScript strict type checking
npm run check # typecheck + lint + test (the full CI pipeline)
npm run dev # Build in watch mode
设计
功能完整的 TypeScript 代码库:
- 不做变更:所有类型均为
readonly,不使用let/var/.push()/for循环 - Result 单子:错误是值(
Result<T, E>),而不是异常 - 纯逻辑与 IO 分离:纯转换与网络和磁盘 IO 分开
- 组合:使用
pipe()+flatMap()链接可能失败的操作
架构详情和 Google Flights 响应格式参考,请参阅 CLAUDE.md。
限制
- 没有官方 API:使用未公开的 Google 端点,该端点随时可能发生变化。结构验证可让问题一目了然。
- 速率限制:大量使用可能会受到 Google 限流。内置的重试机制和熔断器可处理临时问题。
- 价格为估算值:价格反映查询时的情况;预订前可能会发生变化。
- 货币:由 Google 根据 IP/区域设置确定。
贡献
- Fork 此仓库
- 创建功能分支
- 进行更改
- 运行
npm run check进行验证 - 提交 PR
许可证
ISC
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。