航班搜索服务

一个基于Aviasales Flight Search API的航班搜索服务器,提供航班搜索、结果过滤、详细航班信息获取和预订链接生成功能。

  • by maratsarbasov
  • Python
  • 混合部署
  • 15 星标
  • 更新于
在 GitHub 查看 maratsarbasov/flights-mcp

使用说明

✈️ 航班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包管理器

设置

  1. 克隆存储库:
git clone <repository-url>
cd flights-mcp
  1. 设置环境变量(请参见 环境变量 部分)

  2. 运行服务器

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 为特定航班选项生成预订链接。

典型使用模式

  1. 搜索航班 使用 search_flights() -多次致电以获得灵活的日期
  2. 筛选和浏览选项 使用 get_flight_options() -轻量级工具,使用不同的过滤器和排序选项多次调用
  3. 获取详细信息 使用 get_flight_option_details() -供用户选择
  4. 生成预订链接 使用 request_booking_link() -仅当用户确认预订意图时

支持

关于以下问题: