航班搜索服务

Amadeus MCP Server是一个连接Amadeus API的模型上下文协议服务器,为AI助手提供航班搜索、预订和分析功能。

  • by privilegemendes
  • TypeScript
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 privilegemendes/amadeus-mcp-server-standalone

使用说明

Amadeus MCP服务器

这是一个模型上下文协议(MCP)服务器,连接到Amadeus API,为人工智能助手提供航班搜索、预订和分析功能。

特性

  • 航班搜索:查找具有各种参数的机场之间的航班
  • 机场信息:按关键字、城市或国家搜索机场
  • 价格分析:获取路线的价格指标,以确定当前价格是高还是低
  • 最便宜的日期:寻找最经济的旅行日期
  • 航班详细信息:获取有关特定航班优惠的详细信息

鼓励

服务器为常见的旅行计划场景提供了几个预配置的提示:

  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进行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功能:

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

集成测试的最佳实践

  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)

许可证

麻省理工学院