航班搜索服务

一个通过SerpAPI封装Google Flights API的MCP服务器,用于搜索和分析航班数据。

  • by arush-mehrotra
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 arush-mehrotra/google_flights_mcp

使用说明

Google Flights MCP 服务器

一个通过SerpAPI封装Google Flights API的MCP(模型上下文协议)服务器,使Claude Code能够搜索和分析航班数据。

特点/功能

  • 主要飞行搜索搜索往返、单程或多城市航班
  • 回程航班查询使用出发令牌获取返回/下一航段选项
  • 预订选项使用预订令牌获取可预订的供应商及其价格

先决条件

安装

  1. 克隆此存储库:
git clone <repository-url>
cd google_flights_mcp
  1. 安装依赖项:
npm install
  1. 创造 .env 来自示例的文件:
cp .env.example .env
  1. 将您的SerpAPI密钥添加到 .env:
SERPAPI_API_KEY=your_actual_api_key_here
  1. 构建TypeScript项目:
npm run build

与Claude桌面版的使用

将此服务器添加到您的Claude Desktop配置文件中:

macOS

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "google-flights": {
      "command": "node",
      "args": ["/absolute/path/to/google_flights_mcp/build/index.js"],
      "env": {
        "SERPAPI_API_KEY": "your_api_key_here"
      }
    }
  }
}

Windows

编辑 %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "google-flights": {
      "command": "node",
      "args": ["C:\\absolute\\path\\to\\google_flights_mcp\\build\\index.js"],
      "env": {
        "SERPAPI_API_KEY": "your_api_key_here"
      }
    }
  }
}

Linux

编辑 ~/.config/Claude/claude_desktop_config.json (格式与macOS相同)

可用工具

1. 搜索谷歌航班

使用广泛的筛选选项进行初步的航班搜索。

必需参数:

  • departure_id (字符串):出发机场的国际航空运输协会(IATA)代码(例如,“SFO”)
  • arrival_id (字符串):到达机场的国际航空运输协会(IATA)代码(例如,“JFK”)
  • outbound_date (字符串):出发日期,格式为YYYY-MM-DD

常用可选参数:

  • return_date (字符串):返回日期(往返行程必填)
  • type (1|2|3): 旅行类型 - 1=往返程,2=单程,3=多城市
  • travel_class (1|2|3|4): 1=经济舱,2=高级经济舱,3=商务舱,4=头等舱
  • adults (数字):成人乘客数量(默认:1)
  • children (数字):儿童乘客数量
  • stops (0|1|2|3): 0=任意,1=直飞,2=≤1次中转,3=≤2次中转
  • sort_by (1|2|3|4|5|6): 1=顶部,2=价格,3=起飞时间,4=到达时间,5=时长,6=排放量
  • max_price (数字):最高价格过滤器
  • include_airlines (字符串):以逗号分隔的航空公司代码(例如,“UA,AA”)
  • exclude_airlines (字符串):以逗号分隔的要排除的航空公司代码
  • bags (数字):随身行李件数
  • currency (字符串):货币代码(例如,“USD”)
  • gl (字符串):国家代码(例如,“us”)
  • hl (字符串):语言代码(例如,“en”)
  • deep_search (boolean): 启用以获得浏览器一致性结果(速度较慢)

示例:

{
  "departure_id": "SFO",
  "arrival_id": "JFK",
  "outbound_date": "2025-12-15",
  "return_date": "2025-12-22",
  "type": 1,
  "travel_class": 1,
  "adults": 1,
  "stops": 1,
  "sort_by": 2,
  "currency": "USD",
  "gl": "us"
}

2. 获取返程航班

使用之前搜索结果中的出发令牌来获取返程或下一航段的航班选项。

参数:

  • departure_token (字符串,必填):上一次搜索的令牌
  • no_cache (布尔值,可选):绕过缓存

3. 获取预订选项

获取选定航班的可预订服务提供商及价格。

参数:

  • booking_token (字符串,必填):所选航班的令牌
  • no_cache (布尔型,可选):绕过缓存

响应格式

所有工具都从SerpAPI返回结构化的JSON数据,包括:

  • best_flights一系列顶级推荐航班
  • other_flights一系列额外的飞行选择
  • price_insights价格趋势和典型范围
  • airports关于出发/到达机场的元数据
  • search_metadata请求状态和时间信息

每次飞行包括:

  • flights航班详情(出发/到达时间、航空公司、航班号等)
  • layovers中转信息
  • total_duration总行程时长(分钟)
  • carbon_emissions碳足迹数据
  • price以选定货币显示的价格
  • departure_token用于查询回程航班
  • booking_token用于预订选项

发展

构建

npm run build

监视模式(更改时重建)

npm run watch

直接运行

npm run dev

错误处理

服务器处理各种错误场景:

  • 缺少API密钥
  • 无效参数
  • 来自SerpAPI的HTTP错误
  • 响应中的API级别错误

错误会附带描述性消息返回,以协助调试。

Claude的示例查询

一旦配置好,您就可以向Claude询问诸如:

  • 帮我翻译一下原文内容:帮我找一下12月15日至22日从旧金山到纽约的航班
  • “搜索1月5日从洛杉矶(LAX)飞往东京的单程商务舱航班”
  • “给我看看下个月从芝加哥到迈阿密500美元以下的直飞航班”
  • “三月份从波士顿到伦敦的最便宜往返机票是多少?”

许可证

麻省理工学院(MIT)

链接