mcpField
F
flightdata

flightdata

ローカル
github.com/CloudCorpRecords地図・旅行02 日前に更新

flightdata について

flightdataは、Google Flightsを検索するローカルブリッジです。旅行計画ツールやエージェント向けに、HasDataから行程情報を取得し、条件で絞り込めます。運賃は保存しません。

主な機能

  1. 01片道・往復・複数都市の検索
  2. 02価格・経由地・航空会社・時刻の絞り込み
  3. 03区間・運賃・排出量の取得
  4. 04CLIとstdio MCPサーバー

活用シーン

  1. 01価格や所要時間で航空便を比較
  2. 02経由地・航空会社・排出量で絞り込み
  3. 03後続検索用の行程トークンを取得

MCP 対応

MCPクライアントに読み取り専用の航空便検索ツールを公開し、呼び出しをホスト型HasData Google Flights MCPサーバーに転送します。予約や決済のツールはありません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-flightdata": {
"command": "npx",
"args": [
"-y",
"@reneturcios/flightdata"
]
}
}
}
起動コマンドnpx -y @reneturcios/flightdata

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@reneturcios/flightdata0.1.0
ocighcr.io/cloudcorprecords/flightdata:0.1.0

ツール

1

掲載時のツール一覧 · 2 日前に更新

