faregrid について
faregrid は、ホスト型 FlightPowers MCP サーバーに接続し、Google Flights の最新運賃を検索するローカルブリッジです。比較用の便情報と過去の価格帯を返しますが、予約や決済には対応しません。
主な機能
- 01片道・往復運賃の検索
- 02日付範囲と複数の目的地で検索
- 03航空会社・経由回数・価格で絞り込み
- 04便情報と予約リンクの表示
- 05過去の価格帯による運賃評価
活用シーン
- 01複数の日程で運賃を比較
- 02経由回数や航空会社の条件で便を検索
- 03運賃を過去の価格帯と照合
MCP 対応
faregrid はフライト検索ツールを MCP クライアントに公開し、呼び出しをホスト型 FlightPowers MCP サーバーに転送します。結果には販売元の予約リンクが含まれますが、予約や決済のツールはありません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | マージして並べ替えた後に返すフライトの最大数。 |
| sort_by | string | いいえ | 「best」(デフォルト)と「price」は、どちらも価格の安い順に並べ替えます。「duration」は所要時間の短い順に並べ替えます。すべての結果に適用されます。 |
| verbose | boolean | いいえ | 上流から送信された各運賃の全フィールドと、選択されたすべての運賃を、行数制限なしで返します。デフォルトではオフです。結果には、指定された sort_by に基づく上位行を簡潔な形式(日付、目的地、航空会社、経由回数、所要時間、価格、旅行日数、予約リンク)で返します。月単位かつ複数の目的地を対象に広範囲を検索すると、そうしなければ数 MB の JSON が生成され、会話に格納できないホストもあるためです。true の場合、到着時刻、各区間の経由回数、生の経由詳細、results_returned 以降のすべての行も追加されます。results_total は常に結果の総数を示します。 |
| currency | string | いいえ | ISO 通貨コード。デフォルトは "usd" です。 |
| max_price | any | いいえ | この価格以下のフライトのみを返します。 |
| max_stops | any | いいえ | フライトごとの最大乗り継ぎ回数。0 は直行便のみを意味します。 |
| seat_type | any | いいえ | 1 エコノミー、2 プレミアムエコノミー、3 ビジネス、4 ファースト。 |
| passengers | any | いいえ | 人数ではなく、旅行者ごとに1つの値を指定します。1は大人、2は子供(2~11歳)、3は膝上の幼児、4は座席を使用する幼児です。例:[1, 1, 2] は大人2人と子供1人です。大人が少なくとも1人必要です。膝上の幼児1人につき大人1人が必要で、最大9人までです。省略した場合は大人1人です。人数リスト [大人, 子供, 幼児](例:[2, 1, 0])や、大人2人を表す [2] も認識され、検索前にコードへ変換されます。コードとして有効なリストは、コードとして検索されます。 |
| to_airport | any | はい | 目的地の空港。IATA コード 1 つ("BCN")、カンマ区切りの複数コード("BCN,LIS,ATH")、またはリスト(["BCN","LIS","ATH"])を指定できます。いずれの形式も受け付けられ、1 回の検索で目的地を比較します。 |
| from_airport | string | はい | 出発地の IATA コード。例:"TLV"。1 回の検索につき出発地は 1 つです。2 つ目を指定すると、検索されずに拒否されます。 |
| max_searches | any | いいえ | この呼び出しで実行できる検索数の上限または下限です。未設定の場合は通常の動作になります。呼び出し元自身のキーを使う場合、妥当なリクエストであれば上限はリクエスト全体をカバーします(1か月全体で旅行日数が3種類なら93通り、1か月全体 × 3泊 × 3つの目的地なら279通りで、いずれもすべて実行されます)。上限を超える分は途中で打ち切らず、範囲全体から均等にサンプリングされます。値を下げると広範囲の検索に使う検索数が減り、値を上げると(絶対上限は300)、より広いグリッドをカバーできます。 |
| use_fallback | any | いいえ | デフォルト:未設定。通常の Google Flights ページ読み取りではなく、独立した別のフライトデータソースに検索を切り替えます。未設定でも、検索の再試行が失敗すると自動的に一度このソースに切り替わります。true にすると、毎回の試行でこのソースを使用しますが、かなり遅く、タイムアウトする可能性があります。false にすると、自動再試行を含め、完全に無効になります。 |
| airline_codes | any | いいえ | 検索対象をこれらの航空会社コードに限定します。例:["LY"]。 |
| departure_date | any | いいえ | 出発日を 1 日指定します。"YYYY-MM-DD"。 |
| arrival_time_max | any | いいえ | 到着時刻の最も遅い時間。0~23。 |
| arrival_time_min | any | いいえ | 到着時刻の最も早い時間。0~23。 |
| departure_date_to | any | いいえ | 出発日の範囲の最終日。 |
| departure_time_max | any | いいえ | 出発時刻の最も遅い時間。0~23。 |
| departure_time_min | any | いいえ | 出発時刻の最も早い時間。0~23。 |
| departure_date_from | any | いいえ | 出発日の範囲の開始日。 |
| exclude_airline_codes | any | いいえ | 結果から除外する航空会社コードです。 |
詳細
faregrid
faregrid は、Google Flights からリアルタイムの航空券価格を取得する、ホストされた FlightPowers MCP サーバーへの小さなローカルブリッジです。出発地と目的地に加えて、単一の日付または日付範囲を指定すると、運賃、航空会社、所要時間、乗り継ぎ回数、各フライトの予約可能なリンク、その路線の運賃が通常より大幅に安いか高いかを示す過去の価格帯を返します。
このブリッジは独自の運賃データを保持しません。稼働中のエンドポイントから取得したとおりの上流サーバーのツール一覧をローカルで提供し、各ツール呼び出しを上流に転送して、結果を変更せずに返します。取得した機能は検索のみです。結果には販売元の予約フローへの buy_link が含まれますが、予約、購入、支払いを行うツールはありません。
ツール
search_oneway_flights— 片道運賃です。必須項目:from_airportとto_airport(IATA コード。目的地には"BCN,LIS,ATH"のような複数のコード、または["BCN","LIS","ATH"]を指定できます)。任意項目:departure_date、またはdeparture_date_from/departure_date_toによる範囲指定、max_stops、airline_codes、exclude_airline_codes、出発時刻と到着時刻の時間帯、currency(デフォルトは"usd")、max_price、seat_type、passengers、sort_by(デフォルトは"best")、limit(デフォルトは 10)、max_searches、use_fallback、verbose。1 回の呼び出しで、範囲内のすべての日付と目的地の組み合わせを検索できます。search_roundtrip_flights— 往復運賃です。片道を 2 回別々に検索するのではなく、往路と復路を組み合わせた運賃として価格が設定されます。 必須項目:from_airportとto_airport。任意項目:片道ツールと同じ出発日の単一日付または範囲指定フィールド、さらにreturn_dateまたはnights(旅行日数、または[5, 6, 7]のようなリスト)、max_departure_stops、max_return_stops、departure_airline_codes、return_airline_codes、returns_per_outbound、および共通フィールドのcurrency、max_price、seat_type、passengers、sort_by、limit、max_searches、use_fallback、verboseです。
運賃は数分以内に古くなるため、最新の価格を得るには以前の結果ではなく、新たに検索する必要があります。
設定
FLIGHTPOWERS_MCP_URL(任意)— 上流エンドポイントを上書きします。デフォルトはhttps://flights.flightpowers.com/mcpです。(この上書き用フックは、この再構築独自の、再構築であることを明記した機能です。)FLIGHTPOWERS_API_KEY(任意)— 設定すると、すべての上流リクエストにx-rapidapi-key: <key>ヘッダーが付加されます。これは Google Flights Live API 用の、呼び出し元自身の RapidAPI キーです。設定しない場合はキーのヘッダーを送信せず、上流の無料サインイン枠が適用されます。Authorizationヘッダーは一切送信されません。(この転送も、再構築独自の、再構築であることを明記した機能です。元の機能はキーなしで取得されました。)
転送の仕組み
最初のツール呼び出し時に、クライアントは上流とのストリーミング可能な HTTP セッションを開始します。JSON-RPC の initialize リクエスト(protocolVersion 2025-03-26、clientInfo name faregrid)、続いて notifications/initialized 通知を送り、その後、呼び出し元の引数を変更せずに含めた tools/call リクエストを送信します。上流が initialize に Mcp-Session-Id ヘッダーを付けて応答すると、その値はセッションの以降のすべてのリクエストに引き継がれ、プロセスの稼働中は同じセッションが再利用されます。応答はプレーンな JSON またはサーバー送信イベントとして届く場合があります。どちらも読み取ります。
上流からの正常な結果は、上流が設定した isError フラグも含め、そのまま転送されます。JSON-RPC エラー、2xx 以外のステータス、読み取り不能な応答、完了できないリクエストなどの失敗は、テキストが faregrid error: で始まる isError 結果として返されます(このエラー表示は、この再構築独自の、再構築であることを明記した機能です)。
CLI
各ツールは、1 つの JSON 引数文字列を受け取るサブコマンドとしても実行できます。
npx @reneturcios/faregrid search_oneway_flights '{"from_airport":"TLV","to_airport":"BCN","departure_date":"2026-11-10"}'
npx @reneturcios/faregrid search_roundtrip_flights '{"from_airport":"TLV","to_airport":"BCN,LIS","departure_date_from":"2026-11-01","departure_date_to":"2026-11-07","nights":[3,4]}'
npx @reneturcios/faregrid --version
終了コード:成功時は 0、isError 結果の場合は 1、使用方法に誤りがある場合は 2 です。
MCP サーバー
npx -y @reneturcios/faregrid mcp
MCP クライアントの設定:
{
"mcpServers": {
"faregrid": {
"command": "npx",
"args": ["-y", "@reneturcios/faregrid", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/faregrid
docker run --rm ghcr.io/cloudcorprecords/faregrid --version
コンテナのデフォルトコマンドは mcp なので、最初の形式は stdio MCP サーバーです。それ以外の引数は通常どおり CLI に渡されます。
開発
npm install
npm run build
npm test
npm run dev
テストスイートはすべて、スタブ化された JSON-RPC アップストリームに対して実行されます。実際のネットワーク呼び出しはありません。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。