使用说明
项目简介
Amadeus MCP Server 是一个社区开发的 MCP (Model Context Protocol) 服务器,它集成了 Amadeus Flight Offers Search API,旨在通过自然语言界面提供航班搜索功能。此服务器专为与 MCP 兼容的客户端(如 Claude Desktop)配合使用而构建,使得用户能够利用大型语言模型 (LLM) 的能力,轻松搜索指定日期和地点之间的航班选项。
主要功能点
- 航班搜索: 通过 'get_flight_offers' 工具,用户可以查询指定出发地、目的地和日期的航班信息。
- Amadeus API 集成: 利用 Amadeus Flight Offers Search API 获取实时的航班数据。
- MCP 协议支持: 遵循 MCP 协议标准,可以与任何兼容 MCP 协议的客户端进行通信。
- 工具注册与调用: 向 MCP 客户端声明 'get_flight_offers' 工具,并处理客户端的工具调用请求。
安装步骤
-
克隆仓库:
git clone https://github.com/donghyun-chae/mcp-amadeus.git cd mcp-amadeus -
安装依赖: 建议使用 'uv' 或 'pip' 进行依赖管理。
uv sync # 或 pip install -r requirements.txt -
配置 API 密钥: 复制 '.env.example' 文件并重命名为 '.env',然后编辑 '.env' 文件,填入你的 Amadeus API 凭据。
cp .env.example .env编辑 '.env' 文件,替换 'your_client_id' 和 'your_client_secret' 为你自己的 API 密钥。
AMADEUS_CLIENT_ID=your_client_id AMADEUS_CLIENT_SECRET=your_client_secret你需要在 Amadeus开发者网站 上注册并创建一个应用来获取 'Client ID' 和 'Client Secret'。
服务器配置
要将此 MCP 服务器连接到 MCP 客户端(例如 Claude for Desktop),你需要配置客户端的 MCP 服务器设置。以 Claude for Desktop 为例,你需要编辑 '~/Library/Application Support/Claude/claude_desktop_config.json' 文件(macOS)。
在 'mcpServers' 字段中添加一个新的服务器配置,配置信息如下:
{ "mcpServers": { "amadeus": { // 服务器名称,可以自定义 "command": "/ABSOLUTE/PATH/TO/PARENT/FOLDER/uv", // uv 命令的绝对路径 (如果使用 pip,则为 python 或 python3) "args": [ "--directory", "/ABSOLUTE/PATH/TO/PARENT/FOLDER/src/", // src 目录的绝对路径 "run", // 使用 uv run 运行 (如果使用 pip,则为 -m ) "--env-file", "/ABSOLUTE/PATH/TO/PARENT/FOLDER/.env", // .env 文件的绝对路径 "server.py" // 服务器启动脚本 ] } } }
请务必将 '/ABSOLUTE/PATH/TO/PARENT/FOLDER/' 替换为你的项目父文件夹的实际绝对路径。
例如,如果你的项目位于 '/Users/yourusername/mcp-amadeus/',并且你使用 'uv',配置可能如下所示:
{ "mcpServers": { "amadeus": { "command": "/Users/yourusername/.local/bin/uv", "args": [ "--directory", "/Users/yourusername/mcp-amadeus/src/", "run", "--env-file", "/Users/yourusername/mcp-amadeus/.env", "server.py" ] } } }
注意:
- 'command' 和 'args' 字段指定了启动 MCP 服务器的命令和参数。
- '--directory' 参数指定了服务器代码所在的目录。
- '--env-file' 参数指定了包含 API 密钥的环境变量文件。
- 'server.py' 是服务器的入口脚本。
- 请根据你实际的 Python 环境和项目路径进行调整。
基本使用方法
配置完成后,当你在 MCP 客户端(如 Claude Desktop)中与 LLM 对话时,可以使用自然语言指令来触发航班搜索。例如,你可以说:
"帮我查一下从纽约到伦敦,6月15号的直飞航班"
LLM 客户端会识别到这是一个航班查询请求,并调用 'get_flight_offers' 工具。你需要提供必要的参数,例如出发地、目的地和日期等。工具的具体参数和使用方式请参考仓库 README.md 文件中 🛠️ Tools 部分的说明。
工具 'get_flight_offers' 接受以下参数 (详细参数说明请参考仓库 README):
- 'origin': 出发地机场 IATA 代码 (必填)
- 'destination': 目的地机场 IATA 代码 (必填)
- 'departure_date': 出发日期 (YYYY-MM-DD 格式, 必填)
- 'return_date': 返回日期 (YYYY-MM-DD 格式, 可选)
- 'adults': 成人人数 (必填)
- 其他可选参数,如 'children', 'infants', 'travel_class', 'non_stop', 'currency_code', 'max_price', 'max' 等。
服务器会将 Amadeus API 返回的航班数据以 JSON 格式返回给 LLM 客户端,然后 LLM 可以根据这些数据生成用户友好的回复。
信息
分类
网页与API