Weather.gov · Capability

Weather.gov Weather Monitoring

Unified weather monitoring workflow combining alerts, forecasts, observations, radar, and aviation weather. Used by emergency managers, developers, and weather enthusiasts to access NWS open data.

Run with Naftiko WeatherGovernmentMonitoringAlertsForecastingUnited States

What You Can Do

GET
List alerts — List all weather alerts
/v1/alerts
GET
List active alerts — List currently active weather alerts
/v1/alerts/active
GET
Get alert count — Get count of active alerts
/v1/alerts/active/count
GET
Get forecast — Get forecast for a grid point
/v1/forecasts
GET
Get hourly forecast — Get hourly forecast for a grid point
/v1/forecasts/hourly
GET
Get point — Get metadata for a lat/lon point
/v1/points/{point}
GET
List stations — List observation stations
/v1/stations
GET
Get latest observation — Get latest observation for a station
/v1/stations/{stationId}/observations/latest
GET
List radar stations — List radar stations
/v1/radar-stations
GET
List zones — List NWS forecast zones
/v1/zones
GET
List products — List NWS text products
/v1/products
GET
List sigmets — List SIGMET/AIRMET advisories
/v1/aviation/sigmets

MCP Tools

list-alerts

List weather alerts from the National Weather Service

read-only
list-active-alerts

List currently active NWS weather alerts

read-only
get-alerts-by-area

Get active alerts for a specific state or marine area

read-only
get-alerts-by-zone

Get active alerts for a specific NWS zone

read-only
get-point-metadata

Get forecast metadata for a latitude/longitude location

read-only
get-forecast

Get weather forecast for a grid point

read-only
get-hourly-forecast

Get hourly weather forecast for a grid point

read-only
list-stations

List NWS weather observation stations

read-only
get-latest-observation

Get the latest weather observation from a station

read-only
list-observations

Get historical observations from a weather station

read-only
list-radar-stations

List NWS radar stations

read-only
get-zone-forecast

Get the forecast for a NWS forecast zone

read-only
list-zones

List NWS forecast zones, optionally filtered by area or type

read-only
get-text-products

Query NWS text weather products

read-only
list-sigmets

List SIGMET/AIRMET aviation weather advisories

read-only
get-office-info

Get information about a NWS forecast office

read-only
get-office-headlines

Get news headlines from a NWS forecast office

read-only

APIs Used

weather-gov

Capability Spec

weather-monitoring.yaml Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "Weather.gov Weather Monitoring"
  description: "Unified weather monitoring workflow combining alerts, forecasts, observations, radar, and aviation weather. Used by emergency managers, developers, and weather enthusiasts to access NWS open data."
  tags:
    - Weather
    - Government
    - Monitoring
    - Alerts
    - Forecasting
    - United States
  created: "2026-05-03"
  modified: "2026-05-03"

binds:
  - namespace: env
    keys:
      WEATHER_GOV_USER_AGENT: WEATHER_GOV_USER_AGENT

