一个连接到Amadeus API的模型上下文协议服务器,使人工智能助手能够搜索航班、分析价格、查找最佳旅行优惠信息并规划多城市行程。
359 查看 · 2026-07-07 更新
简介
一个连接到Amadeus API的模型上下文协议服务器,使人工智能助手能够搜索航班、分析价格、查找最佳旅行优惠信息并规划多城市行程。
简介
一个连接到Amadeus API的模型上下文协议服务器,使人工智能助手能够搜索航班、分析价格、查找最佳旅行优惠信息并规划多城市行程。
Amadeus MCP 服务器
这是一个模型上下文协议(MCP)服务器,它连接到 Amadeus API,为 AI 助手提供航班搜索、预订和分析功能。
特性
- 航班搜索:根据各种参数查找机场之间的航班
- 机场信息:通过关键词、城市或国家搜索机场
- 价格分析:获取航线的价格指标,以确定当前价格是高还是低
- 最便宜的日期:找到最经济的出行日期
- 航班详情:获取特定航班报价的详细信息
提示
该服务器提供了几个针对常见旅行规划场景预配置的提示:
- 分析航班价格 (
analyze-flight-prices):分析某条航线的航班价格,并提供价格趋势见解 - 寻找最佳交易 (
find-best-deals):为特定航线和日期找到最佳航班优惠 - 计划多城市旅行 (
plan-multi-city-trip):使用最优路线规划完整的多城市行程 - 找到最便宜的旅行日期 (
find-cheapest-travel-dates):确定最经济的出行日期
设置
前提条件
- Node.js 16.x 或更高版本
- Amadeus API 凭证(客户端 ID 和密钥)
安装
- 克隆仓库:
git clone https://github.com/yourusername/amadeus-mcp-server.git cd amadeus-mcp-server
- 安装依赖项:
npm install
- 在根目录下创建一个
.env文件,其中包含您的 Amadeus API 凭证:
AMADEUS_CLIENT_ID=your_client_id AMADEUS_CLIENT_SECRET=your_client_secret
运行服务器
构建并启动服务器:
npm run build npm start
开发环境:
npm run dev
测试与开发
该项目使用 Jest 进行测试,并使用 Biome 进行代码检查和格式化。
运行单元测试:
npx jest
以监视模式运行测试:
npx jest --watch
运行带有覆盖率的测试:
npx jest --coverage
运行集成测试(需要 Amadeus API 凭证):
npm run test:integration
运行代码检查:
npm run lint
格式化代码:
npm run format
集成测试
该项目包括全面的集成测试,验证服务器与真实 Amadeus API 的交互。这些测试有助于确保我们的 API 客户端能够正确地与实际的 API 端点一起工作,并适当地处理响应。
集成测试的要求
-
Amadeus API 凭证:测试需要在
.env文件中提供有效的 Amadeus API 凭证:AMADEUS_CLIENT_ID=your_client_id AMADEUS_CLIENT_SECRET=your_client_secret -
测试环境:测试被配置为使用 Amadeus 测试环境,而不是生产 API。
运行集成测试
npm run test:integration
集成测试位于 __tests__/integration 目录下,并验证以下 API 功能:
- 机场搜索:通过代码或关键词搜索机场
- 航班搜索:查找单程和往返旅程的航班
- 价格分析:获取特定航线的价格指标
集成测试的最佳实践
-
API 速率限制:测试包括自动的速率限制处理,并使用指数退避来避免 API 节流。即使如此,在频繁运行测试时,您仍可能会遇到速率限制。
-
条件测试:如果缺少 API 凭证,测试会自动跳过,这允许在没有凭证的环境中无错误地运行测试套件。
-
隔离测试:当开发新功能时,您可以运行特定的测试文件:
npx jest __tests__/integration/flight-search.test.js -
更长的超时时间:集成测试使用更长的超时时间(60秒)以适应网络延迟和重试需求。
-
CI/CD 模拟:对于无法访问真实 API 的持续集成管道,请使用
__tests__/amadeus-mock.test.js文件进行测试,该文件运行时不实际调用 API。
集成
要将此 MCP 服务器与 OpenAI 的 Assistant API 或其他兼容的人工智能系统一起使用,请配置助手以连接到此服务器的端点。
工具
服务器提供以下工具:
search-flights
搜索两个地点之间的航班报价。
search-airports
通过关键词、城市名称或 IATA 代码搜索机场。
flight-price-analysis
获取航班路线的价格指标,以确定当前价格是高还是低。
get-flight-details
获取关于特定航班报价的详细信息。
find-cheapest-dates
找到给定航线中最便宜的飞行日期。
资源
服务器为以下内容提供了模式资源:
- 航班报价 (
schema://flight-offers) - 机场 (
schema://airports)
许可证
MIT