Weather MCP Server that provides US weather alerts and forecasts via the National Weather Service API
This server defines 2 tools with basic but incomplete implementation. Both tools have acceptable names starting with action verbs (get-alerts, get-forecast) and short descriptions (34-46 chars, within the 10-1024 baseline). Input schemas are present and use Zod with type constraints. However, critical gaps exist: output schemas are completely undocumented (tools return unstructured text only, no structured response field contracts), error handling lacks guidance for LLM recovery, no pagination support despite potentially large result sets, and parameter descriptions are minimal. The tool descriptions answer 'what it does' but lack 'when to use it' and 'prerequisites' context. Most concerning: both tools return raw text concatenation rather than structured objects, violating the pattern:response-shaper rule. The server would receive a code review with findings about response structure and error guidance.
Get weather alerts for a state
Get weather forecast for a location
No output schemas documented for either tool. Both return { content: [{ type: 'text', text: '...' }] } with unstructured text. LLMs cannot plan downstream operations or extract structured fields.
Error handling responses are unhelpful to LLMs. Examples: 'Failed to retrieve alerts data', 'Failed to retrive forecast data' (typo in source). These do not tell LLM what to do next, whether to retry, or why the call failed.
Parameter descriptions contain example values (e.g. 'e.g. CA, NY' in state param, 'locatione' typo in longitude). LLMs may reuse examples literally rather than adapting to context.
No pagination or result limits documented. Both tools fetch from NWS API and format all results as raw text. For alerts covering a large state, response could be very large, wasting tokens and risking context window exhaustion.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 47 | - | v1 |
Tool descriptions lack context: no mention of NWS API coverage (US-only), no prerequisites documented, no hints about when to use get-alerts vs get-forecast. Minimal guidance for LLM tool selection.
Typo in get-forecast longitude description: 'Longitude of the locatione' (should be 'location'). Reduces credibility of documentation.