mcpField
F
Find Flights MCP Server

Find Flights MCP Server

本地服务
github.com/ravinahp地图与出行23172 周前更新

关于 Find Flights MCP Server

Find Flights MCP Server 是一个通过 Duffel API 搜索航班信息的 MCP 服务,适合需要规划复杂行程的用户。它支持单程、往返和多城市查询,并可在多个日期之间批量搜索价格。该服务仅用于搜索,不执行预订或扣款。

主要功能

  1. 01单程、往返和多城市航班搜索
  2. 02多日期范围搜索以比较价格(速度较慢)
  3. 03可设置舱位、乘客数、起飞与到达时间
  4. 04航班报价详情查询
  5. 05自动处理中转连接

适用场景

  1. 01比较同一航线在多个日期的票价
  2. 02规划包含多个城市的复杂行程
  3. 03在对话中保留此前的航班搜索记录进行比较

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 search_flights、get_offer_details 和 search_multi_city 等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"flights": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
启动命令npx -y @smithery/cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@smithery/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

查找航班 MCP 服务

使用 Duffel API 搜索和获取航班信息的 MCP 服务。

工作原理

航班

视频演示

https://github.com/user-attachments/assets/c111aa4c-9559-4d74-a2f6-60e322c273d4

为什么它很有用

Google Flights 等工具非常适合简单行程,而处理复杂旅行计划时,这款工具更能发挥优势。原因如下:

  • 上下文记忆:Claude 会记住你在聊天中之前搜索过的所有航班,因此你不必一直打开多个标签页来比较价格
  • 灵活的日期搜索:轻松搜索多个日期,找到最优惠的价格,无需手动逐日查询
  • 复杂行程:非常适合多城市旅行、经停一次的航班,或需要比较不同路线方案的情况,只需开口询问!
  • 自然对话:只需描述你的需求,不必再点击日历界面,也不必费心设置搜索参数,甚至无需解析城市名称、日期和时间。

你可以把它想象成聊天中的旅行顾问:它会记住你讨论过的所有内容,还能立即搜索不同日期和路线。

功能

  • 搜索多个目的地之间的航班
  • 支持单程、往返和多城市航班查询
  • 提供详细的航班报价信息
  • 支持灵活的搜索参数(出发时间、舱位等级、乘客人数)
  • 自动处理航班中转
  • 搜索多个日期内的航班,为你的行程找到最合适的航班(速度较慢)

先决条件

  • Python 3.x
  • Duffel API Live Key

获取 Duffel API 密钥

Duffel 要求进行账户验证并设置付款信息,但此 MCP 服务只会使用 API 搜索航班,不会实际预订或向你的账户收费。

建议先使用 duffel_test,体验此工具的强大功能。如果你觉得好用,可以按照下方的步骤完成验证,以使用实时密钥。

先使用测试模式(推荐)

你可以先使用测试 API 密钥(duffel_test),通过模拟数据试用功能,无需完成完整的验证流程:

  1. 访问 Duffel 注册页面
  2. 创建账户(公司名称可以选择“Personal Use”)
  3. 前往 More > Developer,找到测试 API 密钥(系统已提供一个)
获取实时 API 密钥

要访问真实航班数据,请按照以下步骤操作:

  1. 在 Duffel 控制面板的左上角关闭“Test Mode”
  2. 验证流程包含多个步骤——你需要反复关闭测试模式:
    • 第一次关闭:验证电子邮件地址
    • 再次关闭:填写公司信息(选择 Personal Use 即可)
    • 再次关闭:添加付款信息(Duffel 要求提供此信息,但此 MCP 服务不会收费)
    • 再次关闭:完成其余验证步骤
    • 最后关闭:点击“Agree and Submit”后即可进入实时模式
  3. 完成所有验证后,前往 More > Developer > Create Live Token
  4. 复制实时 API 密钥

💡 提示:每完成一个验证步骤,都需要再次关闭测试模式,才能继续下一步。请持续关闭测试模式,直到完成所有要求。

⚠️ 重要说明:

  • 你的付款信息由 Duffel 直接处理,MCP 服务不会访问或存储这些信息
  • 此 MCP 服务为只读服务——只能搜索航班,不能预订航班
  • 此集成不会向你的付款方式收取任何费用
  • 所有敏感信息(包括 API 密钥)都保留在你的本地设备上
  • 你可以先使用测试 API 密钥(duffel_test)来评估功能
  • 验证流程可能需要一些时间——这是 Duffel 的标准要求
安全说明

此 MCP 服务仅使用 Duffel 的搜索端点,无法预订或收费。您的付款信息仅用于 Duffel 的验证流程,MCP 服务绝不会访问或分享这些信息。

API 使用限制说明
  • 查看 Duffel 当前的定价和使用限制
  • 根据您的需求提供不同的套餐
  • 建议在其网站上查看当前定价

安装

通过 Smithery 安装

要通过 Smithery 自动为 Claude Desktop 安装 Find Flights:

