Skip to main content
Glama

Server Details

Get US weather forecasts, active alerts, and current observations.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
cyanheads/nws-weather-mcp-server
GitHub Stars
1
Server Listing
@cyanheads/nws-weather-mcp-server

Available Tools

7 tools
nws_find_stationsNws Find StationsA
Read-only
Inspect

Find weather observation stations near a location. Returns stations sorted by proximity with distance and bearing. Use to discover station IDs for nws_get_observations.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax stations per page (1-50). totalCount still reports every station near the point, so pass the returned nextCursor as cursor to reach the rest.
cursorNoOpaque continuation token from a previous response's nextCursor. Omit for the first page. The token carries its own page size, so limit applies to the first page only. Every call re-fetches the station list, so pages are contiguous within one response; the registry changes rarely, but a later call can window an updated list.
latitudeYesCenter latitude for proximity search.
longitudeYesCenter longitude for proximity search.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
shownNoNumber of stations returned in this page
noticeNoGuidance when no stations were found near the requested coordinates, when stations remain beyond this page, or when the supplied cursor points past the end of the list.
stationsNoNearby stations sorted by distance
nextCursorNoOpaque token for the next page of stations — pass it back as `cursor`. Omitted when this is the last page.
totalCountNoTotal observation stations available near this location before the page limit was applied — NOT the number returned in this page, which is shown. Same value on every page of one query; compare it against shown to tell whether stations were withheld.

TDQS

A4.1/5.0
Behavior3/5

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

The annotation readOnlyHint=true already declares the tool is read-only, and the description does not contradict this. The description adds behavioral context by noting the results are sorted by proximity and include distance and bearing, which is useful but not extensive. Since annotations cover the safety profile, the description adds moderate value but doesn't go deeper into response format or edge cases.

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

Conciseness5/5

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

The description is two sentences with zero wasted words. The primary purpose is front-loaded, followed by the output format and a clear usage pointer. It is compact yet informative, making it easy for an agent to parse quickly.

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?

Given that an output schema exists and parameter descriptions are fully covered in the input schema, the description only needs to convey purpose and usage, which it does thoroughly. It explains the discovery workflow and the relationship to a sibling tool, so nothing essential is missing for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100% and every parameter (latitude, longitude, limit, cursor) already has a detailed description in the schema. The description itself does not add additional parameter meaning beyond what the schema provides, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Find', the resource 'weather observation stations', and the spatial scope 'near a location'. It also mentions the output order (by proximity with distance and bearing) and links to a specific consumer (nws_get_observations), making it distinct from sibling tools like forecasts, alerts, and discussions.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool: 'Use to discover station IDs for nws_get_observations.' This gives clear context and implies a specific workflow. While it doesn't explicitly mention alternatives or when not to use it, the linkage to a sibling tool and the distinct purpose provide adequate guidance for an agent to select it correctly.

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

nws_get_forecastNws Get ForecastA
Read-only
Inspect

Get the weather forecast for a US location. Returns either named 12-hour periods (default) or hourly breakdowns.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoOpaque continuation token from a previous response's nextCursor, to retrieve the next 48 periods. Omit for the first page. Every call re-fetches the forecast, so consecutive periods are contiguous within one response; NWS reissues forecasts through the day, so a later call can window a regenerated period array.
hourlyNoIf true, returns hourly forecast (48 one-hour periods per page, ~156 available) instead of 12-hour named periods (14 periods). Hourly includes dewpoint and relative humidity.
latitudeYesLatitude in decimal degrees (e.g., 47.6062).
longitudeYesLongitude in decimal degrees (e.g., -122.3321).

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeNoForecast mode: "hourly" or "7-day"
errorNoPresent when the call failed. Absent on success.
shownNoNumber of forecast periods in this page (at most 48).
noticeNoSet when periods remain beyond this page, or when the supplied cursor points past the end of the period array.
periodsNoForecast periods
locationNoResolved location metadata
nextCursorNoOpaque token for the next page of periods — pass it back as `cursor`. Omitted when this is the last page.
totalCountNoTotal forecast periods available upstream before the page window was applied — NOT the number in this page, which is shown. Compare it against shown to tell whether periods were withheld.
generatedAtNoWhen the forecast was generated (ISO 8601)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, so the tool is known to be safe and non-mutating. The description adds the information that two output modes exist (named 12-hour periods or hourly), but this is already fully documented in the 'hourly' parameter schema. Since the description contributes little beyond what annotations and schema already convey, a score of 3 is appropriate.

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

