旅行API服务

Amadeus MCP Server是一个全面的模型上下文协议服务器,提供对Amadeus旅行API套件的访问,支持航班、酒店、旅游和交通的搜索与管理。

  • by HaroldLeo
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 HaroldLeo/amadeus-mcp

使用说明

Amadeus MCP服务器

全面的模型上下文协议(MCP)服务器,可访问完整的Amadeus travel API套件。该服务器使AI助手能够通过Amadeus行业领先的旅行API搜索、预订和管理航班、酒店、旅游、接送等。

特性

飞行API(11个工具)

  • 航班搜索与发现

    • search_flights -搜索具有灵活参数的航班优惠
    • confirm_flight_price -预订前验证定价
    • flight_inspiration_search -从起点发现目的地
    • flight_cheapest_dates -寻找最便宜的旅行日期
  • 飞行分析和预测

    • analyze_flight_price -基于人工智能的价格分析
    • predict_flight_delay -预测航班延误
    • get_flight_status -实时航班跟踪

酒店API(4个工具)

  • search_hotels_by_city -查找城市中的酒店
  • search_hotels_by_location -查找坐标附近的酒店
  • get_hotel_offers -搜索可用性和价格
  • get_hotel_ratings -基于情绪的酒店评级

旅游和活动(2个工具)

  • search_activities -按地点查找旅游和活动
  • get_activity_details -获取详细的活动信息

转账(1个工具)

  • search_transfers -搜索机场接送和地面交通(有效类型:私人、出租车、小时、班车、共享)
    • 支持机场到机场的自动位置格式化接送
    • 包括20多个主要机场的数据库,其中包含完整的地址和坐标信息
    • 自动添加API兼容性所需的位置详细信息(城市、国家/地区代码、坐标)

参考数据(6个工具)

  • search_airports -按关键字查找机场
  • search_cities -按名称查找城市
  • get_nearest_airports -查找坐标附近的机场
  • get_airline_info -获取航空公司信息
  • get_airline_routes -获取航空公司航线网络
  • get_airport_routes -获取机场目的地

市场洞察(2个工具)

  • get_travel_insights -大多数旅游目的地
  • get_booking_insights -预订最多的目的地

总计:26个MCP工具 -专注于实用的搜索和发现功能

禁用工具

以下工具已禁用,但仍保留在代码库中以供参考:

  • ❌ 预订工具 (5): book_flight, book_hotel, book_transfer, get_flight_order, cancel_flight_order
    • 原因:测试环境不能创建真正的预订;用户更喜欢直接在航空公司/酒店网站上预订
  • ❌ 预测三重目标:商务旅行与休闲旅行的人工智能预测
    • 原因:用户已经知道他们的旅行目的;最小实用价值

安装

1.获取Amadeus API证书

注册一个免费的Amadeus开发者帐户:

  1. 访问https://developers.amadeus.com
  2. 创建账户
  3. 在仪表板中创建新应用程序
  4. 复制您的 API密钥 (客户端ID)和 API秘密 (客户机密)

2.安装依赖项

pip install -r requirements.txt

或者直接安装软件包:

pip install -e .

3.配置环境变量

将Amadeus凭据设置为环境变量:

export AMADEUS_CLIENT_ID="your_api_key_here"
export AMADEUS_CLIENT_SECRET="your_api_secret_here"
export AMADEUS_ENV="test"  # Use "production" for live bookings

对于持久配置,请添加到 ~/.bashrc 或 ~/.zshrc:

# Amadeus API Configuration
export AMADEUS_CLIENT_ID="your_api_key_here"
export AMADEUS_CLIENT_SECRET="your_api_secret_here"
export AMADEUS_ENV="test"

用法

运行服务器

启动Amadeus MCP服务器:

mcp-server-amadeus

或者直接运行:

python -m mcp_server_amadeus

与Claude Desktop一起使用

添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "amadeus": {
      "command": "mcp-server-amadeus",
      "env": {
        "AMADEUS_CLIENT_ID": "your_api_key_here",
        "AMADEUS_CLIENT_SECRET": "your_api_secret_here",
        "AMADEUS_ENV": "test"
      }
    }
  }
}

查询示例

连接后,您可以问Claude:

航班搜索:

  • “搜索12月15日从纽约飞往巴黎的航班”
  • “找到下个月从伦敦到东京最便宜的商务舱航班”
  • “我在哪里可以从洛杉矶坐300美元以下的飞机?”

酒店搜索:

  • “查找12月20日至25日巴黎2名成人的酒店”
  • “搜索埃菲尔铁塔坐标附近的酒店”
  • “显示纽约万豪酒店的评级”

活动:

  • “卢浮宫博物馆附近有什么旅游和活动?”
  • “在罗马市中心找事情做”

转移:

  • “搜索从CDG机场到ORY机场的接送服务”
  • “找一辆从肯尼迪机场到曼哈顿的私家车”
  • “从希思罗机场到伦敦市中心有哪些出租车选择?”

旅游见解:

  • “旧金山最受欢迎的目的地是什么?”
  • “预测这次旅行是商务旅行还是休闲旅行:纽约至芝加哥,周一至周五”
  • “这是从洛杉矶飞往肯尼迪机场的好价格吗?”

参考数据:

  • 查找坐标40.7128、-74.0060附近的机场
  • “美国航空公司经营哪些航线?”
  • “搜索日本的机场”

API环境

测试环境(默认)

  • 基本URL: https://test.api.amadeus.com
  • 目的: 开发和测试
  • 特征:
    • 免费套餐可用
    • 未创建实际预订
    • 有限费率限制
    • 测试数据可能无法反映实时可用性

