关于 Find Flights MCP Server
Find Flights MCP Server 是一个通过 Duffel API 搜索航班信息的 MCP 服务,适合需要规划复杂行程的用户。它支持单程、往返和多城市查询,并可在多个日期之间批量搜索价格。该服务仅用于搜索,不执行预订或扣款。
主要功能
- 01单程、往返和多城市航班搜索
- 02多日期范围搜索以比较价格(速度较慢)
- 03可设置舱位、乘客数、起飞与到达时间
- 04航班报价详情查询
- 05自动处理中转连接
适用场景
- 01比较同一航线在多个日期的票价
- 02规划包含多个城市的复杂行程
- 03在对话中保留此前的航班搜索记录进行比较
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 search_flights、get_offer_details 和 search_multi_city 等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
查找航班 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),通过模拟数据试用功能,无需完成完整的验证流程:
- 访问 Duffel 注册页面
- 创建账户(公司名称可以选择“Personal Use”)
- 前往 More > Developer,找到测试 API 密钥(系统已提供一个)
获取实时 API 密钥
要访问真实航班数据,请按照以下步骤操作:
- 在 Duffel 控制面板的左上角关闭“Test Mode”
- 验证流程包含多个步骤——你需要反复关闭测试模式:
- 第一次关闭:验证电子邮件地址
- 再次关闭:填写公司信息(选择 Personal Use 即可)
- 再次关闭:添加付款信息(Duffel 要求提供此信息,但此 MCP 服务不会收费)
- 再次关闭:完成其余验证步骤
- 最后关闭:点击“Agree and Submit”后即可进入实时模式
- 完成所有验证后,前往 More > Developer > Create Live Token
- 复制实时 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
}
}
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。