✈️ 航班MCP服务器
一种模型上下文协议(MCP)服务器,使用Aviasales航班搜索API提供航班搜索功能。此服务器允许您搜索航班、过滤结果、获取详细的航班信息并生成预订链接。
https://github.com/user-attachments/assets/87d79d54-c4ab-4938-9792-18572315f1ba
如何使用
您可以使用 远程MCP服务器 或者部署您自己的实例:
- 远程MCP\
公共实例可在以下网址获得:\ https://findflights.me/sse\ 此服务器使用 SSE 传输协议,无需设置即可使用。
> ⚠️ 重要提示: 目前,并非所有LLM客户端都支持远程MCP连接。例如,Claude.ai仅在以下情况下支持远程MCP集成 Pro+计划.
- 自托管部署\
如果您更喜欢运行自己的服务器,请按照 安装 部分。
> 备注:若要部署您自己的服务器,您必须获得Aviasales API密钥和标记ID。
特性
- 航班搜索:搜索单程、往返和多城市航班
- 高级过滤:按价格、持续时间、航空公司、出发/到达时间和停靠次数过滤结果
- 多种排序选项:按价格、出发时间、到达时间或持续时间排序
- 航班详细信息:获取全面的航班详细信息,包括行李限额和航空公司信息
- 预订链接:为选定航班生成预订链接
- 本地存储:执行的搜索存储在本地,因此LLM可以无需等待即可访问过去的搜索
- 多种MCP传输选项:支持stdio、HTTP和SSE传输
安装
先决条件
- Aviasales API密钥
- Python 3.12或更高版本
- UV包管理器
设置
- 克隆存储库:
git clone
cd flights-mcp- 设置环境变量(请参见 环境变量 部分)
- 运行服务器
uv run src/flights-mcp/main.py服务器绑定到0.0.0.0,使其可以在主机的所有网络接口上访问。
环境变量
需要以下环境变量:
FLIGHTS_AVIASALES_API_TOKEN*(必填)*:您的Aviasales API代币
FLIGHTS_AVIASALES_MARKER*(必填)*:您的Aviasales标记ID
FLIGHTS_TRANSPORT*(可选)*:要使用的传输协议
- 选项: stdio (默认), streamable_http, sse
FLIGHTS_HTTP_PORT*(可选)*:HTTP/SSE传输端口
- 仅在以下情况下使用 FLIGHTS_TRANSPORT 是 streamable_http 或 sse - 违约: 4200
FLIGHTS_HTTP_PATH*(可选)*:终结点的URI路径
- 仅在以下情况下使用 FLIGHTS_TRANSPORT 是 streamable_http 或 sse - 违约: /mcp
MCP工具
服务器提供以下MCP工具:
| 工具 | 说明 |
|---|---|
search_flights | 使用Aviasales航班搜索API搜索航班。返回搜索描述 search_id 以及已发现选项的总结。 |
get_flight_options | 从之前的搜索中检索、筛选和排序航班选项。返回已筛选航班选项的分页列表。 |
get_flight_option_details | 返回详细的航班信息,包括航段、价格、行李限额和代理条款。 |
request_booking_link | 为特定航班选项生成预订链接。 |
典型使用模式
- 搜索航班 使用
search_flights()-多次致电以获得灵活的日期 - 筛选和浏览选项 使用
get_flight_options()-轻量级工具,使用不同的过滤器和排序选项多次调用 - 获取详细信息 使用
get_flight_option_details()-供用户选择 - 生成预订链接 使用
request_booking_link()-仅当用户确认预订意图时
支持
关于以下问题:
- MCP服务器:在此存储库中打开一个问题
- MCP协议:参见 模型上下文协议文档
