A weather MCP server that provides weather alerts and forecasts using the National Weather Service API
Two tools with basic verb-noun naming (get_alerts, get_forecast). Both have short descriptions (34-40 chars, below the 50-200 char baseline for LLM-optimized descriptions). Input schemas are present with type definitions and parameter descriptions, meeting minimum requirements. However, output schemas are completely undocumented, tools return free-form strings with no structured field definitions. No error handling guidance, no pagination support, no output field documentation. No tool annotations (readOnlyHint, etc.). Composition is reasonable (two distinct concerns), but descriptions lack context on when to use each tool or what to expect in responses.
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 operations or extract specific data fields.
Descriptions are too short (34-40 chars vs. baseline 50-200 chars). Lack context on when to use each tool, what data is returned, and how results differ. Insufficient for LLM tool selection.
No error handling guidance. Tools return generic strings like 'Unable to fetch alerts' with no recovery hints. LLMs cannot determine if errors are retryable or what to do next.
No pagination support. get_alerts returns all active alerts for a state with no limit or offset. Large result sets will blow context windows and degrade LLM reasoning.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
No tool annotations. Tools lack readOnlyHint, destructiveHint, or idempotentHint metadata. Agents cannot determine safety properties or retry behavior.