Weather MCP Server that provides weather alerts and forecasts using the National Weather Service API
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and output structure. Both tools have verb-noun naming (get-alerts, get-forecast) and non-empty descriptions (10-50 chars, below the 50-200 char LLM-optimized baseline). Input schemas are present with Zod validation and type constraints, but parameter descriptions are minimal. No output schema documentation. Error handling returns text responses but lacks actionable recovery guidance. No tool annotations (readOnlyHint, idempotentHint). Composition is sound, each tool does one thing, but responses are unstructured text rather than typed objects.
Get weather alerts for a state
Get weather forecast for a location
Output schema not documented. Tools return unstructured text in content[].text rather than typed objects. LLMs cannot plan downstream calls or extract structured data.
Tool descriptions are too short (10-50 chars). Baseline for LLM-optimized descriptions is 50-200 chars. Current descriptions lack context on WHEN to use each tool and what to expect.
No tool annotations. Tools lack readOnlyHint, idempotentHint, or destructiveHint. Agents cannot determine retry safety or side effects.
Error responses lack recovery guidance. Errors return bare text like 'Failed to retrieve alerts data' without suggesting next steps (e.g., 'Try a different state code' or 'This location may not be supported').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
No pagination support. If alerts or forecast periods exceed a reasonable limit, responses could bloat context. No limit parameter or cursor mechanism.