mcpField
A
Aviationstack Mcp

Aviationstack Mcp

ローカル
pypi.org地図・旅行27今日更新

Aviationstack Mcp について

Aviationstack MCP は、AviationStack API をラップして実時間および将来の航空便データを取得する MCP サーバーです。航空データをアプリケーションに組み込みたい開発者を想定しており、便、空港、航空会社などの参照データ向けツールを備えます。

主な機能

  1. 01便名、航空会社、日付による便の検索
  2. 02空港の到着・出発スケジュールの取得
  3. 03約12か月先までの将来便スケジュールの取得
  4. 04機種、航空機、国、都市の詳細情報のランダム取得
  5. 05空港、航空会社、航路、税金データの一覧表示

活用シーン

  1. 01特定便の現在の状況確認
  2. 02空港の将来の出発・到着スケジュールの取得
  3. 03日付指定による過去の便データの取得

MCP 対応

本プロジェクトは MCP サーバーであり、AviationStack の航空データ検索をツールとプロンプトとして MCP クライアントに公開します。また、サーバーのメタデータやツール入力例をリソースとして提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"aviationstack": {
"command": "uvx",
"args": [
"aviationstack-mcp"
],
"env": {
"AVIATION_STACK_API_KEY": "<AVIATION_STACK_API_KEY>"
}
}
}
}
起動コマンドuvx aviationstack-mcp
設定が必要な環境変数
AVIATION_STACK_API_KEYシークレット

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

パッケージ
pypiaviationstack-mcp

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Aviationstack MCP サーバー

このプロジェクトは、AviationStack API と連携するための一連のツールを提供する MCP(Model Context Protocol)サーバーです。リアルタイムおよび将来のフライトデータ、航空機や飛行機の詳細、空港・航空会社・路線・税金などの基本的な参照データを取得するエンドポイントを公開しており、航空データをアプリケーションに簡単に統合できます。

Aviationstack MCP サーバーは、アクセスしやすいよう、次のよく知られた MCP サーバーリポジトリにも掲載されています。

デモ

https://github.com/user-attachments/assets/9325fcce-8ecc-4b01-8923-4ccb2f6968f4

機能
  • フライト番号から単一のフライトを検索
  • 特定の航空会社のフライトを取得
  • 日付を指定して過去のフライトを取得
  • 空港の到着・出発スケジュールを取得
  • 将来のフライトスケジュールを取得(明日から約12か月先まで)
  • ランダムな航空機の機種を取得
  • ランダムな飛行機の詳細情報を取得
  • ランダムな国の詳細情報を取得
  • ランダムな都市の詳細情報を取得
  • 空港、航空会社、路線、税金を一覧表示

すべてのエンドポイントは MCP ツールとして実装されており、MCP 互換環境ですぐに使用できます。

すべてのツールは同じ JSON エンベロープを返します。成功時は {"ok": true, "count": N, "data": [...]} を返し、list_* ツールでは pagination ブロックが追加され、一致する結果がない場合は message が含まれます。失敗時は {"ok": false, "context": "...", "error": "..."} を返します。limit の上限は、1 回の呼び出しにつき100件です。

前提条件
  • Aviationstack API キー(Aviationstackから無料の API キーを取得できます)
  • Python 3.13 以降
  • uv パッケージマネージャーがインストールされていること
