Weather MCP server providing access to US National Weather Service alerts and forecasts
Two tools with basic verb-noun naming (get_alerts, get_forecast). Both have short descriptions (34-40 chars, below the 50-200 char LLM-optimized baseline). Input schemas are present with typed parameters and descriptions, but output schemas are completely undocumented, tools return free-form strings with no structured field definitions. No error handling guidance, no parameter constraints (e.g., state code validation), and no indication of what fields the LLM should expect in responses. Composition is reasonable (two distinct concerns), but lack of structured output and error recovery patterns significantly limits agent usability.
Get weather alerts for a US state.
Get weather forecast for a location.
Output schemas completely undocumented. Both tools return free-form strings with no structured field definitions. LLMs cannot plan downstream calls or extract specific data fields.
Tool descriptions are too short (34-40 chars vs. 50-200 char baseline). Lack context for LLM selection and do not explain WHEN to use each tool or what to expect.
No error handling guidance. make_nws_request() silently returns None on any exception, and tools respond with generic strings like 'Unable to fetch alerts'. LLMs receive no actionable recovery hints.
Input validation missing. get_alerts accepts any string for 'state' parameter with no enum constraint or format validation. Invalid state codes will silently fail at the API level.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
No pagination or result limits documented. get_forecast hardcodes limit to 5 periods, but this is not mentioned in the description. get_alerts could return hundreds of alerts with no limit.