返回市场
阿马迪斯-MCP服务器独立版

阿马迪斯-MCP服务器独立版

作者:privilegemendes6 星标更新:2025-03-28

项目介绍

Amadeus MCP Server

这是一个模型上下文协议(MCP)服务器,连接到Amadeus API以提供飞行搜索、预订和分析能力给AI助手。

功能

  • 航班搜索:根据各种参数查找机场之间的航班
  • 机场信息:通过关键词、城市或国家搜索机场
  • 价格分析:获取航线的价格指标,判断当前价格是高还是低
  • 最经济日期:找到旅行的最经济日期
  • 航班详情:获取特定航班报价的详细信息

提示

该服务器提供了几个预配置的提示,用于常见的旅行规划场景:

  1. 分析航班价格 (analyze-flight-prices):分析航线的航班价格趋势
  2. 寻找最佳交易 (find-best-deals):为特定航线和日期找到最佳的航班交易
  3. 规划多城市行程 (plan-multi-city-trip):规划一个完整的多城市行程,具有最优路线
  4. 寻找最经济的旅行日期 (find-cheapest-travel-dates):识别最经济的旅行日期

安装

预备条件

  • Node.js 16.x 或更高版本
  • Amadeus API 凭证(客户端ID和密钥)

安装步骤

  1. 克隆仓库:
git clone https://github.com/yourusername/amadeus-mcp-server.git
cd amadeus-mcp-server
  1. 安装依赖项:
npm install
  1. 在根目录创建一个.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 凭证:测试需要有效的Amadeus API凭证在.env文件中:

    AMADEUS_CLIENT_ID=your_client_id
    AMADEUS_CLIENT_SECRET=your_client_secret
    
  • 测试环境:测试配置为使用Amadeus测试环境,而不是生产API。

运行集成测试

npm run test:integration

集成测试位于__tests__/integration,验证以下API功能:

  • 机场搜索:通过代码或关键词搜索机场
  • 航班搜索:查找单程和往返旅程的航班
  • 价格分析:获取特定航线的价格指标

集成测试的最佳实践

  1. API速率限制:测试包括自动速率限制处理和指数退避,以避免API节流。频繁运行测试时,您仍可能遇到速率限制。
  2. 条件测试:如果缺少API凭证,测试会自动跳过,允许在没有凭证的环境中无错误地运行测试套件。
  3. 隔离测试:开发新功能时,可以运行特定的测试文件:
    npx jest __tests__/integration/flight-search.test.js
    
  4. 更长的超时时间:集成测试使用较长的超时时间(60秒),以适应网络延迟和重试。
  5. CI/CD中的模拟:在无法访问真实API的持续集成管道中,使用__tests__/amadeus-mock.test.js,它可以在不调用实际API的情况下运行。

集成

要将此MCP服务器与OpenAI的Assistant API或其他兼容的AI系统一起使用,请配置助手连接到此服务器的端点。

工具

服务器提供的工具如下:

search-flights

在两个地点之间搜索航班报价。

search-airports

通过关键词、城市名称或IATA代码搜索机场。

flight-price-analysis

获取特定航线的价格指标,判断当前价格是高还是低。

get-flight-details

获取特定航班报价的详细信息。

find-cheapest-dates

为给定航线找到最便宜的旅行日期。

资源

服务器提供的模式资源包括:

  • 航班报价 (schema://flight-offers)
  • 机场 (schema://airports)

许可证

MIT </中文翻译>