Introduction to MCP Server for Weather API
Two tools with basic verb-noun naming (get_alerts, get_forecast). Both have descriptions (50-60 chars, below the 194-char baseline) and visible input schemas with typed parameters. However, descriptions lack context on WHEN to use each tool, prerequisites, or what the output contains. No output schema documentation. Parameters have descriptions but lack constraints (e.g., state code format, lat/lon bounds). Error handling returns plain strings with no recovery guidance. No tool annotations (readOnlyHint, etc.). Overall: functional but minimal, typical of introductory MCP servers.
Get weather alerts for a US state.
Get weather forecast for a location.
Output schema not documented. Tools return plain strings; LLMs cannot parse structured fields or plan downstream calls. Baseline: 100% of A+ tools document return types.
Descriptions too brief (50-60 chars vs 194-char baseline). Missing WHEN to use, prerequisites, and what output contains. LLMs cannot determine tool selection criteria.
Parameter 'state' lacks format constraint. Description says 'Two-letter US state code' but no enum or regex pattern. LLMs may pass invalid values like 'California' or 'ca'.
Latitude/longitude parameters lack bounds. No min/max constraints documented. LLMs could pass absurd values (e.g., lat=999, lon=-999) causing API errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Error handling returns generic strings ('Unable to fetch alerts') with no recovery guidance. Per pattern:recovery-guide, errors should suggest next steps (e.g., 'Try a different state code').