Find Flights MCP Server
使用 Duffel API 可以搜索和检索详细的航班信息,支持各种航班类型和灵活的搜索参数,从而实现高效的旅行计划。
README
查找航班 MCP 服务器 
MCP 服务器,用于使用 Duffel API 搜索和检索航班信息。
工作原理
视频演示
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 来了解此工具的强大功能。如果您最终喜欢它,您可以按照以下验证过程使用 live key。
首先使用测试模式(推荐)
您可以从测试 API 密钥 (duffel_test) 开始,以使用模拟数据试用该功能,然后再进行完整的验证过程:
- 访问 Duffel 的注册页面
- 创建一个帐户(您可以为公司名称选择“个人使用”)
- 导航到更多 > 开发者以找到您的测试 API 密钥(已提供一个)
获取 Live API 密钥
要访问真实的航班数据,请按照以下步骤操作:
- 在 Duffel 仪表板中,关闭左上角的“测试模式”
- 验证过程需要多个步骤 - 您需要反复关闭测试模式:
- 首次关闭:验证您的电子邮件地址
- 再次关闭:填写公司信息(个人使用即可)
- 再次关闭:添加付款信息(Duffel 要求,但此 MCP 服务器不会收取任何费用)
- 再次关闭:完成任何剩余的验证步骤
- 最后关闭:点击“同意并提交”后访问 live 模式
- 完全验证后,转到更多 > 开发者 > 创建 Live Token
- 复制您的 live 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
注意:我们使用 uv 而不是 pip,因为该项目使用 pyproject.toml 进行依赖项管理。
配置为 MCP 服务器
要将此工具添加为 MCP 服务器,请修改您的 Claude desktop 配置文件。
配置文件位置:
- 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 密钥 - 确保目录路径与您的本地安装匹配
部署
构建
准备软件包:
# 同步依赖项并更新 lockfile
uv sync
# 构建软件包
uv build
这将在 dist/ 目录中创建发行版。
调试
为了获得最佳调试体验,请使用 MCP Inspector:
npx @modelcontextprotocol/inspector uv --directory /path/to/find-flights-mcp run find-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 名成人"
- "搜索 1 月 8 日从 LAX 出发,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" // 指定所需的舱位等级
}
}
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。