Find Flights MCP Server

by ravinahp

フライト検索 MCP サーバー

Duffel API を使用してフライト情報を検索および取得するための MCP サーバー。

仕組み

ビデオデモ

https://github.com/user-attachments/assets/c111aa4c-9559-4d74-a2f6-60e322c273d4

なぜこれが役立つのか

Googleフライトのようなツールは単純な旅行には最適ですが、このツールは複雑な旅行計画を扱う際に真価を発揮します。その理由は次のとおりです。

  • コンテキストメモリ:Claudeはチャットで以前のすべてのフライト検索を記憶しているので、価格を比較するために複数のタブを開いたままにする必要はありません。
  • 柔軟な日付検索: 複数の日付を簡単に検索して、各日付を手動で確認することなく、最良の価格を見つけることができます。
  • 複雑な旅程: 複数都市への旅行、乗り継ぎ便、またはさまざまなルート オプションを比較する必要がある場合に最適です。
  • 自然な会話: 探しているものを説明するだけです。カレンダー インターフェイスをクリックしたり、都市名、日付、時刻を解析するための検索パラメータを調整したりする必要はありません。

話し合った内容をすべて記憶し、日付やルートを瞬時に検索できる旅行代理店がチャットにいるようなものだと考えてください。

特徴

  • 複数の目的地間のフライトを検索
  • 片道、往復、複数都市のフライト検索をサポート
  • 詳細なフライトオファー情報
  • 柔軟な検索パラメータ(出発時刻、客室クラス、乗客数)
  • フライト接続の自動処理
  • 複数日以内のフライトを検索して、旅行に最適なフライトを見つけます(遅い)

前提条件

  • Python 3.x
  • ダッフル API ライブキー

ダッフルAPIキーの取得

Duffel ではアカウントの確認と支払い情報の設定が必要ですが、この MCP サーバーはフライトの検索にのみ API を使用します。実際の予約やアカウントへの請求は行われません。

まずはduffel_testを使って、このツールの威力を実感してみてください。気に入ったら、以下の検証プロセスを経てライブキーをご利用ください。

まずテストモード(推奨)

完全な検証プロセスを実行する前に、テスト API キー ( duffel_test ) を使用して、シミュレートされたデータで機能を試すことができます。

  1. ダッフルの登録ページをご覧ください
  2. アカウントを作成します(会社名には「個人使用」を選択できます)
  3. [詳細] > [開発者] に移動して、テスト API キーを見つけます (すでに提供されています)

ライブAPIキーの取得

実際の飛行データにアクセスするには、次の手順に従います。

  1. ダッフルダッシュボードの左上隅にある「テストモード」をオフにします。
  2. 検証プロセスには複数の手順が必要であり、テスト モードを繰り返しオフに切り替える必要があります。
    • 最初のトグル: メールアドレスを確認する
    • もう一度切り替える: 会社情報を入力します(個人使用でも問題ありません)
    • もう一度切り替える: 支払い情報を追加します (Duffel では必須ですが、この MCP サーバーでは料金は発生しません)
    • もう一度切り替える: 残りの検証手順を完了します
    • 最終切り替え:「同意して送信」をクリックした後、ライブモードにアクセスします
  3. 完全に検証されたら、「その他」>「開発者」>「ライブトークンの作成」に進みます。
  4. ライブAPIキーをコピーする

💡ヒント:検証手順を完了するたびに、次のステップに進むためにテストモードをオフにする必要があります。すべての要件を完了するまで、テストモードをオフに切り替え続けてください。

⚠️ 重要事項:

  • お支払い情報はDuffelによって直接処理され、MCPサーバーによってアクセスまたは保存されることはありません。
  • このMCPサーバーは読み取り専用です。フライトの検索はできますが、予約はできません。
  • この統合により、お支払い方法に料金は発生しません。
  • すべての機密情報(APIキーを含む)はローカルマシンに保持されます
  • テストAPIキー( duffel_test )から始めて機能を評価できます。
  • 検証プロセスには時間がかかる場合があります。これはダッフルの標準的な要件です。

セキュリティに関する注意事項

このMCPサーバーはDuffelの検索エンドポイントのみを使用し、予約や課金を行うことはできません。お支払い情報はDuffelの認証プロセスのみに使用され、MCPサーバーがアクセスしたり共有したりすることはありません。

API使用制限に関する注意事項

  • ダッフルの現在の価格と使用制限を確認する
  • お客様の要件に応じてさまざまなレベルをご用意
  • ウェブサイトで現在の価格を確認することをお勧めします

インストール

Smithery経由でインストール

Smithery経由で Claude Desktop の Find Flights を自動的にインストールするには:

npx -y @smithery/cli install @ravinahp/travel-mcp --client claude

手動インストール

リポジトリをクローンします。

git clone https://github.com/ravinahp/flights-mcp cd flights-mcp

uv を使用して依存関係をインストールします。

uv sync

注: プロジェクトでは依存関係の管理に pyproject.toml を使用しているため、pip ではなく uv を使用します。

MCPサーバーとして構成する

このツールを MCP サーバーとして追加するには、Claude デスクトップ構成ファイルを変更します。

構成ファイルの場所:

  • MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%/Claude/claude_desktop_config.json

次の構成を JSON ファイルに追加します。

{ "flights-mcp": { "command": "uv", "args": [ "--directory", "/Users/YOUR_USERNAME/Code/flights-mcp", "run", "flights-mcp" ], "env": { "DUFFEL_API_KEY_LIVE": "your_duffel_live_api_key_here" } } }

