An MCP server that provides weather alerts and forecasts using the National Weather Service (NWS) API
Server has 4 tools with basic schemas and descriptions, but significant quality gaps. Two tools are duplicates (get_alerts appears twice with minor description differences). Descriptions are present but generic (10-50 chars, below the 50-200 char LLM-optimized baseline). Parameters lack detailed constraints (no enums, ranges, or format specifications). No output schemas documented. Error handling is minimal, tools return plain strings without structured guidance. No tool annotations (readOnlyHint, etc.). 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 definition: get_alerts appears twice (mcpserver/server.py and mcpserver/client-sse.py) with inconsistent descriptions. LLMs will be confused about which to call.
Descriptions are too short (10-50 chars vs. 50-200 char baseline). 'Get weather alerts for a US state' lacks context on when to use it, what it returns, or prerequisites. LLMs cannot reliably select the right tool.
No output schemas documented. Tools return plain strings; LLMs cannot parse structured results or chain to downstream tools. E.g., get_forecast returns formatted text, not a structured forecast object with temperature, wind, etc.
Parameter constraints missing. 'state' parameter accepts any string; no enum of valid US state codes. 'latitude' and 'longitude' lack range constraints (±90, ±180). LLMs will pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
echo_resource tool is unrelated to weather domain and appears to be a test artifact. Pollutes the tool namespace and confuses agents about server purpose.