SkillAgentSearch skills...

aviation-weather-mcp-server

Fetch METARs, TAFs, PIREPs, domestic/international SIGMETs and CWAs from NWS AWC via MCP. AIRMETs not served. STDIO or Streamable HTTP.

Install / Use

claude mcp add cyanheads -- npx -y github:cyanheads/aviation-weather-mcp-server

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

83/100

Category

Marketing

Supported Platforms

Claude Code
Claude Desktop

Our assessment of aviation-weather-mcp-server

aviation-weather-mcp-server scores 83/100 on our quality scale, 458th of 576 Marketing skills we index.

Its MCP Server is 20 KB long, well organised into 26 sections with 11 code examples: a thorough specification that gives an agent plenty to work with.

It has 3 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
30/30
Structure
20/20
Description
15/15
Adoption
3/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated 12 days ago, so aviation-weather-mcp-server is actively maintained.
  • It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

aviation-weather-mcp-server compared with similar skills

All 4 of these similar skills score higher than aviation-weather-mcp-server; compare them before choosing.

SkillScoreStarsUpdatedFormat
aviation-weather-mcp-server (this skill)by cyanheads83312d agoMCP Server
Agent-Reachby Panniantong100106.9k6d agoCLAUDE.md
headroomby headroomlabs-ai10078.4ktodayCLAUDE.md
CowAgentby zhayujie10047.7k1d agoCLAUDE.md
Scraplingby D4Vinci10090.5k1d agoMCP Server

Frequently asked questions

How do I install aviation-weather-mcp-server?
Run claude mcp add cyanheads -- npx -y github:cyanheads/aviation-weather-mcp-server. The install tabs above show the steps for each supported agent.
Which AI agents does aviation-weather-mcp-server work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is aviation-weather-mcp-server safe to use?
It is Apache-2.0-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is aviation-weather-mcp-server still maintained?
The repository was last updated 12 days ago, so aviation-weather-mcp-server is actively maintained.
<div align="center"> <h1>@cyanheads/aviation-weather-mcp-server</h1> <p><b>Fetch METARs, TAFs, PIREPs, domestic/international SIGMETs and CWAs from NWS AWC via MCP. AIRMETs not served. STDIO or Streamable HTTP.</b> <div>5 Tools • 1 Prompt</div> </p> </div> <div align="center">

Version License Docker MCP SDK npm TypeScript Bun

</div> <div align="center">

Install in Claude Desktop Install in Cursor Install in VS Code

Framework

</div> <div align="center">

Public Hosted Server: https://aviation-weather.caseyjhand.com/mcp

</div>

Overview

Aviation weather from the NWS Aviation Weather Center — METARs, TAFs, PIREPs, domestic/international SIGMETs, and Center Weather Advisories. Look up stations, fetch current and forecast conditions, and pull pilot reports and hazard advisories. AIRMETs are not served.

Tools

| Tool | Description | |:-----|:------------| | aviation_find_stations | Resolve airports and weather stations by identifier, bounding box, or US state. Returns ICAO/IATA/FAA IDs, coordinates, elevation, and available data types. | | aviation_get_metar | Get current weather observations (METARs) for named airports, or survey every reporting station in a bounding box. Returns decoded wind, visibility, ceiling, present weather, temp/dewpoint, altimeter, cloud layers, flight category (VFR/MVFR/IFR/LIFR), and the raw METAR string. | | aviation_get_taf | Get Terminal Aerodrome Forecasts for one or more airports. Returns each forecast period with valid times, surface wind, low-level wind shear, visibility, decoded weather, cloud layers, and vertical visibility into a forecast obscuration, plus the raw TAF string. | | aviation_get_pireps | Get recent Pilot Reports near an airport or within a bounding box. Returns decoded turbulence, icing, and cloud reports with altitude, aircraft type, intensity, outside air temperature, wind aloft, flight weather, and the raw PIREP string. | | aviation_get_advisories | Get domestic/international SIGMETs and Center Weather Advisories. Returns source coverage, hazard, severity, altitude, validity, movement, multipart geometry and original bulletins; omitted facts stay null. |

Prompts

| Prompt | Description | |:-----|:------------| | aviation_preflight_brief | Structure a preflight weather briefing for a flight, calling the tools above in sequence and synthesizing a weather-risk summary. |


Capability reference

aviation_find_stations <sub>tool</sub>

  • Look up one or more stations by identifier (up to 20 per call) — a lookup matches the registry's own ID, which for an airport is its 4-character ICAO ID (e.g., KSEA, K0S9); a 3-letter IATA code never resolves, though each record includes its IATA/FAA aliases when available
  • Discover stations within a geographic bounding box, or list stations for one of the 50 US states or DC via two-letter USPS code
  • Returns data_types (METAR, TAF, etc.) so agents can confirm what's available before querying
  • Every result states whether the upstream 400-row cap cut it; limit (1–400) bounds how many stations a bbox or state search returns, ordered by ICAO identifier ascending with identifier-less stations last — rejected alongside station_ids, since that mode already names the set. An area search returning more than 130 stations with no limit says so and names the lever; omitting limit still returns every match
  • An ID lookup names every identifier that resolved to nothing, separating a 3-letter IATA code (never resolves) from an identifier the registry simply does not list
  • Whitespace around an ID is trimmed rather than failing the batch; only an empty or whitespace-only entry is rejected

