Amadeus MCP服务器
这是一个模型上下文协议(MCP)服务器,连接到Amadeus API,为人工智能助手提供航班搜索、预订和分析功能。
特性
- 航班搜索:查找具有各种参数的机场之间的航班
- 机场信息:按关键字、城市或国家搜索机场
- 价格分析:获取路线的价格指标,以确定当前价格是高还是低
- 最便宜的日期:寻找最经济的旅行日期
- 航班详细信息:获取有关特定航班优惠的详细信息
鼓励
服务器为常见的旅行计划场景提供了几个预配置的提示:
- 分析航班价格 (
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进行linting和格式化。
运行单元测试:
npx jest使用监视模式运行测试:
npx jest --watch运行覆盖率测试:
npx jest --coverage运行集成测试(需要Amadeus API凭据):
npm run test:integration运行linting:
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功能:
- 机场搜索:按代码或关键字搜索机场
- 航班搜索:查找单程和往返航班
- 价格分析:获取特定路线的价格指标
集成测试的最佳实践
- 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或其他兼容的AI系统一起使用,请将助手配置为连接到此服务器的端点。
工具
服务器提供以下工具:
search-flights
搜索两个地点之间的航班优惠。
search-airports
按关键字、城市名称或IATA代码搜索机场。
flight-price-analysis
获取航班路线的价格指标,以确定当前价格是高还是低。
get-flight-details
获取特定航班优惠的详细信息。
find-cheapest-dates
找到给定路线最便宜的日期。
资源
服务器为以下内容提供架构资源:
- 航班优惠(
schema://flight-offers) - 机场(
schema://airports)
许可证
麻省理工学院
