mcpField
G
Google Flights

Google Flights

本地服务
github.com/andreacappelletti97地图与出行528 周前更新

关于 Google Flights

Google Flights 是面向旅行规划者的 MCP 服务,可搜索航班并分析票价、航线和机场信息。它提供价格追踪与舱位比较等 12 种工具,无需 API 密钥。

主要功能

  1. 01搜索单程、往返及多城市航班
  2. 02追踪票价并查看历史趋势
  3. 03查看日历价格与价格评估
  4. 04比较舱位并分析中转风险
  5. 05查询机场、排放和机型详情
  6. 06生成 Google Flights 预订链接

适用场景

  1. 01寻找指定日期或日期范围内的低价航班
  2. 02比较同一路线的经济舱与商务舱
  3. 03监测航线票价变化并发现降价
  4. 04评估中转衔接与附近机场选择

MCP 相关

该 MCP 服务向兼容客户端提供 12 种航班搜索、票价分析和机场查询工具。README 列出 Claude Desktop、Claude Code、Cursor 等客户端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"andreacappelletti97-google-flights": {
"command": "npx",
"args": [
"-y",
"google-flights-mcp"
]
}
}
}
启动命令npx -y google-flights-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmgoogle-flights-mcp1.0.3

工具

12

收录的工具列表 · 更新于 2 周前

参数类型必填说明
originstring是出发机场 IATA 代码(例如 JFK)
destinationstring是到达机场 IATA 代码(例如 NRT)
departureDatestring是出发日期,格式为 YYYY-MM-DD
returnDatestring否返程日期,格式为 YYYY-MM-DD(设定后将搜索往返航班)
cabinClassenum否客舱等级economy | premium_economy | business | first
adultsinteger否成人乘客人数
childreninteger否儿童乘客人数
infantsinteger否婴儿乘客人数
maxStopsinteger否最多经停次数(0=直飞,1、2)。留空表示不限。
sortByenum否按以下方式对结果排序best | price | duration | departure | arrival
maxResultsinteger否要返回的最大结果数

详细介绍

google-flights-mcp

npm version CI License: ISC

功能最丰富的 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/区域设置确定。

贡献

  1. Fork 此仓库
  2. 创建功能分支
  3. 进行更改
  4. 运行 npm run check 进行验证
  5. 提交 PR

许可证

ISC

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。