MCP server providing weather alerts and forecast data from the National Weather Service API
Server has 4 tools with basic schemas and descriptions, but significant quality gaps. Tool naming is acceptable (verb_noun pattern), but descriptions are minimal (10-50 chars, below the 50-200 char baseline for LLM optimization). Input schemas are present but lack parameter descriptions, critical for LLM reasoning. No output schemas documented. Duplicate tool 'get_alerts' appears twice (lines in client-sse.py and server.py), indicating poor tool registration hygiene. Error handling is minimal (returns plain strings, no recovery guidance). No input validation, no enum constraints, no parameter ranges. The 'echo_resource' tool appears to be a test artifact unrelated to weather domain.
Echo a message as a resource
Get weather alerts for a US state.
Get weather alerts for a US state.
Get weather forecast for a location.
Duplicate tool registration: 'get_alerts' defined in both client-sse.py and server.py with identical schemas. Indicates poor tool lifecycle management and will confuse LLM tool selection.
Parameter descriptions missing. Input schemas define 'state' and 'latitude'/'longitude' but provide no descriptions explaining format, constraints, or valid ranges. LLMs cannot infer parameter meaning from names alone.
Tool descriptions are too brief (10-50 chars vs. baseline 50-200 chars). 'Get weather alerts for a US state' lacks context on when to use this vs. get_forecast, what data is returned, or error conditions.
No output schemas documented. Tools return plain strings; LLMs cannot plan downstream calls or extract structured data. Should return JSON with fields like 'alerts[]', 'forecast_periods[]', 'error_message'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
No input validation or error guidance. Errors return plain strings ('Unable to fetch alerts') with no recovery hints. Should return structured errors with actionable next steps (e.g., 'Invalid state code. Valid codes: CA, NY, TX, ...').