Conciseness5/5

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

The description is a single, well-formed sentence that front-loads the primary purpose and immediately follows with the key behavioral distinction (two output formats). Every word carries meaning, with no filler or redundancy.

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

Completeness4/5

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

Given that the schema fully documents parameters, the output schema exists, and the read-only annotation is present, the description is sufficient for an agent to invoke the tool correctly. The only minor gap is that it does not explain pagination behavior, but that is handled in the cursor parameter description, so completeness is good. A slight deduction for the lack of any mention of how to handle the hourly vs named-period choice in context.

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

Parameters3/5

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

The schema provides 100% description coverage for all four parameters, including format details for latitude/longitude and the meaning of 'hourly' and 'cursor'. The description does not add any new parameter context beyond what the schema already states, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the action ('Get the weather forecast') and the resource ('a US location'), and it adds the distinguishing detail of returning either 12-hour named periods or hourly breakdowns. This makes the tool's purpose explicit and differentiates it from sibling tools like observations or office discussion without ambiguity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as nws_get_zone_forecast or nws_get_observations. It does not mention any exclusions, prerequisites, or hints about choosing between forecast modes. An agent must infer usage context from external knowledge, which is a significant gap given the sibling toolset.

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

nws_get_observationsNws Get ObservationsA
Read-only
Inspect

Get current weather observations (actual measured conditions). Accepts coordinates (resolves nearest station automatically) or a station ID directly (e.g., "KSEA").

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeNoLatitude for automatic station resolution. Use with longitude. Ignored if station_id is provided.
longitudeNoLongitude for automatic station resolution. Use with latitude. Ignored if station_id is provided.
station_idNoStation identifier directly (e.g., "KSEA", "KORD"). Use nws_find_stations to discover station IDs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
noticeNoGuidance when the latest observation is more than 2 hours old — data may not reflect current conditions.
stationNoStation ID that served the observation (e.g., "KSEA")
timeZoneNoStation time zone when known
dewpointCNoDewpoint in Celsius
stationIdNoObservation station ID
timestampNoObservation time (ISO 8601)
heatIndexCNoHeat index in Celsius
observedAtNoObservation timestamp (ISO 8601)
windChillCNoWind chill in Celsius
cloudLayersNoCloud layer information
stationNameNoStation name
visibilityMNoVisibility in meters
windGustKmhNoWind gust in km/h
temperatureCNoTemperature in Celsius
windSpeedKmhNoWind speed in km/h
textDescriptionNoConditions summary (e.g., "Mostly Cloudy")
windDirectionDegNoWind direction in degrees (0-360)
relativeHumidityPctNoRelative humidity in percent (0-100)
barometricPressurePaNoBarometric pressure in Pascals

TDQS

A4.2/5.0
Behavior4/5

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

ReadOnlyHint is true and the description does not contradict it (says 'get', a read operation). Beyond the annotation, it discloses a key behavior: automatic nearest-station resolution when coordinates are provided. This adds meaningful context beyond the schema and annotations, justifying a 4.

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

Conciseness5/5

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

A single sentence that front-loads the core purpose and then covers both input methods without any redundant words. Every phrase contributes value, and it is immediately scannable.

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

Completeness4/5

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