生产环境

  • 基本URL: https://api.amadeus.com
  • 目的: 实时预订和真实数据
  • 特征:
    • 实时数据
    • 实际预订和费用
    • 更高的利率限制
    • 需要生产API证书

使用以下参数设置环境: export AMADEUS_ENV="production"

工具参考

航班搜索参数

这 search_flights 工具接受:

参数 类型 描述 示例
origin string 始发机场/城市代码 “NYC”、“JFK”
destination string 目的地代码 “LAX”、“标准杆数”
departure_date string 出发日期 “2024-12-15”
return_date string 返回日期(可选) “2024-12-20”
adults int 成人人数 1
children int 子女人数 0
travel_class string 客舱级别 “经济舱”、“商务舱”
max_results int Max提出返回 10
currency_code string 价格货币 “USD”、“EUR”
nonstop_only bool 仅直飞航班 false
included_airline_codes string 按航空公司筛选 “AA、UA、DL”

酒店搜索参数

这 get_hotel_offers 工具接受:

参数 类型 描述 示例
hotel_ids string 酒店ID(逗号分隔) “MCLONGHM,ADNYCCTB”
check_in_date string 入住日期 “2024-12-15”
check_out_date string 退房日期 “2024-12-20”
adults int 每间客房的成人人数 2
room_quantity int 房间数 1
currency string 价格货币 “USD”

认证

服务器自动处理OAuth2身份验证:

  1. 初始请求: 当调用第一个工具时,服务器请求访问令牌
  2. 令牌缓存: 令牌被缓存并重新用于后续请求
  3. 自动刷新: 令牌在到期前自动刷新
  4. 错误处理: 身份验证错误被清楚地记录下来

您不需要手动管理令牌,只需设置凭据,服务器就可以处理其余部分。

速率限制

Amadeus API费率限制因环境而异:

  • 测试: 每秒约10个请求
  • 生产: 根据您的计划设定更高的限额

服务器包括对速率限制响应的错误处理。

错误处理

所有工具都返回JSON,其中包含:

成功响应:

{
  "data": [...],
  "meta": {...}
}

错误响应:

{
  "error": "Detailed error message"
}

错误也会记录到stderr进行调试。

支持的IATA代码

机场代码

使用标准的3个字母的IATA代码:

  • JFK -肯尼迪国际机场
  • LAX -洛杉矶国际机场
  • LHR -伦敦希思罗机场
  • CDG -巴黎戴高乐
  • NRT -东京成田

城市代码

许多城市都有自己的代码:

  • NYC -纽约市(所有机场)
  • LON -伦敦(所有机场)
  • PAR -巴黎(所有机场)
  • TYO -东京(所有机场)

航空公司代码

标准2字母IATA代码:

  • AA -美国航空公司
  • UA -联合航空公司
  • DL -达美航空公司
  • BA -英国航空公司
  • LH -汉莎航空

发展

项目结构

src/mcp_server_amadeus/
├── __init__.py          # Package initialization
└── server.py            # Main MCP server with all tools

添加新工具

添加新的Amadeus API端点:

  1. 添加工具功能 @mcp.tool() 装饰器
  2. 使用实现API请求 amadeus_request()
  3. 添加适当的错误处理和日志记录
  4. 使用新工具更新此README

测试

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest tests/

故障排除

“未配置凭据”错误

  • 确保 AMADEUS_CLIENT_ID 和 AMADEUS_CLIENT_SECRET 已设定
  • 检查环境变量是否已导出到当前shell中
  • 在Amadeus开发人员仪表板中验证凭据是否正确

“令牌请求失败”错误

  • 检查您的互联网连接
  • 验证凭据是否有效
  • 确保您没有达到速率限制

“API请求失败(401)”错误

  • 您的访问令牌可能已过期(应自动刷新)
  • 检查凭据是否仍然有效
  • 尝试在Amadeus仪表板中重新生成凭据

“未找到结果”错误

  • 验证IATA代码是否正确(必须大写)
  • 检查日期格式是否正确(YYYY-MM-DD)
  • 确保日期在未来
  • 尝试扩展搜索参数(删除筛选器)

速率限制错误

  • 在请求之间等待几秒钟
  • 减少 max_results 参数
  • 考虑升级到具有更高限制的API生产

资源

  • Amadeus开发者版: https://developers.amadeus.com
  • API文件: https://developers.amadeus.com/self-service
  • API参考: https://developers.amadeus.com/self-service/apis-docs
  • 支持论坛: https://developers.amadeus.com/support
  • 不和谐社区: https://discord.gg/cVrFBqx

许可证

MIT许可证-有关详细信息,请参阅许可证文件

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 添加新功能的测试
  4. 提交拉取请求

鸣谢

内置:

更新日志

版本0.2.0(简化和聚焦)

  • 简化为26个MCP工具 -删除了6个低价值工具
  • 禁用预订工具 (预订航班、预订酒店、预订转账、获取航班订单、取消航班订单)
    • 测试环境限制
    • 用户更喜欢直接在提供商网站上预订
  • 已删除predict_trip_purpose -用户已经知道他们的旅行目的
  • 增强工具:
    • 使用20+机场位置数据库传输API
    • 自动消毒的航班价格确认
    • 具有更好错误处理能力的酒店评级
  • 集中: 搜索和发现(非预订)

版本0.1.0(初始版本)

  • 32个MCP工具,涵盖全部Amadeus API
  • 自动OAuth2身份验证
  • 航班搜索、预订和分析
  • 酒店搜索和预订
  • 旅游和活动
  • 机场接送
  • 参考数据工具
  • 市场洞察和预测