⚠️ 重要:

  • YOUR_USERNAME実際のシステムユーザー名に置き換えます
  • your_duffel_live_api_key_hereを実際の Duffel Live API キーに置き換えます。
  • ディレクトリパスがローカルインストールと一致していることを確認してください

展開

建物

パッケージを準備します。

# Sync dependencies and update lockfile uv sync # Build package uv build

これにより、 dist/ディレクトリにディストリビューションが作成されます。

デバッグ

最適なデバッグ エクスペリエンスを得るには、MCP インスペクターを使用します。

npx @modelcontextprotocol/inspector uv --directory /path/to/find-flights-mcp run find-flights-mcp

検査官は以下を提供します:

  • リアルタイムのリクエスト/レスポンス監視
  • 入力/出力検証
  • エラー追跡
  • パフォーマンスメトリック

利用可能なツール

1. フライトを検索

@mcp.tool() async def search_flights(params: FlightSearch) -> str: """Search for flights based on parameters."""

3 つの飛行タイプをサポートします:

  • 片道便
  • 往復航空券
  • 複数都市へのフライト

パラメータには次のものが含まれます。

  • type : フライトの種類('one_way'、'round_trip'、'multi_city')
  • origin : 出発空港コード
  • destination : 目的地空港コード
  • departure_date :出発日(YYYY-MM-DD)
  • オプションパラメータ:
    • return_date : 往復の帰国日
    • adults :大人の乗客数
    • cabin_class : 希望するキャビンクラス
    • departure_time : 特定の出発時間の範囲
    • arrival_time : 特定の到着時間の範囲
    • max_connections : 最大接続数

2. オファーの詳細を取得する

@mcp.tool() async def get_offer_details(params: OfferDetails) -> str: """Get detailed information about a specific flight offer."""

一意の ID を使用して、特定のフライト オファーの包括的な詳細を取得します。

3. 複数都市間のフライトを検索

@mcp.tool(name="search_multi_city") async def search_multi_city(params: MultiCityRequest) -> str: """Search for multi-city flights."""

複雑な複数都市のフライト旅程に特化したツールです。

パラメータには次のものが含まれます。

  • segments :飛行セグメントのリスト
  • adults :大人の乗客数
  • cabin_class : 希望するキャビンクラス
  • max_connections : 最大接続数

ユースケース

いくつかの例(でも、自分で試してみてください!)

以下のツールを使用して、さまざまな複雑さのフライトを見つけることができます。

  • 「1月7日のサンフランシスコ発ニューヨーク行きビジネスクラス大人2名分の片道航空券を検索」
  • 「1月8日出発、1月15日帰着のロサンゼルス国際空港発ロンドン行き往復航空券を検索」
  • 「1月7日にニューヨークからパリへ、1月10日にローマへ、そして1月15日にニューヨークに戻る複数都市の旅行を計画してください」
  • 「1 月 7 日から 1 月 15 日までの SFO から LAX へのエコノミークラス大人 2 名向けの最も安いフライトはどれですか?」
  • 複数日にわたるフライトを検索して、ご旅行に最適なフライトを見つけることもできます。現時点では、片道または往復のフライトのみを検索することをお勧めします。例:「1月7日から1月10日までのサンフランシスコ発ロサンゼルス行きのエコノミークラス大人2名様の最安値のフライトを検索」

応答フォーマット

ツールは、次の内容を含む JSON 形式の応答を返します。

  • フライトオファーの詳細
  • 価格情報
  • スライス(ルート)の詳細
  • キャリア情報
  • 接続の詳細

エラー処理

このサービスには、次のような堅牢なエラー処理が含まれています。

  • APIリクエストの失敗
  • 無効な空港コード
  • APIキーが見つからないか無効です
  • ネットワークタイムアウト
  • 無効な検索パラメータ

貢献

[該当する場合は、投稿のガイドラインを追加します]

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。

パフォーマンスノート

  • 検索は片道/往復航空券50件までに制限されています
  • 複数都市の検索は10件のオファーに制限されます
  • サプライヤーのタイムアウトは、検索タイプに応じて15~30秒に設定されます。

客室クラス

利用可能な客室クラス:

  • economy :標準エコノミークラス
  • premium_economy : プレミアムエコノミークラス
  • business :ビジネスクラス
  • first :ファーストクラス

キャビンクラスのリクエスト例:

{ "params": { "type": "one_way", "adults": 1, "origin": "SFO", "destination": "LAX", "departure_date": "2025-01-12", "cabin_class": "business" // Specify desired cabin class } }
-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Duffel API を使用して詳細なフライト情報を検索および取得できるようにし、さまざまなフライト タイプと柔軟な検索パラメータをサポートして効率的な旅行計画を立てます。

  1. How it Works
    1. Video Demo
      1. Why This is Helpful
        1. Features
          1. Prerequisites
            1. Getting Your Duffel API Key
              1. Test Mode First (Recommended)
              2. Getting a Live API Key
              3. Security Note
              4. Note on API Usage Limits
            2. Installation
              1. Installing via Smithery
              2. Manual Installation
            3. Configure as MCP Server
              1. Deployment
                1. Building
              2. Debugging
                1. Available Tools
                  1. 1. Search Flights
                  2. 2. Get Offer Details
                  3. 3. Search Multi-City Flights
                2. Use Cases
                  1. Some Example (But try it out yourself!)
                3. Response Format
                  1. Error Handling
                    1. Contributing
                      1. License
                        1. Performance Notes
                          1. Cabin Classes
                        ID: k87cjyhkxy