使用说明

项目简介

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' 工具,并处理客户端的工具调用请求。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/donghyun-chae/mcp-amadeus.git
    cd mcp-amadeus
  2. 安装依赖: 建议使用 'uv' 或 'pip' 进行依赖管理。

    uv sync
    # 或
    pip install -r requirements.txt
  3. 配置 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