航班里程查询工具

一个通过seats.aero或航空公司网站直接查询航班真实奖励可用性(里程/积分)的服务工具,适用于旅行规划者寻找最优里程兑换选项。

  • by andrew-demers
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 demersaj/flights-points-tool

使用说明

航班积分工具

查找的MCP服务器 实际奖励可用性 (积分/英里) seats.aero 或直接访问航空公司网站。将其与 谷歌航班MCP:搜索航班现金价格,然后调用此服务器查看实际奖励成本。

支持 美国AAdvantage, 美联航前程万里,以及 达美航空里程 通过seats.aero(设置API键时不需要浏览器)。

快速安装

git clone https://github.com/andrew-demers/flights-points-tool
cd flights-points-tool
./scripts/install.sh

脚本将:

  • 检查 uv 和 claude CLI先决条件
  • 提示您的座椅.aero API钥匙(可选但推荐)
  • 克隆并注册 谷歌航班MCP 如果尚未安装
  • 安装依赖项并使用Claude Code注册此MCP服务器
  • 安装 /find-flights-points 技能到您的Claude技能目录

安装后,重新启动Claude Code,两个MCP都将可用。

非交互式安装 (密钥已在env中):

SEATS_AERO_API_KEY=your-key ./scripts/install.sh

跳过浏览器抓取器安装:

./scripts/install.sh --no-scrape

工具

  • get_real_points_for_route(origin, destination, departure_date, adults?, providers?) -通过浏览器抓取器从seats.aero(美国航空、联合航空、达美航空)或航空公司网站获取实际奖励可用性。返回每个节目的积分成本,或者在没有奖励座位的情况下返回“未找到空房”。

技能: /find-flights-points

安装后,使用 /find-flights-points Claude Code的技能,可以在日期范围内自动搜索并找到最便宜的奖励航班。

/find-flights-points
> Find flights from Montreal to Paris, July 15-25

该技能并行搜索所有日期,将现金价格(Google Flights MCP)与实际奖励可用性(此MCP)相结合,并返回一个排名表:

| Date       | Cash Price | AA Miles | United Miles | Delta Miles | Best Value |
|------------|-----------|----------|--------------|-------------|------------|
| 2026-07-18 | $312      | 15,000   | 20,000       | -           | AA 15k     |
| 2026-07-22 | $289      | -        | 17,500       | 18,000      | UA 17.5k   |
| 2026-07-25 | $341      | 22,000   | 22,000       | 20,000      | DL 20k     |

数据源

seats.aero(推荐) -设置 SEATS_AERO_API_KEY 无需浏览器即可获取美国、联合航空和达美航空的奖项数据。在获取API密钥 seats.aero (需要Pro帐户)。安装脚本会自动将其连接起来。

保险说明: seats.aero的API使用缓存搜索,只覆盖其积极监控的路线,主要是高需求、高容量的路线。精简或仅连接的路由(例如,没有直达的AUS-AUA)可能不会从API返回任何结果,即使座位可用。seats.aero的实时搜索端点不适用于Pro API帐户(需要合作伙伴协议)。对于不在缓存中的路线,需要在seats.aero或航空公司网站上进行手动搜索。

seats.aero浏览器抓取器(基于会话的回退) -当seats.aero API未返回任何结果时,该工具将返回到使用保存的会话通过带标题的Playwright浏览器直接刮擦seats.aro。这涵盖了不在API缓存中的精简路由。

运行此命令一次以设置会话(打开浏览器窗口供您登录):

uv run python -m flights_points.setup_login

会话已保存到 ~/.config/flights-points/seats_aero_session.json当会话文件存在时,浏览器抓取器会在后续的MCP调用中自动启动。集 SEATS_AERO_SESSION_FILE=/custom/path.json 使用不同的路径。

注: 浏览器抓取器使用 --disable-blink-features=AutomationControlled 并隐藏 navigator.webdriver 绕过seats.aero上的基本机器人检测。不支持直接抓取AA.com、United.com和Delta.com——这些网站使用Cloudflare和行为分析,这些标志不会失败。

手动设置

如果您更喜欢自己注册MCP而不是使用安装脚本:

# Google Flights MCP
claude mcp add flights --scope user \
  -- uv --directory /path/to/flights-mcp-server run flights.py

# flights-points MCP
claude mcp add flights-points --scope user \
  -e SEATS_AERO_API_KEY=your-key \
  -- uv --directory /path/to/flights-points-tool run python -m flights_points.mcp_server

通过复制手动安装技能 skill/SKILL.md 到 ~/.claude/skills/find-flights-points/SKILL.md.

代理流示例

  1. 用户:“下周五从肯尼迪机场到洛杉矶国际机场的最便宜航班积分”
  2. 客服电话 get_cheapest_flights(origin="JFK", destination="LAX", departure_date="2026-02-13") 通过谷歌航班MCP
  3. 客服电话 get_real_points_for_route(origin="JFK", destination="LAX", departure_date="2026-02-13") 通过此MCP
  4. 代理人以现金价格和每个项目的奖励成本并列回应

发展

  • 真正的报价获取者: src/flights_points/real_quotes.py
  • 提供商抓取器: src/flights_points/providers/ (seats.aero、American、United、Delta、Chase)
  • MCP工具: src/flights_points/mcp_server.py
  • 技能定义: skill/SKILL.md
  • 安装脚本: scripts/install.sh

在本地运行服务器(stdio): python -m flights_points.mcp_server

许可证

MIT。