@cyanheads/aviation-weather-mcp-server
Öffentlich gehosteter Server: https://aviation-weather.caseyjhand.com/mcp
Tools
Fünf Tools für die Luftfahrtwetterlage — Stationssuche, aktuelle Beobachtungen, Terminal-Forecasts, Pilot Reports und aktive Warnungen:
Tool | Beschreibung |
| Flughäfen und Wetterstationen per ICAO-ID, Begrenzungsrahmen (Bounding Box) oder US-Bundesstaat auflösen. Liefert ICAO/IATA/FAA-IDs, Koordinaten, Höhe und verfügbare Datentypen. |
| Aktuelle Wetterbeobachtungen (METARs) für einen oder mehrere Flughäfen abrufen. Liefert dekodierten Wind, Sichtweite, Wolkendecke, aktuelles Wetter, Temperatur/Taupunkt, Höhenmesser, Wolkenschichten, Flugwetterkategorie (VFR/MVFR/IFR/LIFR) und den rohen METAR-String. |
| Terminal Aerodrome Forecasts für einen oder mehrere Flughäfen abrufen. Liefert jeden Vorhersagezeitraum mit Gültigkeitszeiten, Bodenwind, Low-Level-Windscherung, Sichtweite, dekodiertem Wetter, Wolkenschichten und vertikaler Sicht in eine Verdecke (Obscuration) sowie den rohen TAF-String. |
| Aktuelle Pilot Reports in der Nähe eines Flughafens oder innerhalb eines Begrenzungsrahmens abrufen. Liefert dekodierte Turbulenz-, Vereisungs- und Wolkenmeldungen mit Höhe, Luftfahrzeugtyp, Intensität und dem rohen PIREP-String. |
| Aktive nationale SIGMETs für eine Region abrufen. Liefert Gefahrentyp (CONVECTIVE, TURBULENCE, ICING, IFR), Schweregrad, Höhenbereich, Gültigkeitszeitraum, Polygondaten und Rohtext. |
aviation_find_stations
Wetterstationen über mehrere Suchmodi auflösen und entdecken.
Eine oder mehrere Stationen per 4-stelliger ICAO-ID nachschlagen (bis zu 20 IDs pro Aufruf) — die Suche erfolgt ausschließlich über ICAO, aber jeder zurückgegebene Datensatz enthält die IATA/FAA-Aliasse, sofern verfügbar
Alle Stationen innerhalb eines geografischen Begrenzungsrahmens entdecken
Stationen für einen der 50 US-Bundesstaaten oder DC über den zweistelligen USPS-Code auflisten (verwendet Bounding Box + clientseitigen Bundesstaaten-Filter)
Liefert
data_types(METAR, TAF, usw.), damit Agenten vor der Abfrage bestätigen können, was verfügbar istJedes Ergebnis gibt an, ob das vorgelagerte 400-Zeilen-Limit greift — so wird eine abgeschnittene Ausgabe nie mit allen Stationen in der Gegend verwechselt — eine abgeschnittene Bundesstaaten-Abfrage meldet außerdem die Zeilenanzahl vor dem Bundesstaaten-Filter, und eine kleinere
bboxist der genannte Hebel
aviation_get_metar
Aktuelle oder vergangene METAR-Beobachtungen abrufen (1–10 Stationen pro Aufruf).
Der Parameter
hours(1–12) liefert den Beobachtungsverlauf pro Station; Standardwert 1 liefert nur die aktuellsteDie Flugwetterkategorie (VFR/MVFR/IFR/LIFR) wird direkt von der AWC-API zurückgegeben — keine clientseitige Berechnung erforderlich
Dekodiert Wolkenschichten, Wind mit Böen, Sichtweite und aktuelles Wetter (die rohen Gruppen plus verständliches Englisch, eine Angabe pro Gruppe) zusätzlich zum rohen METAR-String
Die Wolkendecke umfasst gebrochene, bedeckte und verdeckende Schichten und gibt an, ob die Höhe gemessen wurde oder eine unbestimmte Decke ist — vertikale Sicht in eine Verdecke
Das METAR-Typfeld unterscheidet
METAR(Routine) vonSPECI(Sonderbeobachtung, ausgelöst durch signifikante Wetteränderung)Jeder Batch meldet, welche der angeforderten Stationen zurückkamen — so wird ein Teilergebnis nie mit vollständiger Abdeckung verwechselt — fehlende IDs werden mit Wiederherstellungshinweisen benannt
aviation_get_taf
Terminal Aerodrome Forecasts für 1–4 Flughäfen abrufen.
Liefert strukturierte Vorhersagezeiträume mit Änderungstypen (
FM,TEMPO,BECMG) und WahrscheinlichkeitenVorhergesagtes Wetter gruppenweise dekodiert neben den rohen Gruppen (
-SHRA BR→leichter Regenschauer; Dunst), in derselben Form wieaviation_get_metarVorhergesagte Verdeckungen behalten ihre Schicht und führen die vertikale Sicht in sie auf (
VV002→ eine unbestimmte Decke von 200 ft), statt als klarer Himmel zu erscheinenLow-Level-Windscherung (
WS020/20040KT) wird zur Obergrenze der Scherungsschicht und zum vorhergesagten Wind in dieser Höhe dekodiertvalid_from/valid_toim ISO-8601-Format für unkomplizierte ZeitvergleicheJeder Batch meldet, welche der angeforderten Stationen zurückkamen — so wird ein Teilergebnis nie mit vollständiger Abdeckung verwechselt — fehlende IDs werden mit Wiederherstellungshinweisen benannt
aviation_get_pireps
Nach aktuellen Pilot Reports per Station+Radius oder Begrenzungsrahmen suchen.
station_id+distance_nm(10–500 nm, 100 wenn weggelassen) für die Radialsuche um einen Flughafenbboxfür die Suche in einem geografischen Gebiet — nützlich für Streckenkorridor-Checks;distance_nmhat hier keine Bedeutung und wird zusammen mitbboxabgelehntaltitude_min_ft/altitude_max_ft-Filter, um Meldungen auf Reiseflughöhe zu isolieren, entweder einzeln oder beide (Minimum darf Maximum nicht überschreiten)Turbulenz- und Vereisungs-Arrays enthalten bis zu zwei Schichten pro Meldung (wie von der API gemeldet)
Jedes Ergebnis gibt an, ob das vorgelagerte 400-Zeilen-Limit greift, und nennt
bbox,distance_nmundhoursals Hebel, um eine Abfrage vor dem Limit einzugrenzen — der Höhenfilter greift erst danach und kann eine verworfenen Meldung nicht wiederherstellenHinweis: Das Fehlen von PIREPs bedeutet nicht automatisch ruhige Bedingungen — sie sind von Natur aus spärlich
aviation_get_advisories
Aktuell aktive nationale SIGMETs auflisten.
advisory_type-Filter:sigmetoderall(Standard) — beide liefern den aktiven SIGMET-Satzhazard-Filter:CONVECTIVE,TURBULENCE,ICING,IFRbbox-Filter wird clientseitig angewendet (die AWC-API liefert alle aktiven Warnungen; das Tool filtert nach Polygon-Überlappung)AIRMETs werden nicht bedient. Der vorgelagerte Feed enthält nur nationale SIGMETs, daher werden
advisory_type: airmetund die GefahrenMTN OBSCN,SURFACE WINDundLLWSmit Hinweisen abgelehnt, statt mit SIGMETs oder einem leeren Array beantwortetIn Schönwetterperioden sind möglicherweise keine SIGMETs aktiv — ein leeres Ergebnis ist ein gültiger Zustand, kein Fehler
Related MCP server: mcp-metar
Prompts
Typ | Name | Beschreibung |
Prompt |
| Strukturiert eine Preflight-Wetterbesprechung für einen oder mehrere Flughäfen. Führt das LLM dazu, |
Alle Ressourcendaten sind über Tools erreichbar. Dieser Server hat keine Ressourcen — alle Luftfahrtwetterdaten sind zeitkritisch (METARs ~1 Stunde gültig, Warnungen Minuten bis Stunden) und für stabile-URI-Ressourcen ungeeignet.
Funktionen
Basiert auf @cyanheads/mcp-ts-core:
Deklarative Tool- und Prompt-Definitionen — eine Datei pro Primitive, das Framework übernimmt Registrierung und Validierung
Vereinheitlichte Fehlerbehandlung — Handler werfen, das Framework fängt, klassifiziert und formatiert
Plug-in-fähige Authentifizierung:
none,jwt,oauthStrukturierte Protokollierung mit optionalem OpenTelemetry-Tracing
STDIO- und Streamable-HTTP-Transports
Luftfahrtspezifisch:
Schlüssellos — kein API-Schlüssel oder Authentifizierung erforderlich; alle Daten stammen aus der öffentlichen AWC-Data-API
Einzelner Dienst (
aviation-weather-service) mit Retry + exponentiellem Backoff für den schlüssellosen öffentlichen EndpunktRohe kodierte Strings (
rawOb,rawTAF,rawAirSigmet) werden neben dekodierten Feldern ausgegeben, sodass Agenten beide Ebenen habenDie Bundesstaaten→Bounding-Box-Tabelle ermöglicht US-Bundesstaaten-Stationsabfragen, die die AWC-API nativ nicht unterstützt
Das
instructions-Feld auf Serverebene zeigt allen Clients beiinitializeden Sicherheitshinweis „keine offizielle Besprechung" an
Agentenfreundliche Ausgabe:
Flugwetterkategorie (
VFR/MVFR/IFR/LIFR) als diskriminiertes String-Feld — Agenten können darauf verzweigen, ohne Wolkendecke + Sichtweite zu parsenStrukturierte Fehlerverträge mit typisierten
reason-Feldern undrecovery-Hinweisen (z. B. „ICAO-IDs mitaviation_find_stationsüberprüfen")Der Prompt
aviation_preflight_briefkodiert die korrekte METAR → TAF → PIREPs → Warnungen-Besprechungsreihenfolge, die Agenten häufig falsch ausführen, indem sie Schritte auslassen
Erste Schritte
Öffentlich gehostete Instanz
Eine öffentlich gehostete Instanz ist unter https://aviation-weather.caseyjhand.com/mcp verfügbar. Fügen Sie sie Ihrer MCP-Client-Konfiguration hinzu:
{
"mcpServers": {
"aviation-weather": {
"type": "streamable-http",
"url": "https://aviation-weather.caseyjhand.com/mcp"
}
}
}Selbst gehostet / lokal
Fügen Sie Folgendes zu Ihrer MCP-Client-Konfigurationsdatei hinzu.
{
"mcpServers": {
"aviation-weather": {
"type": "stdio",
"command": "bunx",
"args": ["@cyanheads/aviation-weather-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info"
}
}
}
}Oder mit npx (kein Bun erforderlich):
{
"mcpServers": {
"aviation-weather": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@cyanheads/aviation-weather-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info"
}
}
}
}Oder mit 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"
]
}
}
}Für Streamable HTTP setzen Sie den Transport und starten Sie den Server:
MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http
# Server listens at http://localhost:3010/mcpVoraussetzungen
Bun v1.3.0 oder höher (oder Node.js v24+).
Kein API-Schlüssel erforderlich — die AWC-Data-API ist vollständig öffentlich und schlüssellos.
Installation
Repository klonen:
git clone https://github.com/cyanheads/aviation-weather-mcp-server.gitIn das Verzeichnis wechseln:
cd aviation-weather-mcp-serverAbhängigkeiten installieren:
bun installUmgebung konfigurieren:
cp .env.example .env
# edit .env if you need to override AWC_BASE_URL or AWC_TIMEOUT_MSKonfiguration
Variable | Beschreibung | Standard |
| Basis-URL für die NWS AWC Data API. |
|
| Timeout pro Anfrage in Millisekunden (1000–60000). |
|
| Transport: |
|
| Port für den HTTP-Server. |
|
| Authentifizierungsmodus: |
|
| Log-Level (RFC 5424). |
|
| Aktiviert die OpenTelemetry-Instrumentierung. |
|
Siehe .env.example für die vollständige Liste optionaler Überschreibungen.
Server ausführen
Lokale Entwicklung
Erstellen und ausführen:
bun run rebuild bun run start:stdio # or bun run start:httpPrüfungen und Tests ausführen:
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-serverDas Dockerfile ist standardmäßig auf HTTP-Transport, zustandslosen Sitzungsmodus und Protokollierung in /var/log/aviation-weather-mcp-server ausgelegt. OpenTelemetry-Peer-Abhängigkeiten werden standardmäßig installiert — erstellen Sie das Image mit --build-arg OTEL_ENABLED=false, um sie wegzulassen.
Projektstruktur
Verzeichnis | Zweck |
|
|
| Serverspezifisches Parsen von Umgebungsvariablen ( |
| AWC-Data-API-Client — HTTP-Fetch, Wiederholung mit exponentiellem Backoff, Normalisierung der Antworten. |
| Tool-Definitionen ( |
| Prompt-Definitionen ( |
| Unit- und Integrationstests, die |
Entwicklungsleitfaden
Siehe CLAUDE.md für Entwicklungsrichtlinien und Architekturregeln. Die Kurzfassung:
Handler werfen, Framework fängt — kein
try/catchin der Tool-LogikVerwenden Sie
ctx.logfür anfragenbezogenes Logging,ctx.statefür mandantenbezogenen SpeicherRegistrieren Sie neue Tools und Prompts über die Barrel-Dateien in
src/mcp-server/*/definitions/index.tsKapseln Sie externe API-Aufrufe: validieren Sie Rohdaten → normalisieren Sie in den Domänentyp → geben Sie das Ausgabeschema zurück; erfinden Sie niemals fehlende Felder
Kein offizielles Preflight-Briefing. Daten der AWC sind rein informativ. Eine echte Flugplanung erfordert eine autorisierte Quelle (z. B. Leidos/1800wxbrief.com). Der Server zeigt diesen Haftungsausschluss über sein
instructions-Feld an, das bei jedeminitializegesendet wird.
Mitwirken
Issues und Pull Requests sind willkommen. Führen Sie vor dem Einreichen Prüfungen und Tests aus:
bun run devcheck
bun run testLizenz
Apache-2.0 — siehe LICENSE für Details.
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