Amadeus MCP サーバー
これは、Amadeus API に接続して AI アシスタントにフライトの検索、予約、分析機能を提供するモデル コンテキスト プロトコル (MCP) サーバーです。
特徴
フライト検索:さまざまなパラメータで空港間のフライトを検索
空港情報:キーワード、都市、国で空港を検索
価格分析: ルートの価格指標を取得して、現在の価格が高いか安いかを判断します
最も安い日付: 最も経済的な旅行の日付を見つける
フライトの詳細: 特定のフライトのオファーに関する詳細情報を取得します
Related MCP server: Amadeus Agent
プロンプト
サーバーは、一般的な旅行計画シナリオ向けに事前設定されたいくつかのプロンプトを提供します。
フライト価格の分析(
analyze-flight-prices):価格動向に関する洞察に基づいて、ルートのフライト価格を分析します。ベストディールを探す(
find-best-deals): 特定のルートと日付でベストな航空券を探す複数都市旅行の計画(
plan-multi-city-trip): 最適なルートで完全な複数都市の旅程を計画します最も安い旅行日を見つける(
find-cheapest-travel-dates): 最も経済的な旅行日を特定します
設定
前提条件
Node.js 16.x 以上
Amadeus API 認証情報 (クライアント ID とシークレット)
インストール
リポジトリをクローンします。
依存関係をインストールします:
Amadeus API 資格情報を使用して、ルート ディレクトリに
.envファイルを作成します。
サーバーの実行
サーバーをビルドして起動します。
開発の場合:
テストと開発
このプロジェクトでは、テストには Jest を使用し、リンティングとフォーマットには Biome を使用します。
ユニットテストを実行します。
ウォッチモードでテストを実行します。
カバレッジ付きのテストを実行します。
統合テストを実行します (Amadeus API 認証情報が必要です):
リンティングを実行します:
フォーマットコード:
統合テスト
このプロジェクトには、サーバーと実際のAmadeus APIとの相互作用を検証する包括的な統合テストが含まれています。これらのテストは、APIクライアントが実際のAPIエンドポイントと正しく連携し、レスポンスを適切に処理できることを確認するのに役立ちます。
統合テストの要件
Amadeus API 認証情報: テストでは、
.envファイルに有効な Amadeus API 認証情報が必要です。AMADEUS_CLIENT_ID=your_client_id AMADEUS_CLIENT_SECRET=your_client_secretテスト環境: テストは、実稼働 API ではなく、Amadeus テスト環境を使用するように構成されています。
統合テストの実行
統合テストは__tests__/integrationにあり、次の API 機能を検証します。
空港検索:コードまたはキーワードで空港を検索する
フライト検索:片道および往復のフライトを検索
価格分析: 特定のルートの価格メトリクスを取得する
統合テストのベストプラクティス
APIレート制限:テストには、APIスロットリングを回避するための指数バックオフによる自動レート制限処理が含まれています。テストを頻繁に実行する場合、レート制限が発生する可能性があります。
条件付きテスト: API 資格情報が欠落している場合、テストは自動的にスキップされるように設計されており、資格情報のない環境でもテスト スイートをエラーなしで実行できます。
分離テスト: 新しい機能を開発するときに、特定のテスト ファイルを実行できます。
npx jest __tests__/integration/flight-search.test.jsより長いタイムアウト: 統合テストでは、ネットワークの遅延と再試行に対応するために、より長いタイムアウト (60 秒) が使用されます。
CI/CD のモック: 実際の API アクセスが利用できない継続的インテグレーション パイプラインの場合は、実際の API 呼び出しなしで実行される
__tests__/amadeus-mock.test.jsを使用します。
統合
この MCP サーバーを OpenAI の Assistant API またはその他の互換性のある AI システムで使用するには、アシスタントがこのサーバーのエンドポイントに接続するように構成します。
ツール
サーバーは次のツールを提供します。
search-flights
2 つの場所間のフライトのオファーを検索します。
search-airports
キーワード、都市名、または IATA コードで空港を検索します。
flight-price-analysis
飛行ルートの価格メトリックを取得して、現在の価格が高いか安いかを判断します。
get-flight-details
特定のフライトオファーに関する詳細情報を取得します。
find-cheapest-dates
特定のルートで最も安い飛行日を検索します。
リソース
サーバーは次のスキーマ リソースを提供します。
フライトオファー (
schema://flight-offers)空港 (
schema://airports)
ライセンス
マサチューセッツ工科大学