Airports について
Airports は、AirportGap のライブ API と OurAirports のデータコピーを組み合わせ、旅行アプリや開発者向けに空港や関連施設を検索します。都市名や IATA コードでの検索に加え、滑走路、周波数、航法援助施設、さまざまな種類の飛行場の情報も扱います。
主な機能
- 01都市名や IATA コードで空港を検索
- 02空港間の大圏距離を計算
- 03複数のコード種別で飛行場を検索
- 04滑走路、周波数、航法援助施設を取得
- 05名称、国、種別で検索を絞り込み
活用シーン
- 01都市名やコードから空港を検索
- 022つの空港間の距離を計算
- 03空港の滑走路や無線周波数を確認
- 04ヘリポートや水上飛行場などを探す
MCP 対応
MCP サーバーとして、空港検索、コード照会、距離計算、滑走路・無線周波数・航法援助施設の照会ツールを提供します。Pipeworx ゲートウェイ経由で接続する方法と、ローカルの stdio で実行する方法があり、OurAirports のデータはゲートウェイ経由でのみ利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/airports/mcpclaude mcp add --transport http pipeworx-io-airports https://gateway.pipeworx.io/airports/mcp{"mcpServers":{"pipeworx-io-airports":{"type":"http","url":"https://gateway.pipeworx.io/airports/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-airports":{"type":"http","url":"https://gateway.pipeworx.io/airports/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-airports":{"type":"http","url":"https://gateway.pipeworx.io/airports/mcp"}}}{"mcpServers":{"pipeworx-io-airports":{"serverUrl":"https://gateway.pipeworx.io/airports/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
49| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| q | string | いいえ | question の別名。 |
| ask | string | いいえ | question の別名。 |
| text | string | いいえ | question の別名。 |
| input | string | いいえ | question の別名。 |
| packs | array | いいえ | 任意。ルーティング対象をこれらのパックスラッグに限定します(例:["sec-form-d","sec-13f"])。その場合、ルーターは該当パック内のツールのみを選択します。省略すると、デフォルトの全カタログへのルーティングになります。スラッグは list_packs / search_packs / https://pipeworx.io/directory から取得できます。リストにない、または不明なスラッグは無視され、_meta.pack_scope.ignored に記載されます。該当するスラッグが 1 つもない場合は、カタログ全体にルーティングし、_meta.pack_scope.full_catalog:true を設定します(空の回答にはなりません)。 |
| query | string | いいえ | question の別名。 |
| prompt | string | いいえ | question の別名。 |
| message | string | いいえ | question の別名。 |
| question | string | はい | 自然言語での質問またはリクエスト。query、q、prompt、text、input、ask、message をエイリアスとして使用できます。 |
詳細
@pipeworx/airports
2つのデータソースによる空港検索:
Pipeworx の一部です。AI エージェントを1872以上のライブデータソースに接続するMCPゲートウェイです。これは独立した非公式の連携であり、上流プロバイダーとは提携しておらず、同社の承認や公開を受けていません。
- AirportGap(ライブ、無料、キー不要)— 従来のツールです。OpenFlights由来の静的 スナップショットで、IATAコードと上位約150都市のみを対象としています。
- OurAirports(フリート #2977、D1コピー)— OurAirportsが追跡するすべての飛行場: ICAOコードのみの識別子、ヘリポート、水上機基地、気球発着場、閉鎖された飛行場を含む 約86,000行に加え、滑走路、無線周波数、航法援助施設の情報も含みます。
ツール
AirportGapを利用(上流からライブ取得)
search_airports(query)— バンドルされた都市名->IATAコードの対応表(上位約150のハブ)を使った都市名またはIATAコード検索です。get_airport(iata_code)— IATAコードで単一の空港を検索します。calculate_distance(from, to)— 2つのIATAコード間の大圏距離を計算します。
AirportGapのスナップショットにないIATAコード(例:2020年開港のBER)を指定すると、エラーではなくヒント付きでfound: falseを返します。これはデータセットの更新時期による既知の境界であり、サービス停止ではありません。
OurAirportsを利用(D1、パブリックドメイン)
ourairports_lookup(code)— ICAOコード、IATAコード、GPSコード、またはOurAirports独自のローカル/国内識別子(例:"00A"のような米国のローカルコードや、"AT-0001"のような米国以外の識別子)で、任意の飛行場を検索します。名称、種別(large_airport/medium_airport/small_airport/heliport/seaplane_base/balloonport/closed)、座標、標高、国/地域、および定期便の有無を返します。airport_runways(code)— 滑走路ごとの長さ/幅/路面/照明/閉鎖フラグに加え、両端の識別子、座標、標高、方位、変位進入端を返します。airport_frequencies(code)— 無線周波数(ATIS/TWR/GND/CLD/DIR/APP/DEP/CTAF/UNICOM/…)、説明、MHz単位の周波数を返します。airport_navaids(code)— 飛行場に関連付けられた航法援助施設(NDB/VOR/DME/VOR-DME/VORTAC/TACAN/…)について、識別子、名称、種別、kHz単位の周波数、座標、標高、DMEチャンネル、出力を返します。ourairports_search(query?, country?, type?, limit?, offset?)— 名称/自治体/識別子を対象にテキスト検索します。ISO国コードまたは飛行場種別で絞り込むこともできます。query/country/typeのいずれかが必須です。指定なしで呼び出すと、約86,000行の全表スキャンになってしまいます。limitのデフォルトは20(最大100)です。一致する行数が返却件数を超える場合、レスポンスにはtruncated: trueとtotal_matchingが含まれます。
OurAirportsを利用するすべてのツールでは、codeにICAO/IATA/GPS/ローカルコードを指定でき、決定的に解決されます。OurAirports独自の正規identがicao_codeより優先され、icao_codeはgps_codeより、gps_codeはiata_codeより優先されるため、列間でコードが衝突しても、誤った飛行場に解決されることはありません。認識されないコードは、明確なエラーを返して拒否され、空の結果として成功することはありません。コードがわからない場合は、まずourairports_searchで名称や都市から正しいコードを検索してください。子レコードが一致しない既知の飛行場(例:固定翼用滑走路のないヘリポート)の場合は、found: trueと説明のnoteを含む空の配列を返します。これは実際のデータであり、失敗ではありません。
認証
キーは不要です。OurAirportsを利用するツールはPipeworxゲートウェイ経由でのみ応答します。ゲートウェイにはD1コピーが保存されています。単独でnpm installしても参照するデータがないため、すべてのツールは空のリストを返すのではなく、「このランタイムではバインドされていません」という明確なエラーをスローします。
データソース
- AirportGap(airportgap.com)— 無料の公開 API で、認証は不要です。
- OurAirports — CSV の一括エクスポート
(davidmegginson.github.io/ourairports-data、ourairports.com 独自のデータを公開しているミラーサイト)。ourairports.com/data/ によると、「すべてのデータはパブリックドメインとして公開されており、正確性や用途への適合性は保証されません。」 サイトが公開しているのは一括ファイルのみ(ライブクエリ API はありません)なので、このパックではプロキシするのではなく、コピーを作成します(
scripts/ourairports/load-data.mjs)。6 つのファイル(空港、滑走路、空港周波数、航法援助施設、国、地域)はすべて全件読み込みます。OurAirports の規模では集計も行数上限の設定も必要ありません(最大のテーブルでも約 86,000 行です)。
更新
OurAirports は CSV を随時更新します(新しい空港の追加・変更、滑走路の編集、周波数の変更など)。更新するには:
CLOUDFLARE_ACCOUNT_ID=ecc092eba5c5bacef3ccff9f9d7a4d8d \
node scripts/ourairports/load-data.mjs \
--db pipeworx-ourairports --config workers/gateway/wrangler.toml
Pipeworx の Cloudflare アカウントに wrangler でログインしている必要があります。ローダーは 6 つの CSV をすべて新たにダウンロードし、すべてのテーブルを再構築します(DROP TABLE IF EXISTS + 再読み込み。OurAirports は既存の行を改訂し、追記だけではないためです)。テーブルごとに読み込んだ行数と解析した行数が一致するか確認し、不一致の場合はデータベースが不完全な状態で気付かれずに残るのではなく、明確にエラーで中断します(終了コードは 0 以外となり、「読み込み完了」とは表示されません)。まだ cron には設定されていないため、データが古くなったと感じたときに手動で実行してください(ourairports_lookup の data_as_of フィールドに最終読み込み時刻が記録されています)。
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します:
{
"mcpServers": {
"airports": {
"url": "https://gateway.pipeworx.io/airports/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/airports/mcp の tools/list は、上記の表にあるツールに加えて、共有 Pipeworx メタツール(ask_pipeworx、discover_tools、search_within、remember/recall など、ゲートウェイ全体で利用できるツール一式)を返します。そのため、表示されるツール数はこの表の数より多くなります。現在、単一パックのエンドポイントには、そのパック独自のツールとともに共有ツールが約 30 個表示されます。接続の initialize 応答に正確な範囲が記載されており、その日の情報として最も信頼できる回答です。
これは意図的な設計であり、偶然の多重化ではありません。メタツールを使うと、このパックでは対応できない質問にも ask_pipeworx 経由でカタログ全体を検索して回答できるため、MCP サーバーをもう 1 つ追加する必要がありません。現時点では、メタツールなしでパックのエンドポイントをマウントする方法はありません。追加のスキーマによるコンテキスト消費がルーティングの利点を上回る場合は、複数のパックエンドポイントではなく、フルゲートウェイに一度だけ接続してください。
または、Pipeworx のフルゲートウェイに接続すると、このパックだけでなく、すべてのパックのツールが直接表示されます:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
どちらの URL も、同じゲートウェイと同じ 1872 以上のデータソースに接続します。違いは、どのパックのツールが直接表示されるかだけです。どちらからでも ask_pipeworx を使ってすべてのツールにアクセスできます。
MCP クライアントがない場合は HTTP で呼び出す
curl -X POST https://gateway.pipeworx.io/v1/tools/search_airports \
-H 'Content-Type: application/json' \
-d '{"query":"New York"}'
最初の呼び出しにアカウントは不要です。任意のツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/search_airports を実行します。ツールを探すには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージは、ローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイとの往復通信も不要です:
{
"mcpServers": {
"airports": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-airports"]
}
}
}
または、起動することを確認するために、直接実行します:
npx -y @pipeworx/mcp-airports
stdin/stdout 経由で MCP を使用し、このパックのツールのみを対象に initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共有メタツールはありません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。
ask_pipeworx を使う
ツールを直接呼び出す代わりに、自然な英語で質問できます。これは、上記のパックエンドポイントでもフルゲートウェイでも利用できます:
ask_pipeworx({ question: "your question about Airports data" })
ゲートウェイが適切なツールを選び、引数を自動的に設定します。
詳細
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。