Skip to main content
Glama

Get NWS alerts

get_alerts
Read-onlyIdempotent

NWS watches, warnings, advisories. Point (city/ZIP/lat+lon): containing polygons. BBox or US state/DC/CONUS (codes, full names, US/national): intersecting polygons. A city miss is not a statewide all-clear — query the state or a bbox; never say regional inventory is impossible. NY/WA and "New York State"/"Washington State" are states; "New York"/"Washington" stay cities. Omit at for now; at (ISO-8601 UTC) is the snapshot then. Empty = all-clear or purged (~24h). alert_id = detail+geometry, ignores at. Ex: {"location":"WI","events":["Tornado Warning"]}.

Input Schema

NameRequiredDescriptionDefault
atNoISO-8601 UTC past instant for the in-effect snapshot. Ignored with alert_id.
latNoLatitude in decimal degrees (-90 to 90). Most tools also accept a `location` place-name string instead of lat/lon.
lonNoLongitude in decimal degrees (-180 to 180). For continental US use negative values (west of the prime meridian).
bboxNoBounding box {west,south,east,north}; west/east are negative in the US. Skips geocoding; intersecting polygons.
eventsNoOptional event-name filter, e.g. ["Tornado Warning"].
alert_idNoAlert identifier for detail mode. When set, location is ignored.
locationNoFree-text place: "City, ST" (e.g. "Portland, OR"), US ZIP, venue/address where enabled, or "lat,lon". Use this OR lat+lon, not both.

Output Schema

NameRequiredDescriptionDefault
alertNo
alertsNo
widgetNosw-ui-spec widget block rendered by the MCP Apps weather widget (ui://weather-widget/v1/index.html). Additive; safe to ignore.
alert_idNo
locationNo
valid_timeNoEcho of at when an as-of snapshot was requested.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedOutput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
  2. Changed21 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • removedInput schema / properties / bbox / additionalProperties
      Removed value: -false
    • changedInput schema / properties / bbox / description
      Previous value: -"Bounding box {west,south,east,north}. Skips geocoding; intersecting polygons."New value: +"Bounding box {west,south,east,north}; west/east are negative in the US. Skips geocoding; intersecting polygons."
    • removedInput schema / properties / bbox / properties / east / $ref
      Removed value: -"#/properties/lon"
    • addedInput schema / properties / bbox / properties / east / maximum
      Added value: +180
    • addedInput schema / properties / bbox / properties / east / minimum
      Added value: +-180
    • addedInput schema / properties / bbox / properties / east / type
      Added value: +"number"
    • removedInput schema / properties / bbox / properties / north / $ref
      Removed value: -"#/properties/lat"
    • addedInput schema / properties / bbox / properties / north / maximum
      Added value: +90
    • addedInput schema / properties / bbox / properties / north / minimum
      Added value: +-90
    • addedInput schema / properties / bbox / properties / north / type
      Added value: +"number"
    • removedInput schema / properties / bbox / properties / south / $ref
      Removed value: -"#/properties/lat"
    • addedInput schema / properties / bbox / properties / south / maximum
      Added value: +90
    • addedInput schema / properties / bbox / properties / south / minimum
      Added value: +-90
    • addedInput schema / properties / bbox / properties / south / type
      Added value: +"number"
    • removedInput schema / properties / bbox / properties / west / $ref
      Removed value: -"#/properties/lon"
    • addedInput schema / properties / bbox / properties / west / maximum
      Added value: +180
    • addedInput schema / properties / bbox / properties / west / minimum
      Added value: +-180
    • addedInput schema / properties / bbox / properties / west / type
      Added value: +"number"
    • addedOutput schema / properties / alert / properties
      Added value: +{}
    • addedOutput schema / properties / widget / properties / entries / items / properties / props / properties
      Added value: +{}
  3. Changed1 schema field changed
    • changedInput schema / properties / location / description
      Previous value: -"Free-text place: city (\"Denver\"), city+state (\"Portland, OR\"), US ZIP, venue/address where enabled, or \"lat,lon\". Use this OR lat+lon, not both."New value: +"Free-text place: \"City, ST\" (e.g. \"Portland, OR\"), US ZIP, venue/address where enabled, or \"lat,lon\". Use this OR lat+lon, not both."
  4. Changed2 schema fields changed
    • changedInput schema / properties / location / description
      Previous value: -"Free-text place: city (\"Denver\"), city+state (\"Portland, OR\"), US ZIP (\"50219\"), or \"lat,lon\" (\"39.74,-104.99\"). Provide either this OR explicit lat+lon, not both."New value: +"Free-text place: city (\"Denver\"), city+state (\"Portland, OR\"), US ZIP, venue/address where enabled, or \"lat,lon\". Use this OR lat+lon, not both."
    • addedOutput schema / properties / location / properties / matched_via
      Added value: +{
      +  "enum": [
      +    "autosuggest",
      +    "fuzzy"
      +  ],
      +  "type": "string"
      +}
  5. Changed3 schema fields changed
    • addedInput schema / properties / bbox
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Bounding box {west,south,east,north}. Skips geocoding; intersecting polygons.",
      +  "properties": {
      +    "east": {
      +      "$ref": "#/properties/lon"
      +    },
      +    "north": {
      +      "$ref": "#/properties/lat"
      +    },
      +    "south": {
      +      "$ref": "#/properties/lat"
      +    },
      +    "west": {
      +      "$ref": "#/properties/lon"
      +    }
      +  },
      +  "required": [
      +    "west",
      +    "south",
      +    "east",
      +    "north"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / events
      Added value: +{
      +  "description": "Optional event-name filter, e.g. [\"Tornado Warning\"].",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / location / required
      Removed value: -[
      -  "lat",
      -  "lon"
      -]
  6. Changed2 schema fields changed
    • addedInput schema / properties / at
      Added value: +{
      +  "description": "ISO-8601 UTC past instant for the in-effect snapshot. Ignored with alert_id.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / valid_time
      Added value: +{
      +  "description": "Echo of at when an as-of snapshot was requested.",
      +  "type": "string"
      +}
  7. First observed

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only, idempotent annotations, it discloses important behavioral semantics: point queries use containment, bbox/state queries use intersection, empty results may mean all-clear or purged data (~24h), and `alert_id` mode returns detail plus geometry while ignoring `at`. This is substantive context an agent needs to interpret results correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded, with every clause carrying useful information. However, the fragmentary, telegraphic style makes some mode distinctions harder to parse than necessary, and a short structured list would improve scanability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 7-parameter tool with multiple query modes, nested bbox, and no required parameters, the description covers the critical routing logic, spatial semantics, time behavior, alert-detail behavior, and empty-result interpretation. Since an output schema exists, it need not explain return fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100%, the description adds non-obvious parameter meaning: spatial containment vs intersection by mode, state-code/full-name handling for NY/WA versus city names, `at` as a snapshot time that should be omitted for current results, and `alert_id` ignoring `at`. It also gives a concrete `events` filter example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description makes clear that this returns NWS watches, warnings, and advisories, and it distinguishes point, bbox/state, and alert-detail query modes. It is specific about the resource but relies on a noun phrase rather than an explicit verb, and the telegraphic style slightly obscures the core action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly explains when to use point queries (containing polygons) versus bbox or state queries (intersecting polygons), warns that a city miss is not a statewide all-clear, and tells the agent to query the state or bbox instead. It also gives clear guidance on omitting `at` and on `alert_id` detail mode.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.