@cyanheads/aviation-weather-mcp-server
公開ホスト型サーバー: https://aviation-weather.caseyjhand.com/mcp
ツール
航空気象をカバーする5つのツール — 地点検索、現在の観測、空港予報、パイロットレポート、有効なアドバイザリー:
ツール | 説明 |
| ICAO ID、バウンディングボックス、または米国の州で空港と気象観測地点を解決します。ICAO/IATA/FAA ID、座標、標高、利用可能なデータ種別を返します。 |
| 1つ以上の空港の現在の気象観測(METAR)を取得します。解読された風、視程、シーリング、現在天気、気温/露点、高度計、雲層、飛行カテゴリー(VFR/MVFR/IFR/LIFR)、および生の METAR 文字列を返します。 |
| 1つ以上の空港のターミナル飛行場予報を取得します。各予報期間について、有効時間、地表風、低層ウインドシア、視程、解読された天気、雲層、予報の遮蔽状態への垂直視程、および生の TAF 文字列を返します。 |
| 空港の近くまたはバウンディングボックス内の最近のパイロットレポートを取得します。解読された乱気流、着氷、雲のレポートを高度、航空機の種類、強度、および生の PIREP 文字列とともに返します。 |
| 地域のアクティブな国内 SIGMET を取得します。ハザードタイプ(CONVECTIVE、TURBULENCE、ICING、IFR)、重大度、高度範囲、有効期間、ポリゴン座標、および生のテキストを返します。 |
aviation_find_stations
複数の検索モードで気象観測地点を解決・発見します。
4文字の ICAO ID で1つ以上の観測地点を検索(1回の呼び出しで最大20 ID)— 検索は ICAO のみですが、各返却レコードには利用可能な場合 IATA/FAA の別名が含まれます
地理的なバウンディングボックス内のすべての観測地点を発見
2文字の USPS コードで米国50州または DC の観測地点を一覧表示(bbox + クライアント側の州フィルターを使用)
data_types(METAR、TAF など)を返すため、エージェントはクエリ前に利用可能なものを確認できますすべての結果は、上流の400行の上限が結果を切り詰めたかどうかを示すため、切り詰められた描画がその地域のすべての観測地点と誤解されることはありません — 上限に達した州クエリは、州フィルター前の行数も報告し、より小さい
bboxが指定されたレバーです
aviation_get_metar
現在または最近の METAR 観測を取得します(1回の呼び出しで1〜10観測地点)。
hoursパラメータ(1〜12)は観測地点ごとの観測履歴を返します。デフォルトの1は最新のみを返します飛行カテゴリー(VFR/MVFR/IFR/LIFR)は AWC API から直接返されます — クライアント側の計算は不要です
雲層、風(ガストを含む)、視程、現在の天気(生のグループと平易な英語、グループごとに1つの読み取り)を、生の METAR 文字列に加えて解読します
シーリングは、切れ間、曇り、遮蔽層をカバーし、高度が測定されたか、不定のシーリングであるかを報告します — 遮蔽への垂直視程
METAR タイプフィールドは、
METAR(定期)とSPECI(重大な気象変化によって引き起こされる特別観測)を区別します各バッチは、要求された観測地点のうちどれが返されたかを報告するため、部分的な結果が完全なカバレッジと誤解されることはありません — 欠落した ID は回復ガイダンスとともに名前が付けられます
Related MCP server: mcp-metar
aviation_get_taf
1〜4の空港のターミナル飛行場予報を取得します。
変更タイプ(
FM、TEMPO、BECMG)と確率を持つ構造化された予報期間を返します予報天気は、生のグループの横にグループごとに解読されます(
-SHRA BR→小雨のシャワー; もや)、aviation_get_metarが返すのと同じ形です予報の遮蔽状態はその層を保持し、それらへの垂直視程を運びます(
VV002→ 200フィートの不定シーリング)、晴れた空として読むのではなく低レベルウインドシェア(
WS020/20040KT)は、シア層の上部とその高度での予報風に解読されますvalid_from/valid_toは ISO 8601 で、簡単な時間比較が可能です各バッチは、要求された観測地点のうちどれが返されたかを報告するため、部分的な結果が完全なカバレッジと誤解されることはありません — 欠落した ID は回復ガイダンスとともに指定されます
aviation_get_pireps
観測地点+半径またはバウンディングボックスで最近のパイロットレポートを検索します。
station_id+distance_nm(10〜500 nm、省略時は100)で空港周辺の放射状検索bboxで地理的エリア検索 — 航路コリドーのチェックに便利です。distance_nmはここでは意味がなく、それと一緒に拒否されますaltitude_min_ft/altitude_max_ftフィルターで巡航高度のレポートを分離します。どちらか一方のみ、または両方(最小は最大を超えてはなりません)乱気流と着氷の配列には、レポートごとに最大2つの層が含まれます(API が報告する通り)
すべての結果は、上流の400行の上限が結果を切ったかどうかを示し、
bbox、distance_nm、hoursを、上限が適用される前にクエリを絞り込むレバーとして指定します — 高度フィルターはその後に実行され、ドロップされたレポートを回復できません注: PIREP がないことは、穏やかな状態を意味しません — それらは本質的にまばらです
aviation_get_advisories
現在アクティブな国内 SIGMET を一覧表示します。
advisory_typeフィルター:sigmetまたはall(デフォルト)— 両方ともアクティブな SIGMET セットを返しますhazardフィルター:CONVECTIVE、TURBULENCE、ICING、IFRbboxフィルターはクライアント側で適用されます(AWC API はすべてのアクティブなアドバイザリーを返します。ツールはポリゴンオーバーラップでフィルターします)AIRMET は提供されません。上流のフィードは国内 SIGMET のみを運ぶため、
advisory_type: airmetとMTN OBSCN、SURFACE WIND、LLWSのハザードは、SIGMET や空の配列で答えるのではなく、ガイダンスとともに拒否されます好天期間中は、SIGMET がアクティブでない場合があります — 空の結果はエラーではなく有効な状態です
プロンプト
タイプ | 名前 | 説明 |
プロンプト |
| 1つ以上の空港のプリフライト気象ブリーフィングを構造化します。LLM に |
すべてのリソースデータはツール経由で到達可能です。このサーバーにはリソースがありません — すべての航空気象データは時間に敏感であり(METAR は約1時間有効、アドバイザリーは数分から数時間)、安定した URI リソースには適していません。
機能
@cyanheads/mcp-ts-core 上に構築:
宣言的なツールとプロンプトの定義 — プリミティブごとに単一のファイル、フレームワークが登録と検証を処理
統一されたエラー処理 — ハンドラーがスローし、フレームワークがキャッチ、分類、フォーマット
プラグ可能な認証:
none、jwt、oauthオプションの OpenTelemetry トレースを備えた構造化ログ
STDIO および Streamable HTTP トランスポート
航空気象固有:
キーレス — API キーや認証は不要。すべてのデータは公開 AWC Data API から
単一サービス(
aviation-weather-service)で、キーレス公開エンドポイントのリトライ + 指数バックオフ生のコード化文字列(
rawOb、rawTAF、rawAirSigmet)を解読されたフィールドと並べて表示し、エージェントが両方の層を持てるように州→bbox テーブルにより、AWC API がネイティブにサポートしない米国州の観測地点クエリを可能に
サーバーレベルの
instructionsフィールドは、「公式ブリーフィングではない」という安全免責事項をinitializeで全クライアントに表示
エージェントに優しい出力:
飛行カテゴリー(
VFR/MVFR/IFR/LIFR)を判別された文字列フィールドとして — エージェントはシーリング + 視程を解析せずに分岐できます型付き
reasonフィールドとrecoveryヒントを備えた構造化エラー契約(例: 「aviation_find_stationsで ICAO ID を確認してください」)aviation_preflight_briefプロンプトは、エージェントがステップを省略して頻繁に間違える正しい METAR → TAF → PIREPs → advisories のブリーフィングシーケンスをエンコードします
はじめに
公開ホスト型インスタンス
公開ホスト型インスタンスは https://aviation-weather.caseyjhand.com/mcp で利用できます。MCP クライアント設定に追加してください:
{
"mcpServers": {
"aviation-weather": {
"type": "streamable-http",
"url": "https://aviation-weather.caseyjhand.com/mcp"
}
}
}セルフホスト / ローカル
MCP クライアント設定ファイルに以下を追加してください。
{
"mcpServers": {
"aviation-weather": {
"type": "stdio",
"command": "bunx",
"args": ["@cyanheads/aviation-weather-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info"
}
}
}
}または npx を使用(Bun 不要):
{
"mcpServers": {
"aviation-weather": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@cyanheads/aviation-weather-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info"
}
}
}
}または Docker を使用:
{
"mcpServers": {
"aviation-weather": {
"type": "stdio",
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "MCP_TRANSPORT_TYPE=stdio",
"ghcr.io/cyanheads/aviation-weather-mcp-server:latest"
]
}
}
}Streamable HTTP の場合は、トランスポートを設定してサーバーを起動します:
MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http
# Server listens at http://localhost:3010/mcp前提条件
Bun v1.3.0 以上(または Node.js v24+)。
API キーは不要 — AWC Data API は完全に公開されており、キーは不要です。
インストール
リポジトリをクローン:
git clone https://github.com/cyanheads/aviation-weather-mcp-server.gitディレクトリに移動します:
cd aviation-weather-mcp-server依存関係をインストールします:
bun install環境を設定します:
cp .env.example .env
# edit .env if you need to override AWC_BASE_URL or AWC_TIMEOUT_MS設定
変数 | 説明 | デフォルト |
| NWS AWC Data API のベース URL。 |
|
| リクエストごとのタイムアウト(ミリ秒、1000〜60000)。 |
|
| トランスポート: |
|
| HTTP サーバーのポート。 |
|
| 認証モード: |
|
| ログレベル(RFC 5424)。 |
|
| OpenTelemetry 計装 を有効にします。 |
|
オプションの上書き設定の全一覧については、.env.example を参照してください。
サーバーの実行
ローカル開発
ビルドと実行:
bun run rebuild bun run start:stdio # or bun run start:httpチェックとテストの実行:
bun run devcheck # Lint, format, typecheck, security bun run test # Vitest test suite bun run lint:mcp # Validate MCP definitions against spec
Docker
docker build -t aviation-weather-mcp-server .
docker run --rm -p 3010:3010 aviation-weather-mcp-serverDockerfile はデフォルトで HTTP トランスポート、ステートレスセッションモードを使用し、ログは /var/log/aviation-weather-mcp-server に出力します。OpenTelemetry のピア依存関係はデフォルトでインストールされます。これらを除外するには、--build-arg OTEL_ENABLED=false を指定してビルドしてください。
プロジェクト構造
ディレクトリ | 目的 |
|
|
| サーバー固有の環境変数の解析( |
| AWC Data API クライアント — HTTP フェッチ、指数バックオフ付きリトライ、レスポンスの正規化。 |
| ツール定義( |
| プロンプト定義( |
|
|
開発ガイド
開発ガイドラインとアーキテクチャ上のルールについては、CLAUDE.md を参照してください。要約は以下のとおりです:
ハンドラーがスローし、フレームワークがキャッチする — ツールロジック内で
try/catchを使用しないリクエストスコープのロギングには
ctx.logを、テナントスコープのストレージにはctx.stateを使用する新しいツールとプロンプトは、
src/mcp-server/*/definitions/index.tsのバレルを介して登録する外部 API 呼び出しをラップする: 生データを検証 → ドメイン型に正規化 → 出力スキーマを返す。欠落フィールドを捏造しない
公式のプリフライトブリーフィングではありません。 AWC からのデータは情報提供のみを目的としています。実際のフライトプランニングには、認定された情報源(例: Leidos/1800wxbrief.com)が必要です。サーバーは、すべての
initializeで送信されるinstructionsフィールドを通じてこの免責事項を提示します。
コントリビューション
Issue とプルリクエストを歓迎します。提出前にチェックとテストを実行してください:
bun run devcheck
bun run testライセンス
Apache-2.0 — 詳細は LICENSE を参照してください。
This server cannot be deployed
Maintenance
Related MCP Connectors
Aviation Weather MCP — METAR, TAF, PIREPs, AIRMET/SIGMET, station info
Hosted MCP server for Xweather weather data: conditions, forecasts, alerts, and more.
FlightAware MCP — wraps FlightAware AeroAPI v4 (aeroapi.flightaware.com)
NOAA and ECMWF weather forecast MCP for discovery, validation, and GribStream OAuth queries.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides aviation weather information through a Model Context Protocol server, enabling access to METARs, TAFs, PIREPs, and route weather data for informational purposes only.2MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for fetching METAR and TAF aviation weather data for airports by ICAO code.13 PyPIMIT
- FlicenseNot gradedqualityDmaintenanceFetches and parses METAR/TAF aviation weather data from NOAA with caching and human-readable formatting.1-
- AlicenseNot gradedqualityCmaintenanceMCP server providing real-time aviation weather data (METAR, TAF, PIREPs, AIRMETs) from aviationweather.gov for flight planning and analysis.14 npmMIT