aviation_get_metar <sub>tool</sub>

  • station_ids (1–10 per call — 4 ASCII letters or digits, case-insensitive and normalized to uppercase, so ksea and K0S9 work) for named airports, or bbox to survey every reporting station in an area — mutually exclusive
  • hours (1–12) is a lookback window, not a row limit: with station_ids every observation inside it is returned, and with bbox the result is the latest observation per station
  • flight_category (e.g., ["IFR", "LIFR"]) narrows a bbox survey to the stations in those categories — judged on each station's latest observation, applied before limit, and disclosed with the count surveyed before it; a station AWC could not rate never matches, and a survey the filter empties returns an empty result that says so. Rejected alongside station_ids
  • A bbox survey states whether the upstream 400-row cap cut it and, above hours: 1, names hours as the first lever — a wide window spends the cap on repeat readings rather than on more stations; limit (1–400) bounds how many stations come back, ordered by station ID ascending, and is rejected alongside station_ids. A survey returning more than 40 stations with no limit says so and names the levers; omitting limit still returns every station
  • Flight category (VFR/MVFR/IFR/LIFR) returned directly from the AWC API; decodes wind, visibility, present weather, and cloud layers alongside the raw METAR string
  • Ceiling reports both height and kind (measured, or indefinite for vertical visibility into an obscuration) — sky_condition distinguishes a reported clear sky from an unreported one when clouds is empty
  • metar_type distinguishes routine METAR from special SPECI observations
  • Every batch reports which requested stations came back, naming missing IDs with recovery guidance

aviation_get_taf <sub>tool</sub>

  • Accepts 1–4 ICAO station IDs per call: 4 ASCII letters or digits in either case, normalized to uppercase
  • Structured forecast periods with change types (FM, TEMPO, BECMG) and probabilities; weather decoded group by group beside the raw groups
  • Forecast obscurations keep their layer and carry the vertical visibility into them, rather than reading as clear sky; sky_condition distinguishes an unamended period from a stated clear sky
  • Text the upstream decoder left undecoded — often a fourth cloud layer — is surfaced per period in not_decoded rather than dropped
  • Low-level wind shear (WS020/20040KT) decoded to the shear-layer top and forecast wind at that height
  • valid_from / valid_to in ISO 8601 for time comparisons
  • Every batch reports which requested stations came back, naming missing IDs with recovery guidance

aviation_get_pireps <sub>tool</sub>

  • station_id (4 ASCII letters or digits in either case, normalized to uppercase) + distance_nm (10–500 nm, 100 when omitted) for radial search, or bbox for area search — mutually exclusive; a station_id AWC does not recognize as a search center returns a typed error pointing to aviation_find_stations or bbox
  • altitude_min_ft / altitude_max_ft filter to a cruise-altitude band in feet MSL, from 0 to 60000 ft (min must not exceed max); a report with unknown altitude is dropped once either bound is set
  • min_intensity (lgt / mod / sev) restricts to reports carrying a turbulence or icing layer at that intensity or above — a matching report still carries its lighter layers
  • Turbulence and icing arrays include up to two layers per report; icing layers the API synthesized for a report that never mentioned ice are dropped
  • Outside air temperature (temp_c), wind aloft (wind), and the /WX flight weather decoded beside its raw groups (weather), for PIREPs and AIREPs alike. The wind direction is published as reported, with no conversion — a PIREP /WV direction is magnetic, unlike the true-north METAR and TAF winds
  • Every result states whether the upstream 400-row cap cut it, naming only the narrowing levers the call can still use, and limit (1–400) bounds how many reports come back, ordered by recency. A result of more than 50 reports with no limit says so and names the lever; omitting limit still returns every match
  • PIREPs are sparse by nature — absence of reports does not mean smooth conditions

aviation_get_advisories <sub>tool</sub>

  • advisory_type: sigmet (domestic), isigmet (international, including oceanic), cwa (Center Weather Advisories), or all (default: all three independent products)
  • hazard is applied upstream: domestic supports CONVECTIVE, TURBULENCE, ICING, IFR; international supports TS, TURBULENCE, ICING, MTW, DS, SS, TC, VA; CWA supports TS, TURBULENCE, ICING, IFR, PCPN, UNK. Incompatible sources are not_applicable; a selection with no compatible source is rejected
  • coverage reports each selected source as ok, failed or not_applicable, with decoded drawn counts only for readable sources. partial marks failed sources or skipped unreadable rows. Independent healthy products survive a failure; all applicable products failing is an error. One 45-second deadline bounds the concurrent advisory reads and retries; caller cancellation aborts all legs
  • bbox uses each geometry part's bounding envelope, including date-line crossings, rather than exact polygon intersection. Input remains ordered (minLat <= maxLat, minLon <= maxLon). With bbox, drawn counts rows after product/hazard selection, matched counts geographic matches, returned counts rows after any limit, and unlocated separately counts rows without decoded geometry
  • limit is optional with no default: omitted means every available match. An explicit limit orders by source, issuer, series and validity, reports total/returned/truncated, and explains how to retrieve withheld matches by omitting or raising it
  • Missing issuer, series, hazard, validity and raw text stay null. geometry.parts preserves separate rings/lines and source-native kind (including null); compatibility polygon is null for multipart, line or missing geometry. Domestic numeric severity/movement stay unchanged; international movement preserves direction_text and decoded knots. CWA severity/movement remain null, and altitudes are never inferred from bulletin text
  • Original bulletins render in s

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars3
CategoryMarketing
Updated12d ago
Forks0

Languages

TypeScript

Trust signals

92/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 low
aviation-weather-mcp-server — MCP Server: Install & Safety Check | SkillAgent