For a simple read-only tool with a full output schema and 100% parameter documentation, the description covers the essential usage: giving coordinates or a station ID. It does not explicitly mention that station_id overrides coordinates (though the schema does) or that only one input method should be used, but that is covered structurally. Overall, an agent has enough to call it correctly.

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

Parameters3/5

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

Schema coverage is 100% and each parameter already has a clear description (e.g., latitude says 'for automatic station resolution'). The description adds no new parameter semantics beyond an example station ID and a pointer to nws_find_stations, which the schema already implies. Baseline 3 is appropriate when the schema fully documents parameters.

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

Purpose5/5

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

States the specific verb 'Get' and resource 'current weather observations', with the parenthetical 'actual measured conditions' clearly differentiating from forecast tools. The description also names both input methods (coordinates and station ID), making its scope unambiguous.

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

Usage Guidelines4/5

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

The description implies when to use it (for current measured conditions rather than forecasts) and references nws_find_stations for station ID discovery, but does not explicitly contrast with sibling tools like nws_get_forecast or state when *not* to use it. The context is clear, but explicit alternatives are missing, so it falls short of a 5.

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

nws_get_office_discussionNws Get Office DiscussionA
Read-only
Inspect

Get the latest narrative forecast product from a Weather Forecast Office (WFO). The default product is AFD (Area Forecast Discussion), which explains the meteorological reasoning behind the forecast — synoptic setup, model guidance, and forecaster confidence. Other types: HWO (Hazardous Weather Outlook, 1-7 day severe/flood/winter outlook), ZFP (Zone Forecast Product, zone-by-zone text), SPS (Special Weather Statement, short-fuse advisory). The office code is the 3-letter WFO identifier returned as the "office" field by nws_get_forecast.

ParametersJSON Schema
NameRequiredDescriptionDefault
officeYesThree-letter Weather Forecast Office (WFO) code (e.g., "SEW" for Seattle, "LOX" for Los Angeles). Returned as the "office" field in nws_get_forecast output.
product_typeNoProduct type code. AFD (Area Forecast Discussion) — meteorological reasoning, model analysis, forecaster confidence. HWO (Hazardous Weather Outlook) — 1-7 day outlook for severe weather, flooding, winter weather. ZFP (Zone Forecast Product) — detailed zone-by-zone text forecast. SPS (Special Weather Statement) — short-fuse advisory for notable non-warning weather.AFD

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
productCodeNoProduct type code (e.g., "AFD").
productNameNoFull product name (e.g., "Area Forecast Discussion").
productTextNoFull narrative product text as issued by the forecaster. AFDs are typically 1,000-3,000 words covering synoptic setup, model guidance, and period-by-period reasoning.
issuanceTimeNoWhen the product was issued (ISO 8601), e.g., "2026-05-30T10:33:00+00:00".
issuingOfficeNoIssuing office call sign (e.g., "KSEW"). Includes the K/P prefix, unlike the input office code.
wmoCollectiveIdNoWMO collective identifier (e.g., "FXUS66"). Identifies the product family in international message routing.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the tool is known to be a safe read operation. The description does not contradict this. It adds context about product types, which is more about output content than behavior. It does not disclose any potential side effects (none expected), rate limits, or error conditions, but given the read-only nature and output schema availability, this is acceptable but not enriched beyond the annotation.

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

Conciseness5/5

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

The description is concise, starting with the primary purpose and then enumerating product types with brief explanations. Each sentence earns its place, and no fluff or redundancy exists. The structure front-loads the core function and flows logically to supporting details.

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

Completeness4/5

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

