cyanheads/nws-weather-mcp-server
Get US weather forecasts, active alerts, and current observations via the National Weather Service API. STDIO or Streamable HTTP.
Changelog
All notable changes to this project. Each entry links to its full per-version file in changelog/.
0.12.0 — 2026-10-28
Publish a weather decision guide for reconciling forecasts, alerts, observations, and forecaster discussions.
0.11.2 — 2026-10-24
Opt-in native forecast amounts and consistent observation notices across response surfaces.
0.11.1 — 2026-10-23
Adds CAP fields on alerts, precipitation amounts on observations, a forecast updateTime, and FWF for fire-zone alerts. Fixes page cursors that dropped their query or mode, unfenced NWS text in content[], gust-only wind text, and observation temperature rounding.
0.11.0 — 2026-10-16 · ⚠️ Breaking
Adds nws_get_alert for single alert messages by ID, outlines narrative products over 24,000 bytes with a sections input on nws_get_office_discussion, and serves oversized limits at the page cap. Fixes observation-history truncation, alert reference order, and marine and out-of-coverage errors. mcp-ts-core moves ^0.13.10 to ^0.13.15.
0.10.0 — 2026-09-30
Adds nws_get_alert_counts and nws_get_observation_history, treats blank optional inputs as unset, and gives gridless land points and open-ocean point failures actionable answers. mcp-ts-core moves ^0.13.6 to ^0.13.10.
0.9.5 — 2026-09-24
Marine coordinates and zones fail with a declared marine_forecast_unsupported reason, valid zones with no text forecast get zone_forecast_unavailable instead of zone_not_found, and caller-supplied zone, station, and office IDs must be alphanumeric before they reach a request path.
0.9.4 — 2026-09-19
Tool error text now closes with a (reason …) term, argument rejections carry a synthesized recovery hint and tolerate client-added or case-style keys, sessionMode is declared explicitly as stateless, and service-thrown error-contract entries are marked thrownBy: 'service'. mcp-ts-core moves ^0.13.0 to ^0.13.6.
0.9.3 — 2026-09-13
Invalid tool arguments now come back as a structured InvalidParams envelope on both response surfaces, a blank NWS_USER_AGENT from a plugin host falls through to the default instead of the literal placeholder, and the development skill tree moved out of the directory plugin hosts auto-load. mcp-ts-core moves ^0.12.5 to ^0.13.0.
0.9.2 — 2026-09-04 · 🛡️ Security
A 501 from NWS now fails fast instead of retrying, a caller disconnect classifies as RequestCancelled instead of Timeout, server identity no longer depends on the caller's working directory, and new dependency overrides clear 6 transitive fast-uri and qs advisories. mcp-ts-core moves ^0.12.3 to ^0.12.5.
0.9.1 — 2026-08-25
mcp-ts-core ^0.12.3 adopts SDK v2: the server now also speaks MCP protocol revision 2026-07-28, tool inputs are strict, outputSchema declares the error envelope, and discovery results carry one-hour cache hints; session mode settles on stateless everywhere
0.9.0 — 2026-08-13 · ⚠️ Breaking
nws_find_stations, nws_get_forecast, and nws_search_alerts unify their paging counts on totalCount/shown; nws_find_stations.totalCount changes meaning (breaking); nws_search_alerts collapses upstream-duplicate alerts
0.8.0 — 2026-08-12 · ⚠️ Breaking
affectedZones entries are now code+type objects (breaking); nws_search_alerts adds region/region_type filters and CAP message-lifecycle fields; a null alert description no longer fails the whole response
0.7.4 — 2026-08-12
nws_get_forecast, nws_find_stations, and nws_search_alerts take a cursor input and return nextCursor, reaching results past each tool's page cap instead of dropping them
0.7.3 — 2026-08-12
nws_search_alerts checks a zone's area prefix and rejects blank/empty filters instead of widening to a national search; nws_get_observations rejects a blank station_id instead of silently answering from coordinates
0.7.2 — 2026-07-02
nws_get_forecast hourly mode caps structuredContent at 48 periods (matching content[]), with the pre-cap total and a truncation notice surfaced via enrichment; whitespace-only office and zone_id inputs now fail schema validation instead of reaching the upstream lookup
0.7.1 — 2026-06-30 · 🛡️ Security
Framework maintenance — mcp-ts-core ^0.10.10 clears 8 transitive advisories (2 high, 6 moderate) across hono, vite, and js-yaml; nws_get_forecast and nws_get_office_discussion drop internal API-routing detail from their descriptions
0.7.0 — 2026-06-30
nws_search_alerts gains an optional limit input and validates point/zone locally before the upstream call; nws_get_observations classifies a nonexistent station as station_not_found instead of a raced no_observations
0.6.5 — 2026-06-21
nws_search_alerts gains a structured ends (hazard-end) field — the ISO-8601 end of the hazard window, nullable for open-ended alerts, distinct from the expires message-refresh time
0.6.4 — 2026-06-20
mcp-ts-core ^0.10.9 maintenance: devcheck gains a Dependency Specifiers step and plugin-manifest packaging checks, fresh-scaffold git guards, synced framework scripts + skills; no server behavior change
0.6.3 — 2026-06-15
Bug fixes: get_observations rounds structuredContent to match format() and drops blank textDescription; get_office_discussion distinguishes unknown office from valid-but-empty product list
0.6.2 — 2026-06-12
mcp-ts-core ^0.10.6 adoption: explicit server identity, MCPB bundle-content cleaner, packaging + antipattern lint guards, Docker healthcheck; skills synced
0.6.1 — 2026-06-02
mcp-ts-core 0.9.21: per-request log context fix, secret-stripped error URLs, fail-fast retries; skill sync + README key rename
0.6.0 — 2026-05-30
WFO office discussions, zone forecasts, enrichment on forecast/observations, and observations/latest 404 fix
0.5.13 — 2026-05-30
Enrichment adoption: nws_search_alerts and nws_find_stations surface result totals, applied filters, and empty-result guidance in a typed enrichment block reaching both channels. nws_find_stations reports true pre-limit total via new totalFound.
0.5.12 — 2026-05-28
Framework ^0.9.6 → ^0.9.13: HTTP 413 body cap, session-init gate, quieter 401/403/400/404 logging, GET /mcp surfaces keywords. Keywords expanded. landing.requireAuth: false set explicitly.
0.5.11 — 2026-05-23
Framework ^0.9.4 → ^0.9.6. Skills synced: maintenance 2.4, polish-docs-meta 2.2, release-and-publish 2.5. Manifest description aligned.
0.5.10 — 2026-05-22
Framework ^0.9.1 → ^0.9.4. zod added as explicit dep (peerDep change in 0.9.2). README badge layout, install buttons, Framework spotlight. New scripts: audit:refresh, list-skills, lint:packaging, publish-mcp. Skills synced. qs advisory cleared.