パラメーター型必須説明
glstringいいえ検索対象を限定する国の 2 文字の国コードです。ドキュメントに記載された値を正確に 1 つ指定してください(245 種類に対応)。例:`ac`、`af`。
hlstringいいえ検索に使用する言語の 2 文字コードです。ドキュメントに記載された値(159 種類)のいずれかを正確に指定してください。例:`af`、`ak`。
bagsnumberいいえ乗客 1 人あたりの機内持ち込み手荷物の数。
typeenumいいえフライトの種類を指定します。選択肢: - `roundTrip`(デフォルト) - `oneWay` - `multiCity`(フライトの詳細には `multiCityJson` が必要です) 往復便の場合は、別のリクエストで `departureToken` を使用して復路便の詳細を取得します。roundTrip | oneWay | multiCity
stopsenumいいえフライト旅程の乗り継ぎ回数を制限します。nonStop | oneStopOrFewer | twoStopsOrFewer
adultsnumberいいえ大人の乗客数(指定する場合は >= 1)。
sortByenumいいえ価格、出発時刻、到着時刻などに基づいてフライト結果を並べ替えます。topFlights | price | departureTime | arrivalTime | duration | emissions
childrennumberいいえ子どもの乗客数。
currencystringいいえ返される価格の通貨を指定します。ドキュメントに記載された値を正確に 1 つ指定してください(71 個から選択)。例:`ALL`、`DZD`。
maxPricenumberいいえフライト検索の最高価格制限。選択した通貨で指定します。
arrivalIdstringはい到着空港コード(IATA)または場所の kgmid を指定します。 - **IATA Code**:3 文字の大文字コードです(例:`SFO`、`LHR`)。[IATA](https://www.iata.org/en/publications/directories/code-search) で検索してください。 - **Location kgmid**:`/m/` で始まる文字列です。Wikidata の「Freebase ID」にあります(例:ニューヨーク州ニューヨーク市は `/m/02_286`)。 複数の値はカンマで区切ることができます(例:`JFK,LGA,/m/0hptm`)。
deepSearchbooleanいいえ詳細検索を有効にします。ブラウザー版 Google Flights と同じ結果を返しますが、応答に時間がかかります。デフォルトは `false` です。
returnDatestringいいえ復路の日付を 'yyyy-MM-dd' 形式で指定します。**type** が `roundTrip` の場合は必須です。
showHiddenbooleanいいえ結果に非表示のオプションを含めるかどうかを指定します。
departureIdstringはい出発空港コード(IATA)または場所の kgmid を指定します。 - **IATA Code**:3 文字の大文字コードです(例:サンフランシスコの SFO、ロンドン・ヒースロー空港の LHR)。[IATA](https://www.iata.org/en/publications/directories/code-search) で検索してください。 - **Location kgmid**:`/m/` で始まる文字列です。Wikidata の「Freebase ID」にあります(例:ニューヨーク州ニューヨーク市は `/m/02_286`)。 複数の値はカンマで区切ることができます(例:`JFK,LGA,/m/0hptm`)。
maxDurationnumberいいえフライトの合計所要時間の上限(分)。
returnTimesstringいいえ復路便を絞り込むため、最大 4 つの時間境界(出発用 2 つ、到着用 2 つ)を設定します。各数値は時間の開始を表します。 例: - `6,20` → 出発時刻:午前 6:00~午後 9:00 - `1,15` → 出発時刻:午前 1:00~午後 4:00 - `7,18,2,21` → 出発時刻:午前 7:00~午後 9:00、到着時刻:午前 2:00~午後 10:00
travelClassenumいいえフライトの座席クラス(エコノミー、プレミアムエコノミー、ビジネス、ファースト)。economy | premiumEconomy | business | first
bookingTokenstringいいえ選択したフライトの予約オプションをリクエストするために使用します。このトークンはフライト結果に含まれ、`departureToken` とは併用できません。
infantsOnLapnumberいいえ大人の膝の上に座る幼児の人数。
outboundDatestringはい出発日を 'yyyy-MM-dd' 形式で指定します。
infantsInSeatnumberいいえ座席を使用する幼児の人数。
lessEmissionsbooleanいいえ二酸化炭素排出量の少ないフライトを優先します。
multiCityJsonstringいいえこのパラメーターでは、複数都市の旅行のフライト詳細を指定します。複数のフライトオブジェクトを含む JSON 文字列です。各オブジェクトには次のフィールドが必要です。 - **departureId** – 出発空港コードまたは場所の KGMID。メインの `departureId` パラメーターと同じ形式を使用します。 - **arrivalId** – 到着空港コードまたは場所の KGMID。メインの `arrivalId` パラメーターと同じ形式を使用します。 - **date** – フライトの日付。`outboundDate` パラメーターと同じ形式を使用します。 - **times**(任意)– フライトの時間範囲。`outboundTimes` パラメーターと同じ形式を使用します。
outboundTimesstringいいえフライトを絞り込むため、最大 4 つの時間境界(出発用 2 つ、到着用 2 つ)を設定します。各数値は時間の開始を表します。 例: - `6,20` → 出発時刻:午前 6:00~午後 9:00 - `1,15` → 出発時刻:午前 1:00~午後 4:00 - `7,18,2,21` → 出発時刻:午前 7:00~午後 9:00、到着時刻:午前 2:00~午後 10:00
departureTokenstringいいえフライトを選択し、往復旅行の復路便または複数都市旅行の次の区間を取得するために使用します。
excludeAirlinesstringいいえ結果から除外する航空会社コードをカンマ区切りで指定します。[IATA](https://www.iata.org/en/publications/directories/code-search) で航空会社コードを検索できます。たとえば、`UA` は United Airlines です。
includeAirlinesstringいいえ結果に含める航空会社コードをカンマ区切りで指定します。[IATA](https://www.iata.org/en/publications/directories/code-search) で航空会社コードを検索できます。たとえば、`UA` は United Airlines です。 `excludeAirlines` と `includeAirlines` パラメーターは同時に使用できません。
layoverDurationstringいいえフライトを絞り込むため、乗り継ぎ時間の範囲を分単位で設定します。たとえば、`120, 360` は乗り継ぎ時間が 2~6 時間のフライトを絞り込み、`45, 180` は 45 分~3 時間の乗り継ぎを許可します。
excludeConnectionsstringいいえ乗り継ぎ空港から除外する特定の空港をカンマ区切りで指定します。
includeConnectionsstringいいえ乗り継ぎ空港として許可する特定の空港をカンマ区切りで指定します。

詳細

flightdata

flightdata は、ホスト型の HasData Google Flights MCP サーバーへの小規模なローカルブリッジです。このサーバーは Google Flights の検索結果を JSON として返します。出発地、目的地、往路の日付を指定すると、条件に合う旅程を取得します。各オプションの料金、合計所要時間と乗り継ぎ回数、航空会社、便名、機材、空港、時刻を含む各フライト区間、CO2 排出量のほか、選択した旅程について後から問い合わせるために上流サーバーが発行する予約トークンと出発トークンも取得します。

検索対象は片道、往復、複数都市の旅行です。乗客の構成(大人、子ども、座席を使用する幼児、膝上の幼児)、旅行クラス、機内持ち込み手荷物、上限料金、並べ替え順(料金、所要時間、排出量、出発時刻、到着時刻)、乗り継ぎ回数の上限、航空会社や乗り継ぎ地点の指定・除外、出発と帰路の時間帯、乗り継ぎ時間の範囲、合計所要時間の上限、排出量の優先設定、詳細検索モードで条件を指定できます。

このブリッジは独自の運賃データを保存しません。上流サーバーのツール一覧を、稼働中のエンドポイントから取得した内容そのままローカルで提供し、各ツール呼び出しを上流に転送して、結果を変更せずに返します。取得した機能は読み取り専用の運賃検索のみです。予約、座席確保、発券、支払いのツールはありません。

ツール

  • hasdata_google_travel_flights_getGoogleFlights — Google Flights を検索します。必須項目:departureId (IATA コードまたは場所の kgmid。カンマ区切りで 複数指定できます)、arrivalId(同じ形式)、 outboundDate(yyyy-MM-dd)。任意項目: returnDate、type(roundTrip / oneWay / multiCity)、multiCityJson、gl、hl、 currency、travelClass(economy / premiumEconomy / business / first)、 showHidden、adults、children、 infantsInSeat、infantsOnLap、sortBy (topFlights / price / departureTime / arrivalTime / duration / emissions)、 stops(nonStop / oneStopOrFewer / twoStopsOrFewer)、excludeAirlines、 includeAirlines、bags、maxPrice、 outboundTimes、returnTimes、lessEmissions、 layoverDuration、includeConnections、 excludeConnections、maxDuration、deepSearch、 departureToken、bookingToken。旅程ごとの料金、 所要時間、乗り継ぎ回数とフライト区間、 排出量、予約トークンと出発トークンを返します。

設定

  • HASDATA_GOOGLE_FLIGHTS_MCP_URL(任意)— 上流エンドポイントを上書きします。既定値は https://mcp.hasdata.com/mcp?apis=google_travel_flights です。 (この上書き用フックは、この再構築で独自に追加したものとして明示しています。)
  • HASDATA_API_KEY(任意)— 設定すると、すべての 上流リクエストに呼び出し元自身の HasData API キーを指定する x-api-key: <key> ヘッダーを付加します。未設定の場合、 キーのヘッダーは送信されません。(ヘッダー名と環境変数名は元の レジストリレコードで特定されています。この環境変数からキーを 転送する動作は、再構築で独自に追加したものとして明示しています。 元の機能はキーなしで取得されました。)
転送の仕組み

最初のツール呼び出し時に、クライアントは上流とのストリーミング可能な HTTP セッションを開きます。まず JSON-RPC の initialize リクエスト(protocolVersion 2025-03-26、 clientInfo name flightdata)を送り、次に notifications/initialized 通知を送り、その後、呼び出し元の引数を 変更せずに格納した tools/call リクエストを送ります。上流が initialize に Mcp-Session-Id ヘッダーを付けて応答した場合、 その値はセッションの後続のすべてのリクエストに付加され、 プロセスの終了まで同じセッションが再利用されます。応答は 通常の JSON またはサーバー送信イベントで届く場合があり、どちらも読み取ります。

上流からの正常な結果は、上流が設定した isError フラグも含め、 そのまま返されます。失敗(JSON-RPC エラー、2xx 以外のステータス、 読み取り不能な応答、または完了できないリクエスト)は、 テキストが flightdata error: で始まる isError 結果として返されます (このエラーの表示方法は、この再構築で独自に追加したものとして明示しています)。

CLI

このツールは、1つの JSON 引数文字列を受け取るサブコマンドでもあります。

npx @reneturcios/flightdata hasdata_google_travel_flights_getGoogleFlights '{"departureId":"SFO","arrivalId":"LHR","outboundDate":"2026-12-01","type":"oneWay","travelClass":"economy","stops":"nonStop"}'
npx @reneturcios/flightdata --version

終了コード:成功時は 0、結果が isError の場合は 1、使用方法に誤りがある場合は 2 です。

MCP サーバー

npx -y @reneturcios/flightdata mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "flightdata": {
      "command": "npx",
      "args": ["-y", "@reneturcios/flightdata", "mcp"]
    }
  }
}

Docker

docker run -i ghcr.io/cloudcorprecords/flightdata
docker run --rm ghcr.io/cloudcorprecords/flightdata --version

コンテナのデフォルトコマンドは mcp なので、最初の形式は stdio MCP サーバーとして動作し、それ以外の引数は通常どおり CLI に渡されます。

開発

npm install
npm run build
npm test
npm run dev

テストスイートは、スタブ化された JSON-RPC アップストリームのみを使用して実行され、実際のネットワーク呼び出しは行いません。

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。