The tool has an output schema, so return formats are covered there. The description covers the essential parameters and product types, and mentions the source of the office code. It is complete for a simple read-only tool. It could theoretically mention that the output is free text, but that is implicit and handled by the output schema. Overall, nothing critical is missing.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters (office and product_type) having detailed descriptions in the schema. The description repeats the product type explanations, adding little beyond the schema. The only additional value is the mention that office comes from nws_get_forecast, but the schema already says that. Since the schema carries the load, the description does not meaningfully enhance parameter understanding, so a 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function: retrieving the latest narrative forecast product from a WFO. It names the default product (AFD) and lists the other product types, distinguishing it from siblings like nws_get_forecast (which likely provides structured forecast data) and nws_get_zone_forecast (which may return similar text but focused on zones). The verb 'get' and resource 'office discussion' are specific and unambiguous.

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

Usage Guidelines4/5

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

The description provides context on when to use the tool by explaining what each product type is (e.g., AFD explains reasoning, HWO is an outlook, etc.). It also references nws_get_forecast as the source for the office code, which is helpful for chaining. However, it does not explicitly state when to prefer this over nws_get_zone_forecast or other siblings, leaving that to inference from the product descriptions. Still, the guidance is clear enough for an agent to decide.

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

nws_get_zone_forecastNws Get Zone ForecastA
Read-only
Inspect

Get the text forecast for a public NWS forecast zone. Returns named forecast periods (e.g., "Today", "Tonight", "Monday") with detailed narrative text — the human-readable, zone-level forecast written by local forecasters. Completes the alert-to-forecast chain: nws_search_alerts returns each affected zone in "affectedZones" as a code plus a type, and nws_find_stations returns codes in the "forecastZone" column. Only affectedZones entries with type "forecast" work here; entries typed "county" or "fire" have no text forecast upstream and will not resolve. Zone codes follow the pattern XXZ### (e.g., "WAZ315" for Western Washington lowlands).

ParametersJSON Schema
NameRequiredDescriptionDefault
zone_idYesNWS public forecast zone code (e.g., "WAZ315" for the Western Washington lowlands including Seattle). Returned as "forecastZone" by nws_get_forecast and nws_find_stations, or as the "code" of an "affectedZones" entry with type "forecast" in nws_search_alerts. Format: two-letter state + "Z" + three-digit number.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
zoneIdNoZone ID as provided (e.g., "WAZ315").
periodsNoForecast periods in chronological order, typically covering 7 days.
updatedNoWhen the zone forecast was last updated (ISO 8601 with timezone offset).
periodCountNoNumber of forecast periods returned.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description does not contradict this. The description adds meaningful behavioral context: it describes the return content (named periods, narrative text), the constraint that only 'forecast' type zones resolve, and the zone code pattern. This goes beyond the annotation without being excessive, though it omits potential error behaviors or rate limits, which are not critical given the read-only nature.

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 moderately long but every sentence carries useful information: primary purpose, return structure, integration hints, and a usage constraint. It is front-loaded with the core purpose and then elaborates. There is minimal redundancy; the only slightly verbose part is the explanation of the alert-to-forecast chain, but that is directly relevant for correct parameter selection.

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

Completeness4/5

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

The description covers the essential aspects: what the tool does, how to obtain a valid parameter, what constraints exist, and the nature of the output. Since an output schema exists, the return format need not be fully explained. While it doesn't explicitly list alternate tools for comparison, it gives enough context to avoid confusion. The integration with sibling tools is well documented, making it complete for an agent's selection and invocation.

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

Parameters4/5

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

Schema description coverage is 100%, providing a clear baseline. The description adds extra semantic value by explaining the zone ID pattern ('XXZ###'), giving a concrete example, and specifying how the ID can be obtained from other tools (as 'forecastZone' or from 'affectedZones'). This context helps the agent correctly construct the parameter beyond what the schema alone offers.

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

Purpose5/5

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

The description states a specific verb ('Get'), resource ('text forecast for a public NWS forecast zone'), and outcome (returns named periods with narrative text). It also gives concrete examples of zone codes and clearly distinguishes the zone-level forecast from other forecast types, making the tool's role unambiguous even among siblings like nws_get_forecast.

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

Usage Guidelines4/5

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

