MCP server for fetching US weather alerts and forecasts from the National Weather Service API
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. get_alerts has a single string parameter with minimal description; get_forecast has two numeric parameters with NO descriptions at all (null values visible in source). Neither tool documents return structure or error handling. Descriptions are present but generic (10-50 chars), below the 194-char baseline for production tools. No enum constraints, no pagination support, no error recovery guidance. Tool names follow verb_noun pattern (positive), but parameter quality is poor.
Get weather alerts for a US state. Input is Two-letter US state code (e.g. CA, NY)
Get US weather forecast for a specific latitude/longitude
get_forecast parameters lack descriptions entirely. latitude and longitude have null description fields in schema, violating pattern:tool-description. LLMs cannot infer parameter meaning from names alone.
No output schema documented for either tool. Responses are unstructured text lists (TextContent). LLMs cannot plan downstream calls or extract structured data. Violates pattern:response-shaper.
No pagination support. get_alerts returns all active alerts for a state with no limit or offset parameters. Large result sets will exhaust context window. Violates pattern:paginated-result.
Error handling is minimal. Invalid state codes or lat/lon values return generic 'parameter required' messages. No guidance on valid state codes (e.g., 'Two-letter US state code'), no recovery suggestions, no API error translation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
Tool descriptions are too short (10-50 chars vs 194-char baseline). get_alerts description includes example in text ('e.g. CA, NY') rather than enum constraint. Violates pattern:constrained-input.