利用可能なツール
ツール説明パラメーター
get_flight_status(flight_iata: str, flight_date: str = "")IATA便名で、今日または指定日の便を1便検索します。- flight_iata:IATA便名(例:「AA100」)
- flight_date:省略可能な日付。形式は YYYY-MM-DD です
flights_with_airline(airline_name: str, number_of_flights: int, flight_status: str = "")特定の航空会社の運航中の便を取得します。- airline_name:航空会社名(例:「Delta Air Lines」)
- number_of_flights:取得する便数
- flight_status:省略可能なステータスフィルター:scheduled、active、landed、cancelled、incident、diverted
historical_flights_by_date(flight_date: str, number_of_flights: int, airline_iata: str = "", dep_iata: str = "", arr_iata: str = "")指定日の過去の便を取得します(Basicプラン以上)。- flight_date:日付。形式は YYYY-MM-DD です
- number_of_flights:取得する便数
- airline_iata:省略可能な航空会社IATAフィルター
- dep_iata:省略可能な出発空港IATAフィルター
- arr_iata:省略可能な到着空港IATAフィルター
flight_arrival_departure_schedule(airport_iata_code: str, schedule_type: str, airline_name: str, number_of_flights: int)指定した空港と航空会社の、今日の到着便または出発便の一覧を取得します。当日のみが対象です。- airport_iata_code:空港のIATAコード(例:「JFK」)
- schedule_type:「arrival」または「departure」
- airline_name:航空会社名
- number_of_flights:取得する便数
future_flights_arrival_departure_schedule(airport_iata_code: str, schedule_type: str, airline_iata: str, date: str, number_of_flights: int)指定した空港、航空会社、将来の日付の運航予定便を取得します。明日から約12か月先までが対象で、今後7日間も含まれます。- airport_iata_code :空港のIATAコード
- schedule_type:「arrival」または「departure」
- airline_iata:航空会社のIATAコード(例:Deltaの「DL」)
- date:日付。形式は YYYY-MM-DD で、明日から約12か月先までを指定できます
- number_of_flights:取得する便数
random_aircraft_type(number_of_aircraft: int)データセット内のランダムな位置から航空機の機種を取得します。- number_of_aircraft:取得する航空機の機種数
random_airplanes_detailed_info(number_of_airplanes: int)データセット内のランダムな位置から航空機の詳細情報を取得します。- number_of_airplanes:取得する航空機の数
random_countries_detailed_info(number_of_countries: int)データセット内のランダムな位置から国の詳細情報を取得します。- number_of_countries:取得する国の数
random_cities_detailed_info(number_of_cities: int)データセット内のランダムな位置から都市の詳細情報を取得します。- number_of_cities:取得する都市の数
list_airports(limit: int = 10, offset: int = 0, search: str = "")空港の一覧を取得します。- limit:取得する結果の数
- offset:ページネーションのオフセット
- search:省略可能な検索クエリ
list_airlines(limit: int = 10, offset: int = 0, search: str = "")航空会社の一覧を取得します。- limit:取得する結果の数
- offset:ページネーションのオフセット
- search:省略可能な検索クエリ
list_routes(limit: int = 10, offset: int = 0, airline_iata: str = "", dep_iata: str = "", arr_iata: str = "")路線の一覧を取得します。- limit:取得する結果の数
- offset:ページネーションのオフセット
- airline_iata:省略可能な航空会社IATAフィルター
- dep_iata:省略可能な出発空港IATAフィルター
- arr_iata:省略可能な到着空港IATAフィルター
list_taxes(limit: int = 10, offset: int = 0, search: str = "")航空税の一覧を取得します。- limit:取得する結果の数
- offset:ページネーションのオフセット
- search:省略可能な検索クエリ
プロンプト

サーバーには、モデルを適切なツールへ導く再利用可能なプロンプトが用意されています。

プロンプト引数目的
plan_flight_status_lookupflight_iata, flight_date特定の便を確認し、コードシェアについて説明します。
plan_airline_flight_lookupairline_name, number_of_flights航空会社の運航中の便を検索します。
plan_future_schedule_lookupairport_iata_code, date, schedule_type空港の将来のスケジュールを検索します。
plan_reference_data_lookupdata_type, search空港、航空会社、路線、または税金の参照データを調べます。
リソース
リソースURI内容
server_metadataaviationstack://meta/serverAPI のベース URL と、受け付ける API キーの環境変数です。
aviationstack_endpointsaviationstack://meta/endpoints各ツールが呼び出す Aviationstack のエンドポイントです。
tool_input_examplesaviationstack://examples/tool-input/{tool_name}指定したツールのサンプルペイロードです。
開発
  • サーバーの主要なロジックは src/aviationstack_mcp/server.py にあります。
  • すべての MCP ツールは、@mcp.tool() でデコレートされた Python 関数として定義されています。
  • 各ツールは、Pydantic モデルで入力を検証してから、対応する通常の関数を呼び出す薄いラッパーです。テストは通常の関数を対象とします。
  • サーバーは mcp.server.fastmcp の FastMCP クラスを使用します。mcp の依存関係は <2 に固定されています。2.x では FastMCP が MCPServer に改名されるためです。
  • ツールが例外を送出することはありません。すべての失敗は捕捉され、エラーエンベロープとして返されます。

CI で実行されるチェックをセットアップして実行します。

uv sync --all-groups

# Unit tests
uv run python -m unittest discover -s tests -v

# Lint, must stay at 10.00/10
uv run pylint $(git ls-files '*.py')

# Coverage
uv run coverage run --source=aviationstack_mcp -m unittest discover -s tests
uv run coverage report

.well-known/mcp/server-card.json は手作業で編集するのではなく、生成されます。ツール、プロンプト、またはリソースを変更した後は再生成してください。そうしないと CI が失敗します。

uv run python scripts/generate_server_card.py          # rewrite the card
uv run python scripts/generate_server_card.py --check  # what CI runs
MCP サーバーの設定

お使いの MCP クライアントにこのサーバーを追加するには、以下を MCP クライアントの設定ファイルに追加します。

  1. リポジトリをクローンせずに uvx を使用する(推奨)
{
  "mcpServers": {
    "Aviationstack MCP": {
      "command": "uvx",
      "args": [
        "aviationstack-mcp"
      ],
      "env": {
        "AVIATION_STACK_API_KEY": "<your-api-key>"
      }
    }
  }
}
  1. リポジトリをクローンしてサーバーをローカルで実行する
{
  "mcpServers": {
    "Aviationstack MCP": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/aviationstack-mcp/src/aviationstack_mcp",
        "run",
        "-m",
        "aviationstack_mcp",
        "mcp",
        "run"
      ],
      "env": {
        "AVIATION_STACK_API_KEY": "<your-api-key>"
      }
    }
  }
}

ライセンス

このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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