MCP-Amadeus 是一个由社区开发的 模型上下文协议(MCP) 服务器,它与 Amadeus 航班搜索 API 集成,通过自然语言界面提供航班搜索功能。适用于与 MCP 兼容的客户端(例如,Claude Desktop)。
该项目使用户能够使用大型语言模型(LLMs)和 Amadeus API 的力量,轻松地根据特定日期在两个地点之间搜索航班选项。
此项目使用官方的 amadeus-python SDK
免责声明: 这是一个开源项目,不隶属于或得到 Amadeus IT Group 的支持。 Amadeus® 是 Amadeus IT Group 的注册商标。
检索两个地点之间的航班选项,针对指定的日期。
"我正在寻找6月15日从纽约到伦敦的直飞航班,任何航空公司,1位成人。"
→ ✈️ 返回可用的航班选项,包括起飞时间、到达时间、航空公司和价格等详细信息。
安装并连接到兼容 MCP 的客户端(如 Claude Desktop)后,此服务器会暴露工具,您的AI助手可以使用这些工具来获取航班数据。
要通过 Smithery 自动为 Claude Desktop 安装 Amadeus MCP Server:
npx -y @smithery/cli install @donghyun-chae/mcp-amadeus --client claude
git clone https://github.com/donghyun-chae/mcp-amadeus.git
cd mcp-amadeus-flight-offers
# 安装依赖项(使用 uv 或 pip)
uv sync
cp .env.example .env
然后编辑 .env 并添加您的 API 凭证:
AMADEUS_CLIENT_ID=your_client_id
AMADEUS_CLIENT_SECRET=your_client_secret
在 https://developers.amadeus.com/ 注册并创建一个应用以获得您的 Client ID 和 Client Secret。
在您的 MCP 客户端(例如,桌面版 Claude)中注册此服务器。
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"amadeus": {
"command": "/ABSOLUTE/PATH/TO/PARENT/FOLDER/uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/src/",
"run",
"--env-file",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/.env",
"server.py"
]
}
}
}
将
/ABSOLUTE/PATH/TO/PARENT/FOLDER/替换为您项目的实际路径。
我的情况:
{
"mcpServers": {
"amadeus": {
"command": "/Users/asena/.local/bin/uv",
"args": [
"--directory",
"/Users/asena/mcp-amadeus/src/",
"run",
"--env-file",
"/Users/asena/mcp-amadeus/.env",
"server.py"
]
}
}
}
安装后,以下工具将暴露给 MCP 客户端:
get_flight_offers从 Amadeus 航班搜索 API 中检索航班报价。
请求:
{
"action": "tool",
"name": "get_flight_offers",
"params": {
"origin": "JFK",
"destination": "LHR",
"departure_date": "2025-06-15"
}
}
参数:
| 名称 | 类型 | 是否必需 | 描述 | 示例 |
|---|---|---|---|---|
| origin | 字符串 | 是 | 出发城市/机场的 IATA 代码 | JFK |
| destination | 字符串 | 是 | 目的地城市/机场的 IATA 代码 | LHR |
| departure_date | 字符串 | 是 | 出发日期(YYYY-MM-DD) | 2_2025-06-15 |
| return_date | 字符串 | 否 | 回程日期(YYYY-MM-DD)。如果省略则为单程 | 2025-06-20 |
| adults | 整数 | 是 | 成人数量(1-9)。默认值:1 | 2 |
| children | 整数 | 否 | 儿童数量(2-11)。最大总数:9 | 1 |
| infants | 整数 | 否 | 婴儿数量(≤2)。最大值:成人数 | 1 |
| travel_class | 字符串 | 否 | 舱位等级:ECONOMY, BUSINESS 等 | ECONOMY |
| non_stop | 布尔值 | 否 | 如果为真,则仅显示直飞航班。默认值:false | true |
| currency_code | 字符串 | 否 | ISO 4217 标准下的货币代码(例如,USD) | EUR |
| max_price | 整数 | 否 | 每位旅客的最大价格 | 500 |
| max | 整数 | 否 | 最大报价数量。默认值:250 | 10 |
输出: 返回 Amadeus 提供的航班报价,包含航空公司、时间、时长和定价详情的 JSON 格式。
MIT 许可证 © 2025 donghyun-chae