npx -y @smithery/cli install @ravinahp/travel-mcp --client claude
手动安装

克隆代码库:

git clone https://github.com/ravinahp/flights-mcp
cd flights-mcp

使用 uv 安装依赖项:

uv sync

注意:由于此项目使用 pyproject.toml 管理依赖项,因此我们使用 uv 而不是 pip。

配置为 MCP 服务

要将此工具添加为 MCP 服务,请修改 Claude 桌面应用的配置文件。

配置文件位置:

  • MacOS:~/Library/Application\ Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%/Claude/claude_desktop_config.json

将以下配置添加到 JSON 文件中:

{
    "flights-mcp": {
        "command": "uv",
        "args": [
            "--directory",
            "/Users/YOUR_USERNAME/Code/flights-mcp",
            "run",
            "flights-mcp"
        ],
        "env": {
            "DUFFEL_API_KEY_LIVE": "your_duffel_live_api_key_here"
        }
    }
}

⚠️ 重要:

  • 将 YOUR_USERNAME 替换为您实际的系统用户名
  • 将 your_duffel_live_api_key_here 替换为您实际的 Duffel Live API 密钥
  • 确保目录路径与您的本地安装位置一致

部署

构建

准备软件包:

# Sync dependencies and update lockfile
uv sync

# Build package
uv build

这将在 dist/ 目录中创建发行包。

调试

为获得最佳调试体验,请使用 MCP Inspector:

npx @modelcontextprotocol/inspector uv --directory /path/to/find-flights-mcp run flights-mcp

Inspector 提供:

  • 实时请求/响应监控
  • 输入/输出验证
  • 错误跟踪
  • 性能指标

可用工具

1. 搜索航班
@mcp.tool()
async def search_flights(params: FlightSearch) -> str:
    """Search for flights based on parameters."""

支持三种航班类型:

  • 单程航班
  • 往返航班
  • 多城市航班

参数包括:

  • type:航班类型('one_way'、'round_trip'、'multi_city')
  • origin:出发机场代码
  • destination:目的地机场代码
  • departure_date:出发日期(YYYY-MM-DD)
  • 可选参数:
    • return_date:往返航班的返程日期
    • adults:成人乘客人数
    • cabin_class:首选舱位等级
    • departure_time:指定的出发时间范围
    • arrival_time:指定的抵达时间范围
    • max_connections:最多中转次数
2. 获取报价详情
@mcp.tool()
async def get_offer_details(params: OfferDetails) -> str:
    """Get detailed information about a specific flight offer."""

使用唯一 ID 获取特定航班报价的详细信息。

3. 搜索多城市航班
@mcp.tool(name="search_multi_city")
async def search_multi_city(params: MultiCityRequest) -> str:
    """Search for multi-city flights."""

用于搜索复杂多城市航班行程的专用工具。

参数包括:

  • segments:航班航段列表
  • adults:成人乘客人数
  • cabin_class:首选舱位等级
  • max_connections:最多中转次数

使用场景

一些示例(也欢迎您亲自尝试!)

您可以使用这些工具搜索各种复杂程度的航班:

  • “查找 1 月 7 日从 SFO 飞往 NYC、适合 2 位成人乘坐商务舱的单程航班”
  • “搜索从 LAX 飞往伦敦的往返航班,1 月 8 日出发,1 月 15 日返程”
  • “规划多城市行程:1 月 7 日从纽约前往巴黎,1 月 10 日前往罗马,1 月 15 日返回纽约”
  • “1 月 7 日至 1 月 15 日期间,从 SFO 飞往 LAX、适合 2 位成人乘坐经济舱的最便宜航班是什么?”
  • 您甚至可以搜索多天内的航班,为行程找到最佳选择。目前建议以这种方式仅搜索单程或往返航班。示例:“查找 1 月 7 日至 1 月 10 日期间,从 SFO 飞往 LAX、适合 2 位成人乘坐经济舱的最便宜航班”

响应格式

工具会返回 JSON 格式的响应,其中包含:

  • 航班报价详情
  • 价格信息
  • 航段(航线)详情
  • 承运航空公司信息
  • 中转详情

错误处理

此服务包含完善的错误处理,涵盖:

  • API 请求失败
  • 机场代码无效
  • API 密钥缺失或无效
  • 网络超时
  • 搜索参数无效

贡献

[如适用,请添加贡献指南]

许可证

本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。

性能说明

  • 单程/往返航班搜索最多返回 50 个报价
  • 多城市搜索最多返回 10 个报价
  • 根据搜索类型,供应商超时时间设置为 15–30 秒
客舱等级

可用的客舱等级:

  • economy:标准经济舱
  • premium_economy:超级经济舱
  • business:商务舱
  • first:头等舱

包含客舱等级的请求示例:

{
  "params": {
    "type": "one_way",
    "adults": 1,
    "origin": "SFO",
    "destination": "LAX",
    "departure_date": "2025-01-12",
    "cabin_class": "business"  // Specify desired cabin class
  }
}

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。