Amadeus MCP Server について
Amadeus MCP Serverは、AIアシスタントをAmadeus APIに接続し、フライト検索や旅行計画を支援します。空港検索、運賃分析、フライト詳細、最安日検索に加え、一般的な旅程作成向けのプロンプトを備えています。
主な機能
- 01フライト候補の検索
- 02キーワードや場所から空港を検索
- 03路線の価格指標を分析
- 04フライト候補の詳細を取得
- 05最安の旅行日を検索
活用シーン
- 01路線ごとのフライト候補を比較
- 02都市名やIATAコードで空港を検索
- 03路線価格が高いか低いかを判断
- 04旅行費用を抑えられる日程を探す
MCP 対応
Amadeusのフライト・空港機能をMCPツールとして公開し、フライト候補と空港のスキーマリソース、旅行計画用プロンプトも提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Amadeus MCP サーバー
これは、Amadeus API に接続し、AI アシスタントにフライトの検索、予約、分析機能を提供する Model Context Protocol(MCP)サーバーです。
機能
- フライト検索:さまざまな条件を指定して、空港間のフライトを検索します
- 空港情報:キーワード、都市、国から空港を検索します
- 料金分析:ルートの料金指標を取得し、現在の料金が高いか安いかを判断します
- 最安日:最もお得に旅行できる日を検索します
- フライトの詳細:特定のフライトオファーに関する詳細情報を取得します
プロンプト
このサーバーでは、よくある旅行計画のシナリオ向けに、事前設定済みのプロンプトをいくつか提供しています。
- フライト料金を分析(
analyze-flight-prices):料金の傾向に関する分析情報を添えて、ルートのフライト料金を分析します - お得なフライトを検索(
find-best-deals):特定のルートと日付で最もお得なフライトを検索します - 複数都市の旅行を計画(
plan-multi-city-trip):最適なルートで、複数都市を巡る旅程全体を計画します - 最安の旅行日を検索(
find-cheapest-travel-dates):最もお得に旅行できる日を特定します
セットアップ
前提条件
- Node.js 16.x 以上
- Amadeus API の認証情報(Client ID と Secret)
インストール
- リポジトリをクローンします:
git clone https://github.com/yourusername/amadeus-mcp-server.git
cd amadeus-mcp-server
- 依存関係をインストールします:
npm install
- ルートディレクトリに Amadeus API の認証情報を記載した
.envファイルを作成します:
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 -
テスト環境:テストでは本番 API ではなく、Amadeus のテスト環境を使用するように設定されています。
統合テストの実行
npm run test:integration
統合テストは __tests__/integration にあり、次の 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)
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。