The description explains how to obtain a valid zone_id from sibling tools (nws_search_alerts, nws_find_stations) and explicitly restricts usage to affectedZones entries with type 'forecast', excluding 'county' and 'fire' types. While it doesn't explicitly compare to nws_get_forecast, it provides clear context for when this tool should be used, and the exclusion of non-forecast types gives actionable guidance.

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

nws_list_alert_typesNws List Alert TypesA
Read-only
Inspect

List all valid NWS alert event type names. Use to discover valid values for the event filter in nws_search_alerts, or to browse alert categories. No parameters required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoNumber of event types
errorNoPresent when the call failed. Absent on success.
eventTypesNoAlert event type names sorted alphabetically

TDQS

A4.7/5.0
Behavior4/5

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

The readOnlyHint annotation already signals that this is a safe read operation. The description adds the specific behavioral context that the tool returns a list of alert type names, which is beyond the annotation's binary read-only signal. While it does not mention rate limits or authentication, those are not critical for a simple listing tool, and the annotation covers safety.

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

Conciseness5/5

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

The description is three short, purposeful sentences. The first states the core action, the second gives usage context, and the third clarifies the lack of parameters. There is no fluff or redundancy, and the most important detail is front-loaded.

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 parameterless, read-only list tool, the description is complete. It explains what the tool returns (alert event type names), why it is used (to feed the event filter in nws_search_alerts or to browse), and that it requires no inputs. The output schema (present but not shown) would cover return format details, so nothing is missing from the description.

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

Parameters4/5

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

With zero parameters, the rubric sets a baseline of 4. The description's note 'No parameters required' reinforces what the empty schema already implies but does not contradict it. There is nothing more to explain about params since none exist.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'List all valid NWS alert event type names.' It clearly distinguishes this tool from siblings by stating its purpose is to provide valid values for the event filter in nws_search_alerts. This removes any ambiguity about what the tool does and its place among the sibling tools.

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?

The description explicitly states when to use the tool: 'Use to discover valid values for the event filter in nws_search_alerts, or to browse alert categories.' It gives a clear primary use case tied to a sibling tool, and a secondary browsing use, leaving no doubt about when an agent should invoke it.

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

nws_search_alertsNws Search AlertsA
Read-only
Inspect

Search active weather alerts (watches, warnings, advisories) across the US. Filter by state, coordinates, zone, land/marine region, event type, severity, urgency, or certainty. area, point, zone, region_type, and region are mutually exclusive — provide at most one. Omit all filters for a national search.

