航班积分工具
MCP服务器,将航班价格转换为 点/英里当量 为了 Chase终极奖励, 美国AAdvantage,以及 美联航前程万里。将其与 谷歌航班MCP:从Flights MCP获取航班选项,然后调用此服务器查看每个价格值多少积分。
点路径样式:随价格更新的范围
点显示为 范围 (例如约20000–30000英里) 随着价格的变化而更新,因为像American这样的程序每美元不使用固定的积分——兑换价值因路线、日期和舱位而异。每个结果包括:
- 范围 --该价格的最低-最高点(来自该计划的估值区间)。
- 典型的 --取决于价格的典型值(非常低的票价与较高的票价略有不同)。
积分提供者和估值区间
| 提供者 | 程序 | 单位 | 分/点(最小值-典型值-最大值) |
|---|---|---|---|
| Chase | 终极奖励 | 积分 | 1.6–2.05–2.5 |
| 美国 | AAdvantage | 里程 | 1.0–1.2–1.5 |
| 美联航 | 前程万里 | 里程 | 1.0–1.2–1.5 |
使用 list_point_providers 查看完整的乐队和音符。
工具
get_real_points_for_route(origin, destination, departure_date, adults?, price?, providers?)— 查询seats.aero和/或提供商网站 为了 实际 奖励积分/里程。当 seats.aero 配置(见下文),American和United来自其Cached Search API(无浏览器)。否则或缓存未命中时,在以下情况下使用可选的浏览器抓取器(aa.com、united.com、Chase)[scrape]已安装。大通总是从它的刮刀或估值;它可能需要登录。get_points_equivalent(price, providers?)--转换a 现金价格 根据点数范围和典型值(基于估值)。价格可以是"$299"或299.get_points_for_multiple_prices(prices, providers?)--价格表也是如此(例如,从MCP航班最便宜/最好的结果)。list_point_providers()--列出程序及其最小-典型-最大估值(每点美分)。
设置
安装
cd /path/to/flights-points-tool
uv sync
# or: pip install -e .真正的查找--seats.aero(建议用于美国航空和联合航空): 无需浏览器。设置您的 seats.aero Pro API密钥,因此美国和美国的奖励里程来自他们的Cached Search API:
export SEATS_AERO_API_KEY="your-api-key"从获取API密钥 seats.aero → 设置→ API(需要专业帐户;请参阅 他们的API文件 和 使用限制).如果设置了密钥, get_real_points_for_route 美国航空和联合航空首先使用seats.aero;如果没有缓存数据或密钥丢失,则在安装时将回退到浏览器抓取器。
真正的查找——浏览器抓取器(可选): 要同时从aa.com、united.com和Chase Travel获取(或在不使用seats.aero时),请安装可选的抓取依赖项和Playwright:
uv sync --extra scrape
# or: pip install -e ".[scrape]"
playwright install chromium可选:通过env禁用单个抓取器(例如在CI中或避免使用浏览器):
FLIGHTS_POINTS_DISABLE_AA_SCRAPE=1--美国(aa.com)FLIGHTS_POINTS_DISABLE_UNITED_SCRAPE=1--联合(United.com)FLIGHTS_POINTS_DISABLE_CHASE_SCRAPE=1--Chase Travel(Chase.com/Travel;通常需要登录)
使用光标运行
- MCP项目:创建或编辑
.cursor/mcp.json在这个仓库(或使用它的项目)中:
{
"mcpServers": {
"flights-points": {
"command": "uv",
"args": [
"--directory",
"/Users/huxley-47/dev/flights-points-tool",
"run",
"python",
"-m",
"flights_points.mcp_server"
]
}
}
}替换 /Users/huxley-47/dev/flights-points-tool 以及通往此仓库的绝对路径。如果 uv 不在您的PATH中,请使用完整路径 uv (例如来自 which uv)in "command".
- 使用Google Flights MCP:将航班MCP添加到同一个中
mcp.json因此,代理既可以搜索航班,也可以获得积分:
{
"mcpServers": {
"flights": {
"command": "uv",
"args": [
"--directory",
"/path/to/flights-mcp-server",
"run",
"flights.py"
]
},
"flights-points": {
"command": "uv",
"args": [
"--directory",
"/Users/huxley-47/dev/flights-points-tool",
"run",
"python",
"-m",
"flights_points.mcp_server"
]
}
}
}- 重新启动Cursor(或重新加载MCP),使两台服务器都可用。
代理流示例
- 用户:“下周五肯尼迪机场到洛杉矶国际机场最便宜的航班,要多少积分?”
- 客服致电MCP航班:
get_cheapest_flights(origin="JFK", destination="LAX", departure_date="2026-02-13")→ 获取包含以下价格的航班列表"$299","$312", … - 实际查找: 客服电话
get_real_points_for_route(origin="JFK", destination="LAX", departure_date="2026-02-13", price=299)→ 美国和美国从 seats.aero 当SEATS_AERO_API_KEY设置,和/或在启用浏览器抓取时从aa.com/united.com/Chase获取。 或 使用get_points_equivalent(price="$299")仅供估价。 - 客服会回复航班选项和每个选项的积分。
发展
- 估值:
src/flights_points/valuations.py - 真正的报价获取者:
src/flights_points/real_quotes.py,src/flights_points/providers/(座位区:seats_aero.py;美国人:american.py,联合:united.py蔡斯:chase.py通过剧作家) - MCP工具:
src/flights_points/mcp_server.py - 在本地运行服务器(stdio):
python -m flights_points.mcp_server
注: 随着 seats.aero 你可以在没有浏览器的情况下获得American和United。当seats.aero未配置或没有数据时,使用浏览器抓取器(Playwright)。Chase仅通过其刮刀或估价,通常需要登录。如果座椅.aero API响应形状发生变化, providers/seats_aero.py 可能需要更新(请参阅 developers.sats.aero).
许可证
MIT。
