飞行探测器MCP
生产级MCP服务器,使Claude能够直接从您的对话中搜索和比较多个提供商的航班。
特性
- 多提供商搜索 -汇总来自Skyscanner、Google Flights和Kiwi.com的结果
- 智能缓存 -使用可配置的TTL缓存减少API调用
- 并行查询 -通过重复数据消除同时搜索多个提供商
- 灵活过滤 -按价格、站点、航空公司、客舱等级筛选
- 结果分析 -获取最便宜、最快和最划算的航班建议
安装
先决条件
- Python 3.11+
- Claude Desktop或任何兼容MCP的客户端
- 至少一个航班API密钥(Skyscanner、Google Flights或Kiwi)
设置
- 克隆存储库:
git clone https://github.com/yourusername/FlightFinderMCP.git
cd FlightFinderMCP- 安装依赖项:
pip install -e .- 配置环境变量:
cp .env.example .env
# Edit .env and add your API key(s)- 添加到Claude桌面配置(
claude_desktop_config.json):
{
"mcpServers": {
"flight-finder": {
"command": "flight-finder-mcp",
"env": {
"FLIGHT_FINDER_SKYSCANNER_API_KEY": "your_key_here"
}
}
}
}用法
配置后,您可以让Claude自然搜索航班:
Claude将使用MCP工具:
- 搜索多个航班提供商
- 比较价格和航班时间
- 根据您的喜好进行筛选(直达、客舱等级等)
- 推荐最佳选项
对话示例
可用工具
服务器公开了三个MCP工具:
search_flights-搜索机场之间的航班get_cache_stats-查看缓存性能指标clear_cache-清除缓存的搜索结果
配置
关键环境变量:
| 变量 | 描述 | 默认值 |
|---|---|---|
FLIGHT_FINDER_SKYSCANNER_API_KEY | Skyscanner API密钥 | - |
FLIGHT_FINDER_GOOGLE_FLIGHTS_API_KEY | 谷歌航班API密钥 | - |
FLIGHT_FINDER_KIWI_API_KEY | Kiwi.com API密钥 | - |
FLIGHT_FINDER_CACHE_TTL_SECONDS | 缓存持续时间 | 300 |
FLIGHT_FINDER_MAX_SEARCH_RESULTS | 每次搜索的结果限制 | 50 |
FLIGHT_FINDER_LOG_LEVEL | 日志记录级别 | 信息 |
看 .env.example 所有可用选项。
建筑
使用干净的架构原则构建:
- 域层 -航班实体、搜索条件、值对象
- 应用层 -搜索、筛选、推荐用例
- 基础设施层 -API客户端、缓存、速率限制
- 表示层 -MCP服务器处理程序和模式
使用Result monad模式进行错误处理,使用Pydantic进行验证。
发展
运行测试
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# With coverage
pytest --cov=src/flight_finder代码质量
# Format code
black src tests
isort src tests
# Type checking
mypy src
# Linting
ruff check src tests许可证
麻省理工学院
贡献
欢迎投稿!请打开问题或PR。
