mcpField
G
Google Flights

Google Flights

本地服务
thiagolannes.com地图与出行05 天前更新

关于 Google Flights

用于搜索 Google Flights 票价和航班时刻的 MCP 服务,支持灵活日期查询和机场代码查找。默认数据源无需 API 密钥,也可选用 SerpApi 获取更多航班详情。

主要功能

  1. 01搜索票价和航班时刻
  2. 02查找最低价出行日期
  3. 03将机场名称转换为 IATA 代码
  4. 04在两种数据源间选择

适用场景

  1. 01比较行程的航班选项
  2. 02查找日期范围内的低价出行日
  3. 03将城市或机场名称转换为代码

MCP 相关

向 MCP 客户端提供航班搜索、最低价日期查询和机场搜索工具,也可通过 HTTP 为远程连接器运行。

配置

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

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

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

安装包
pypigoogle-flights-search-mcp0.1.0

工具

3

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

参数类型必填说明
adultsinteger否
originstring否
infantsinteger否
sort_byenum否price | duration
childreninteger否
currencystring否
max_stopsany否
cabin_classenum否economy | premium | business | first
destinationstring是
return_dateany否
departure_datestring是

详细介绍

google-flights-mcp

用于从 Claude 搜索 Google Flights 价格和时刻表的 MCP 服务。

同一接口(google_flights_mcp/providers/base.py)下有两种可互换的数据源:

  • fast-flights(默认)——直接抓取 Google Flights 的内部 protobuf 搜索 API。无需 API 密钥,开箱即用。
  • SerpApi——设置 SERPAPI_KEY 环境变量后自动使用。可提供航班号、中转详情和碳排放信息。

工具

  • search_flights——origin(默认值为 LIS)、destination、departure_date、可选的 return_date、乘客人数、cabin_class、currency(默认值为 EUR)、max_stops、sort_by。返回按价格排序的列表:价格、航空公司、出发/抵达时间、时长、中转次数,以及 Google Flights 链接。
  • cheapest_dates——指定日期范围内最便宜的出行日(最多 21 天),采用价格日历样式。每天执行一次搜索——详见下方“已知限制”。
  • airport_search——将城市或机场名称(“Lisbon”)转换为 IATA 代码(LIS),数据由离线 airportsdata 软件包提供。

已知限制

  • 往返行程:对于包含 return_date 的搜索,两个数据源都会返回去程航班选项,并附上预估往返总价(与最便宜的匹配返程航班配对),而不是单独定价的返程航段。stops/duration/legs 仅描述去程航班。打开结果中的 booking_link,即可在 Google Flights 上选择具体返程航班。
  • cheapest_dates:fast-flights 和 SerpApi 的 Google Flights 引擎都没有提供真正的批量价格日历接口,因此此工具会针对每个候选日期执行一次 search_flights 调用。日期范围最多为 21 天,以限制调用次数。
  • 欧盟/英国 Cookie 同意拦截页:来自这些地区的请求会先遇到 Google 的 Cookie 同意中间页,之后才会返回真实结果。fast-flights 数据源能够检测到这一情况,并在重试前自动提交“全部拒绝”(保护隐私的选项)——如果 Google 方面有变更导致此功能需要更新,请参阅 providers/fast_flights_provider.py。

安装

最快方式(需要 uv):无需克隆,可直接从 PyPI 运行。

claude mcp add google-flights -- uvx google-flights-search-mcp

对于 Claude Desktop,请使用 "command": "uvx", "args": ["google-flights-search-mcp"]。

从源代码安装:

需要 Python 3.11+ 和 uv。

git clone https://github.com/ThiagoJacobLannes/google-flights-mcp
cd google-flights-mcp
uv sync --extra dev

在 Windows 上,如果代码存放在云同步文件夹(Google Drive、OneDrive)中,请在该文件夹之外创建虚拟环境——同步客户端会在文件夹中放入 desktop.ini 标记文件,这可能导致软件包启动时崩溃:

uv venv C:\dev\google-flights-mcp-venv
uv pip install --python C:\dev\google-flights-mcp-venv -e ".[dev]"

下方的命令路径假定虚拟环境位于该位置;请根据实际位置进行调整。

添加到 Claude Desktop

将 claude_desktop_config.snippet.json 合并到 Claude Desktop 配置文件(%APPDATA%\Claude\claude_desktop_config.json)中:

{
  "mcpServers": {
    "google-flights": {
      "command": "C:\\dev\\google-flights-mcp-venv\\Scripts\\python.exe",
      "args": ["-m", "google_flights_mcp.server"]
    }
  }
}

编辑后重启 Claude Desktop。若要改用 SerpApi 而非默认抓取器,请添加 env 配置块:

{
  "mcpServers": {
    "google-flights": {
      "command": "C:\\dev\\google-flights-mcp-venv\\Scripts\\python.exe",
      "args": ["-m", "google_flights_mcp.server"],
      "env": { "SERPAPI_KEY": "your-serpapi-key" }
    }
  }
}

请前往 serpapi.com 获取密钥(提供免费套餐)。

其他环境变量:GOOGLE_FLIGHTS_DEFAULT_ORIGIN(默认值为 LIS)、GOOGLE_FLIGHTS_DEFAULT_CURRENCY(默认值为 EUR)。

通过 HTTP 运行(用于远程连接器)

C:\dev\google-flights-mcp-venv\Scripts\python.exe -m google_flights_mcp.server --http

或者设置 MCP_TRANSPORT=streamable-http。使用 MCP_HOST(默认值为 127.0.0.1)和 MCP_PORT(默认值为 8000)配置绑定地址;服务会在 http://<host>:<port>/mcp 上监听。在将其暴露到 localhost 之外之前,请先将其置于你用于其他远程连接器的反向代理/身份验证机制之后。

冒烟测试

实际网络调用(不使用模拟)——搜索约一个月后的 LIS → GRU 航班:

C:\dev\google-flights-mcp-venv\Scripts\python.exe tools\google-flights-mcp\examples\smoke_test.py

测试

C:\dev\google-flights-mcp-venv\Scripts\python.exe -m pytest tools\google-flights-mcp\tests

这些是针对数据源抽象层的单元测试(工厂选择、乘客人数验证、共享的 cheapest_dates 按日循环、机场解析)——无需网络访问。

评论

支持 Markdown

第一次接触 MCP?

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

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