使用说明
✈️ 航班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 <repository-url>
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协议:参见 模型上下文协议文档