ParametersJSON Schema
NameRequiredDescriptionDefault
areaNoUS state/territory code (e.g., "WA", "OK", "PR") or marine area code (e.g., "GM"). Mutually exclusive with point and zone.
zoneNoNWS forecast zone (e.g., "WAZ558") or county zone (e.g., "WAC033"). Mutually exclusive with area and point.
eventNoFilter to specific event types (e.g., ["Tornado Warning"]). Matches are case-insensitive and partial, so "tornado" matches both "Tornado Warning" and "Tornado Watch". Use nws_list_alert_types to discover valid names.
limitNoMaximum number of alerts to include in this page (1-25, default 25). totalCount still reports the full number of distinct matches, so a small limit returns a digest of broad or national searches without dropping the total; pass the returned nextCursor as cursor to reach the rest.
pointNoCoordinates as "lat,lon" (e.g., "47.6,-122.3"). Returns alerts whose geometry contains this point. Mutually exclusive with area and zone.
cursorNoOpaque continuation token from a previous response's nextCursor. Omit for the first page. The token carries its own page size, so limit applies to the first page only. Every call re-fetches /alerts/active, so alerts are contiguous within one response but not across calls — the active set changes continuously as alerts are issued and expire, so a continued page covers the collection as it stands at that moment.
regionNoRestrict to NWS marine region groups: "AL" (Alaska waters), "AT" (Atlantic Ocean), "GL" (Great Lakes), "GM" (Gulf of Mexico), "PA" (Eastern Pacific and US West Coast), "PI" (Central and Western Pacific). Marine alerts only — a land alert never matches. Mutually exclusive with area, point, zone, and region_type.
statusNoAlert status filter. Default "Actual". Use a different value only when you specifically need non-live alerts.Actual
urgencyNoFilter by urgency level.
severityNoFilter by severity level.
certaintyNoFilter by certainty level.
region_typeNoRestrict to land-based or marine alerts. Mutually exclusive with area, point, zone, and region.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
shownNoNumber of alerts included in this response
alertsNoMatching alerts for this page (at most the requested limit, max 25)
noticeNoGuidance when no alerts matched (echoes applied filters and suggests how to broaden), when matches remain beyond this page, or when the supplied cursor points past the end of the match set.
nextCursorNoOpaque token for the next page of matches — pass it back as `cursor`. Omitted when this is the last page.
totalCountNoTotal distinct alerts matching the filters in this fetch, before the page window is applied. NWS repeats some alerts verbatim within one response; the copies are collapsed on id, so this counts each alert once. Compare against shown to tell whether matches were withheld from this page.
appliedFiltersNoSummary of applied search filters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=true; the description takes on the burden of behavioral detail. It discloses non-obvious behavior: case-insensitive/partial event matching, pagination mechanics (cursor carries its own page size, limit applies only to first page), and that each call re-fetches /alerts/active so results are contiguous within a response but not across calls. This is exactly the kind of context an agent needs.

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 long but every sentence earns its place. The core purpose and filter list come first, followed by the mutual-exclusivity rule and the national-search fallback. It avoids repetition and packs the most critical operational details (pagination, event matching) into the schema descriptions, which is appropriate. Slight verbosity in listing every filter type, but it's a complex tool.

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?

With 12 optional parameters and an output schema, the description covers all necessary operational aspects: the search scope, how each filter works, mutual exclusivity, pagination, and how to handle the cursor. It cross-references nws_list_alert_types for event discovery, which closes a potential knowledge gap. Nothing an agent needs to call this correctly is missing.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds substantial value beyond the schema: clarification of event matching (case-insensitive, partial), the meaning of totalCount with small limits, the behavior of cursor tokens, and the interpretation of region codes. It also reinforces the mutual-exclusivity rule for the group of parameters. This transforms ambiguous filters into actionable guidance.

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

Purpose5/5

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

Description opens with a specific verb+resource: "Search active weather alerts (watches, warnings, advisories) across the US." It immediately distinguishes the tool from siblings like nws_get_forecast or nws_get_observations. It also clearly enumerates filter dimensions, leaving no doubt about scope.

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

Usage Guidelines4/5

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

Provides clear context: how to filter (state, coordinates, zone, etc.), states the mutual-exclusivity rule, and explicitly covers the national-search case ("Omit all filters"). It points to nws_list_alert_types for discovering valid event names. It doesn't explicitly name alternatives or say when not to use this tool, but the sibling tools are different enough that this is unnecessary.

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

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4/5.0
Disambiguation4/5

Each tool targets a distinct data product (stations, forecast, observations, office discussion, zone forecast, alert types, alerts). Forecast-related tools are clearly differentiated by granularity and purpose, though get_forecast and get_zone_forecast could be confused by users unfamiliar with NWS terminology.

Naming Consistency5/5

All tool names follow the consistent pattern nws_verb_noun in snake_case (e.g., find_stations, get_forecast, list_alert_types). This makes the API highly predictable and easy to navigate.

Tool Count5/5

Seven tools is well within the ideal 3-15 range for a weather-focused server. Each tool covers a major NWS data category without unnecessary redundancy, making the set feel tight and purposeful.

Completeness4/5

The tool set covers the core weather workflow: station discovery, observations, forecasts, zone text, office discussions, and alert searching. Minor gaps like marine-specific products or radar imagery exist, but the essential weather information needs are well covered.