capability:
  consumes:
    - import: weather-gov
      location: ./shared/weather-gov-api.yaml

  exposes:
    - type: rest
      port: 8080
      namespace: weather-monitoring-api
      description: "Unified REST API for weather monitoring using NWS open data."
      resources:
        - path: /v1/alerts
          name: alerts
          description: "Weather alerts and warnings"
          operations:
            - method: GET
              name: list-alerts
              description: "List all weather alerts"
              call: "weather-gov.alerts-query"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/alerts/active
          name: active-alerts
          description: "Active weather alerts"
          operations:
            - method: GET
              name: list-active-alerts
              description: "List currently active weather alerts"
              call: "weather-gov.alerts-active"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/alerts/active/count
          name: alert-count
          description: "Count of active alerts"
          operations:
            - method: GET
              name: get-alert-count
              description: "Get count of active alerts"
              call: "weather-gov.alerts-active-count"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/forecasts
          name: forecasts
          description: "Weather forecasts by grid point"
          operations:
            - method: GET
              name: get-forecast
              description: "Get forecast for a grid point"
              call: "weather-gov.gridpoint-forecast"
              with:
                wfo: "rest.wfo"
                x: "rest.x"
                y: "rest.y"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/forecasts/hourly
          name: hourly-forecasts
          description: "Hourly weather forecasts"
          operations:
            - method: GET
              name: get-hourly-forecast
              description: "Get hourly forecast for a grid point"
              call: "weather-gov.gridpoint-forecast-hourly"
              with:
                wfo: "rest.wfo"
                x: "rest.x"
                y: "rest.y"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/points/{point}
          name: points
          description: "Location metadata lookup"
          operations:
            - method: GET
              name: get-point
              description: "Get metadata for a lat/lon point"
              call: "weather-gov.point"
              with:
                point: "rest.point"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/stations
          name: stations
          description: "Observation stations"
          operations:
            - method: GET
              name: list-stations
              description: "List observation stations"
              call: "weather-gov.obs-stations"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/stations/{stationId}/observations/latest
          name: latest-observation
          description: "Latest station observation"
          operations:
            - method: GET
              name: get-latest-observation
              description: "Get latest observation for a station"
              call: "weather-gov.station-observation-latest"
              with:
                stationId: "rest.stationId"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/radar-stations
          name: radar-stations
          description: "Radar stations"
          operations:
            - method: GET
              name: list-radar-stations
              description: "List radar stations"
              call: "weather-gov.radar-stations"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/zones
          name: zones
          description: "NWS forecast zones"
          operations:
            - method: GET
              name: list-zones
              description: "List NWS forecast zones"
              call: "weather-gov.zone-list"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/products
          name: products
          description: "NWS text products"
          operations:
            - method: GET
              name: list-products
              description: "List NWS text products"
              call: "weather-gov.products-query"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/aviation/sigmets
          name: sigmets
          description: "Aviation weather advisories"
          operations:
            - method: GET
              name: list-sigmets
              description: "List SIGMET/AIRMET advisories"
              call: "weather-gov.sigmet-query"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9090
      namespace: weather-monitoring-mcp
      transport: http
      description: "MCP server for AI-assisted weather monitoring using NWS open data."
      tools:
        - name: list-alerts
          description: "List weather alerts from the National Weather Service"
          hints:
            readOnly: true
            openWorld: true
          call: "weather-gov.alerts-query"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-active-alerts
          description: "List currently active NWS weather alerts"
          hints:
            readOnly: true
            openWorld: true
          call: "weather-gov.alerts-active"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-alerts-by-area
          description: "Get active alerts for a specific state or marine area"
          hints:
            readOnly: true
            openWorld: true
          call: "weather-gov.alerts-active-area"
          with:
            area: "tools.area"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-alerts-by-zone
          description: "Get active alerts for a specific NWS zone"
          hints:
            readOnly: true
            openWorld: true
          call: "weather-gov.alerts-active-zone"
          with:
            zoneId: "tools.zoneId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-point-metadata
          description: "Get forecast metadata for a latitude/longitude location"
          hints:
            readOnly: true
            openWorld: true
          call: "weather-gov.point"
          with:
            point: "tools.point"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-forecast
          description: "Get weather forecast for a grid point"
          hints:
            readOnly: true
            openWorld: true
          call: "weather-gov.gridpoint-forecast"
          with:
            wfo: "tools.wfo"
            x: "tools.x"
            y: "tools.y"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-hourly-forecast
          description: "Get hourly weather forecast for a grid point"
          hints:
            readOnly: true
            openWorld: true
          call: "weather-gov.gridpoint-forecast-hourly"
          with:
            wfo: "tools.wfo"
            x: "tools.x"
            y: "tools.y"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-stations
          description: "List NWS weather observation stations"
          hints:
            readOnly: true
            openWorld: true
          call: "weather-gov.obs-stations"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-latest-observation
          description: "Get the latest weather observation from a station"
          hints:
            readOnly: true
            openWorld: true
          call: "weather-gov.station-observation-latest"
          with:
            stationId: "tools.stationId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-observations
          description: "Get historical observations from a weather station"
          hints:
            readOnly: true
            openWorld: true
          call: "weather-gov.station-observation-list"
          with:
            stationId: "tools.stationId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-radar-stations
          description: "List NWS radar stations"
          hints:
            readOnly: true
            openWorld: true
          call: "weather-gov.radar-stations"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-zone-forecast
          description: "Get the forecast for a NWS forecast zone"
          hints:
            readOnly: true
            openWorld: true
          call: "weather-gov.zone-forecast"
          with:
            type: "tools.type"
            zoneId: "tools.zoneId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-zones
          description: "List NWS forecast zones, optionally filtered by area or type"
          hints:
            readOnly: true
            openWorld: true
          call: "weather-gov.zone-list"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-text-products
          description: "Query NWS text weather products"
          hints:
            readOnly: true
            openWorld: true
          call: "weather-gov.products-query"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-sigmets
          description: "List SIGMET/AIRMET aviation weather advisories"
          hints:
            readOnly: true
            openWorld: true
          call: "weather-gov.sigmet-query"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-office-info
          description: "Get information about a NWS forecast office"
          hints:
            readOnly: true
            openWorld: true
          call: "weather-gov.office"
          with:
            officeId: "tools.officeId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-office-headlines
          description: "Get news headlines from a NWS forecast office"
          hints:
            readOnly: true
            openWorld: true
          call: "weather-gov.office-headlines"
          with:
            officeId: "tools.officeId"
          outputParameters:
            - type: object
              mapping: "$."