Real-time US weather data via National Weather Service API. Forecasts, alerts, and observations.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Get US weather forecasts, active alerts, and current observations via the National Weather Service API. STDIO or Streamable HTTP.
Public Hosted Server: https://nws.caseyjhand.com/mcp
Seven tools for real-time US weather data:
| Tool | Description |
|---|---|
nws_get_forecast | 7-day or hourly forecast for coordinates. Resolves NWS grid internally. |
nws_search_alerts | Active weather alerts filtered by area, point, zone, event, severity, urgency, certainty, and status. |
nws_get_observations | Current conditions by coordinates (nearest station) or station ID. |
nws_find_stations | Nearby observation stations sorted by distance with bearing. |
nws_list_alert_types | All valid alert event type names for filter discovery. |
nws_get_office_discussion | Latest narrative product (AFD, HWO, ZFP, SPS) from a Weather Forecast Office. |
nws_get_zone_forecast | Text forecast periods for a public NWS forecast zone. |
nws_get_forecastGet the weather forecast for a US location.
totalCount, against this page's shown) plus a truncation notice are surfaced in the enrichment blocknextCursor back as cursor to reach the remaining periods; it is omitted on the last page/points endpointnws_search_alertsnws_search_alertsSearch active weather alerts with flexible filtering.
region_type, marine region groups, event type, severity, urgency, certainty, or statusarea, point, zone, region_type, and region are mutually exclusive; specify at most one location filterarea/point/zone, or an empty event/severity/urgency/certainty/region array β is rejected rather than dropped, so a search never silently widens to national resultsaffectedZones entry carries its NWS zone type (forecast, county, or fire) alongside the code, so callers can tell which codes chain into nws_get_zone_forecastsent, effective, status, messageType, and the prior messages an update references β distinct from the hazard's own onset/ends"tornado" matches both watches and warningsstatus defaults to live Actual alerts, but can be set to Exercise, System, Test, or Draftlimit (1β25, default 25) sizes the page; totalCount reports the full match count and shown the size of this page, with a truncation notice and guidance to narrow filtersid, so totalCount counts distinct alerts and a duplicate never straddles a page boundarynextCursor back as cursor to reach matches beyond the page. Consecutive pages are contiguous within one response only β every call re-fetches /alerts/active, and that set changes continuously as alerts are issued and expireinvalid_area_code, invalid_point, or invalid_zone instead of leaking a raw upstream 400nws_get_observationsCurrent measured conditions from a weather station.
station_id is rejected rather than dropped, so coordinates never silently answer for a station that was asked for by namenws_find_stationsDiscover nearby observation stations.
limit (1β50, default 10) sizes the page; totalCount reports every station near the point and holds steady across pages, while shown is the size of this pagenextCursor back as cursor to reach stations beyond the page; it is omitted on the last pagenws_get_observationsnws_list_alert_typesList all valid NWS alert event type names.
event filter in nws_search_alertsnws_get_office_discussionGet the latest narrative product from a Weather Forecast Office (WFO).
office: 3-letter WFO code (e.g., SEW for Seattle) β returned as the office field by nws_get_forecastproduct_type: AFD (Area Forecast Discussion, default), HWO (Hazardous Weather Outlook), ZFP (Zone Forecast Product), SPS (Special Weather Statement)productText plus issuanceTime, issuingOffice, productName, productCode, wmoCollectiveIdnws_get_zone_forecastGet the text forecast for a public NWS forecast zone.
zone_id: forecast zone code (e.g., WAZ315) β returned by nws_get_forecast (forecastZone), nws_find_stations (forecastZone column), and nws_search_alerts (the code of an affectedZones entry with type: "forecast")XXC###) and fire zone codes are not supported here β NWS publishes no text forecast for them. They remain valid values for the zone filter on nws_search_alerts| URI Pattern | Description |
|---|---|
nws://alert-types | Static list of all valid NWS alert event type names. |
Built on @cyanheads/mcp-ts-core:
none, jwt, oauth)in-memory, filesystem, Supabase, Cloudflare KV/R2/D1NWS-specific:
A public instance is available at https://nws.caseyjhand.com/mcp β no installation required. Point any MCP client at it via Streamable HTTP:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/nws-weather-mcp-server)<a href="https://allmcps.com/mcp/nws-weather-mcp-server"><img src="https://allmcps.com/api/badge/nws-weather-mcp-server?style=directory" alt="Nws Weather MCP Server on AllMCPs" /></a>