使用说明
飞行MCP服务器
一个使用Amadeus API的实时航班查询模型上下文协议服务器。此项目展示了如何构建一个与外部API集成的MCP服务器,以便直接向Claude Desktop提供航班搜索、机场信息和航空公司数据。
特点/功能
- 实时航班查询 使用Amadeus API搜索全球航班
- 机场信息 - 通过IATA代码获取详细的机场数据
- 航班状态 - 查看实时航班状态和延误情况
- 航空公司信息 - 获取全面的航空公司详情
- 智能回退 - 如果API不可用,则自动切换到模拟数据
快速入门
先决条件
- Python 3.10+
- 阿玛迪斯API凭证(免费获取于 developers.amadeus.com 翻译为中文是:“Amadeus开发者网站”)
安装
git clone https://github.com/technicalerikchan/flight-mcp-server.git
cd flight-mcp-server
pip install -r requirements.txt
配置
- 复制环境模板:
cp .env.example .env
- 将您的Amadeus API凭据添加到
.env:
AMADEUS_API_KEY=your_actual_api_key_here
AMADEUS_API_SECRET=your_actual_api_secret_here
跑步
python -m flight_mcp_server.server
Claude 桌面集成
配置文件位置
- macOS(苹果电脑操作系统):
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
添加服务器配置
{
"mcpServers": {
"flight-server": {
"command": "python",
"args": ["-m", "flight_mcp_server.server"],
"cwd": "/path/to/flight-mcp-server"
}
}
}
使用示例
重启Claude Desktop后,您可以询问:
- “搜索明天从LAX到JFK的航班”
- “查找12月25日从纽约飞往伦敦希思罗机场的商务舱航班”
- “今天AA123航班的状态如何?”
- 请告诉我关于旧金山机场的情况
可用工具
搜索航班
在机场之间搜索航班。
参数:
origin(必填):出发机场的国际航空运输协会(IATA)代码destination(必填):目的地机场的国际航空运输协会(IATA)代码departure_date(必填):日期,格式为YYYY-MM-DDreturn_date(可选):往返航班的返回日期adults(可选):乘客人数(1-9,默认:1)travel_class(可选):“经济舱”,“经济特等舱”,“商务舱”,“头等舱”
获取机场信息
通过IATA代码获取详细的机场信息。
参数:
airport_code(必填):3个字母的国际航空运输协会(IATA)机场代码
获取航班状态
查看实时航班状态。
参数:
flight_number(必填):航班号(例如,“AA123”)date(必填):航班日期,格式为YYYY-MM-DD
获取航空公司信息
获取航空公司信息。
参数:
airline_code(必填):2个字母的国际航空运输协会(IATA)航空公司代码
项目结构
flight-mcp-server/
├── flight_mcp_server/
│ ├── __init__.py # Package initialization
│ ├── server.py # Main MCP server
│ ├── amadeus_client.py # Amadeus API integration
│ └── error_handler.py # Error handling & validation
├── .env.example # Environment template
├── pyproject.toml # Project configuration
├── requirements.txt # Dependencies
└── README.md # This file
它是如何工作的
- MCP协议使用模型上下文协议与Claude桌面进行通信
- API集成连接到Amadeus API以获取实时航班数据
- 错误处理全面验证与优雅降级
- 工具系统将飞行操作作为可调用的工具公开
API集成
这个服务器与Amadeus API集成:
- 测试环境每秒10次请求,每月2000次(免费)
- 生产环境付费计划享有更高的上限
- 覆盖范围来自400多家航空公司的全球飞行数据
错误处理
服务器处理各种场景:
- 无效的机场代码和日期
- API认证问题
- 网络连接问题
- 当API不可用时自动回退到模拟数据
故障排除
“客户端凭据无效”
- 验证API凭证
.env文件 - 检查凭据值中的多余空格
“未找到航班”
- 验证机场代码是否为有效的国际航空运输协会(IATA)代码
- 确保出发日期在将来
连接问题
- 服务器自动回退到模拟数据
- 检查与 api.amadeus.com 的网络连接
技术栈
- Python 3.10+ - 运行时环境
- MCP SDK(MCP软件开发工具包) - 模型上下文协议实现
- Amadeus API - 飞行数据提供商
- Asyncio(异步IO) - 异步编程支持
许可证
MIT 许可证 - 详见 许可证 详情请见文件。
埃里克·陈的科技分享项目