The author's warning is unusually specific about the failure mode that matters here — not just that data can be stale, but that the model reading it can misstate a critical detail — and asks that this be used as a supplementary reference alongside an official briefing. Taken on those terms it is a clean, credential-free way to pull observations and forecasts into a conversation, with a client generated from the API's own definition rather than transcribed.
An MCP server over the Aviation Weather API, with a typed client generated from that API's own Swagger definition at build time rather than hand-written. It fetches observations, forecasts and pilot reports for airports and routes.
- `get-metar` — current weather observations for an airport
- `get-taf` — terminal aerodrome forecasts
- `get-pireps` — pilot reports near an airport
- `get-route-weather` — combined weather for a route between two airports
- A client generated from the official Swagger definition, so the request and response shapes track the API rather than a snapshot of it
No account and no key — aviationweather.gov is the data source. Node.js 18 or higher, npm, and `curl` for fetching the Swagger definition. Clone, `npm install`, then `npm run build`, which fetches the latest Swagger definition, generates the typed client and compiles the TypeScript; `npm start` runs the server. Point your client at the built entry point. **Read the author's disclaimer before using it for anything**: this is not FAA-approved, is not a replacement for certified weather services, and should never be the sole source for flight planning or in-flight decisions — weather data may be incomplete or delayed, and a model interpreting it may misrepresent something critical. Always obtain a proper briefing from an authorized provider. MIT licensed.
