mcpField
A
AENA Flights MCP

AENA Flights MCP

ローカル
github.com地図・旅行211 週間前に更新

AENA Flights MCP について

AENA Flights MCPは、スペインにあるAENA運営の50空港のリアルタイム運航情報を、到着・出発や個別便を調べる旅行者やエージェントに提供します。AENAの公開APIとOAuth2 REST APIを、共通のツール群にまとめています。

主な機能

  1. 01空港の到着便・出発便検索
  2. 02個別便の照会
  3. 03AENA空港とコードの一覧
  4. 04便・日付・現地時刻での絞り込み
  5. 052種類のAPIデータの形式統一

活用シーン

  1. 01時間帯を指定した空港出発便の確認
  2. 02指定日の特定都市からの到着便検索
  3. 03便の状況と搭乗ゲートの確認
  4. 04地域内のAENA空港の閲覧

MCP 対応

MCPサーバーは、MCPクライアントにフライト検索、個別便照会、空港一覧のツールを提供します。AENAの公開ウェブAPIまたはOAuth2 REST APIを使い、データソースの自動選択や指定ができます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"mrgo2-aena": {
"command": "npx",
"args": [
"-y",
"mcp-aena"
],
"env": {
"AENA_CLIENT_SECRET": "<AENA_CLIENT_SECRET>",
"AENA_CLIENT_ID": "<AENA_CLIENT_ID>",
"AENA_TENANT_ID": "<AENA_TENANT_ID>"
}
}
}
}
起動コマンドnpx -y mcp-aena
設定が必要な環境変数
AENA_CLIENT_SECRETシークレットOAuth2 client secret for the REST API. Omit for website-only mode (still fully functional for discovery).
AENA_CLIENT_IDOAuth2 client id. Has a working default.
AENA_TENANT_IDAzure AD tenant id. Has a working default.

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

パッケージ
npmmcp-aena0.1.3

ツール

3

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

パラメーター型必須説明
datestringいいえこの現地日付の便のみ(YYYY-MM-DD)。fromLocal/toLocal が設定されている場合、デフォルトは今日です。
sourceenumいいえauto | website | rest
airportstringはい空港の IATA コード。例:MAD、BCN、SCQ
toLocalstringいいえこの現地時刻(HH:MM)以前に出発予定のフライトのみ。例:午後なら 20:00
directionenumはいarrivals | departures
fromLocalstringいいえこの現地時刻(HH:MM)以降に出発予定のフライトのみ。例:午後なら 12:00
hoursBacknumberいいえREST の対象期間:過去にさかのぼる時間数
flightNumberstringいいえクライアント側で絞り込みます。例:IB0459、UX7235
hoursForwardnumberいいえREST の対象期間:今後の時間数
collapseCodesharesbooleanいいえ同一フライトのコードシェア便を 1 件にまとめます(デフォルトは true)

詳細

✈️ AENA Flights MCP

CI npm License: MIT

Español: README.es.md

AENAが運営するスペインの50空港のリアルタイムフライトデータを、MCP サーバーとして提供します。Claudeに「今日の午後、サンティアゴ発の便は?」や「IB0459は遅れていますか?」と尋ねると、時刻、ゲート、ターミナル、機材、運航状況、コードシェアなど、実際の空港データをもとに回答します。

AENAの2種類のフライトAPIを、使いやすい一連のツールで利用できるようにします。エージェントがフライトを照会すると、どちらのAPIが回答した場合でも同じ形式のフライト情報が返されます。

🚀 インストール不要で30秒で使えます

サーバーは https://aena-mcp.carlos-ls.workers.dev/mcp で公開されています。ワンクリックでClaudeに追加できます。

➕ Claudeに追加

リンクを開くと、コネクターの情報が入力された状態でclaude.aiが表示されます。あとは確認するだけです。Freeを含むすべてのプランで利用でき、追加後はスマートフォンを含むClaudeアプリでも使えます。アカウントやAPIキーは不要で、設定も必要ありません。

手動で追加する場合は、Claude → Settings → Connectors → Add custom connectorを開き、名前に AENA Flights と入力して、上記のURLを貼り付けます。

🤖 ChatGPTでも利用できます

ChatGPTにはワンクリックで追加するリンクはありませんが、同じサーバーを利用できます(Plus、Pro、Businessプランのみ。ウェブ版のみ)。

  1. Settings → Apps → Advanced settingsを開き、Developer modeを有効にします
  2. Appsパネルで**+**を押し、URL https://aena-mcp.carlos-ls.workers.dev/mcp を指定してサーバーを追加します。認証は不要です

💬 質問の例

  • 🛫 「16:00から18:00までのMAD発の便」
  • 🛬 「明日の午後、ロンドンからBCNに到着する便は?」
  • 🔍 「現在、UX7235便はどこにいますか?ゲートはどこですか?」
  • 🏝️ 「カナリア諸島にあるAENAの空港をすべて一覧表示して」

🖥️ ほかの実行方法

方法対象セットアップ
☁️ リモートコネクター(上記)iPhoneを含むすべてのユーザーワンクリック
📦 デスクトップ拡張機能Claude Desktop最新リリースからaena-mcp.mcpbをダウンロードし、ダブルクリック
🟩 npmClaude Code、Cursor、あらゆるMCPクライアントnpx mcp-aena
🔧 ソースから実行開発者以下を参照

npmベースのクライアント向け設定:

{
  "mcpServers": {
    "aena": {
      "command": "npx",
      "args": ["-y", "mcp-aena"]
    }
  }
}

Claude Codeでは、コマンドを1つ実行するだけです。

claude mcp add aena -- npx -y mcp-aena

🧰 ツール

  • search_flights — 空港の到着便または出発便を検索します。便名、日付、または現地時刻の範囲(午後の場合は fromLocal 12:00、toLocal 20:00)で絞り込めます。同じ実便のコードシェア便は1件にまとめられ、出力される時刻はすべてマドリードの現地時刻です。
  • get_flight — 空港の便名を指定して、1便の情報を取得します。
  • list_airports — IATA/ICAOコードを含むAENAの全空港を、リアルタイムで取得します。

🔀 APIが2種類ある理由

AENAはフライト情報を取得する方法を2種類公開しており、それぞれがもう一方の不足を補います。

  • 🌐 ウェブサイトAPIは公開されており、認証情報は不要です。およそ14日先までの情報を取得できますが、過去のデータはありません。フライトの検索に適しています。
  • 🔐 REST APIはOAuth2を使用し、クライアントシークレットが必要です。過去約54時間から24時間先までの情報を取得でき、コードシェア便の実際の運航便もわかります。運航状況の追跡に適しています。

サーバーが適切なAPIを自動で選択します(source: "auto")。また、どちらかを指定することもできます。シークレットがなくてもウェブサイトAPIのみのモードで動作するため、引き続き利用できます。公開リモートサーバーでは、REST APIを利用するための設定がすでに完了しています。

🛠️ ソースから

pnpm install
pnpm build      # tsc → dist/
pnpm test       # unit tests over captured fixtures, no network, no credentials
pnpm inspect    # drive a live stdio session with the MCP inspector

.env.example を .env にコピーします。ウェブサイト API には何も必要ありません。REST API では AENA_CLIENT_SECRET を設定します。AENA_CLIENT_ID と AENA_TENANT_ID には動作するデフォルト値がすでに設定されています。

公開リモートサーバーは worker/ にあります(Cloudflare Workers、Streamable HTTP、認証なし)。独自にホストするには、次の手順に従います。

cd worker
pnpm install
npx wrangler deploy
npx wrangler secret put AENA_CLIENT_SECRET   # optional, enables the REST source

解析処理は純粋なノーマライザー(normalizeWebsiteRow、normalizeRestRow)に実装されているため、実際の API 呼び出しなしでマッピングをテストできます。CONTRIBUTING.md を参照してください。

CI では Node 20 と 22 でテストを実行し、MCP Inspector によるスモークテストも実施します。タグ付きのプッシュ(v*)を行うと、npm と MCP Registry に公開され(OIDC の信頼済み公開を使用)、GitHub リリースに .mcpb バンドルが添付されます。

📝 データに関する注意事項

  • REST API では到着便は "A" ですが、ウェブサイト API では "L" です。サーバー側でこの違いを吸収します。
  • REST の airlineIATA フィールドには、実際には ICAO コードが格納されています。サーバーは両方に対応します。
  • 便名はデータソースによって異なります。REST API では ICAO コード(VLG1674)、ウェブサイトでは IATA コード(VY1674)で便が識別されます。
  • どちらの API もサーバー側で便名による絞り込みを行わないため、空港全体のデータを取得してからローカルで絞り込みます。
  • どちらの API からも実際の離陸時刻や着陸時刻は取得できず、予定時刻と推定時刻のみ取得できます。車輪が地面を離れた時刻と接地した時刻を知るには、FlightRadar24 のような情報源が必要です。

📄 ライセンス

MIT

コメント

MCP は初めてですか?

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

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