Weather MCP Server providing weather alerts and forecasts using the National Weather Service API
Three tools with basic schemas and descriptions, but significant gaps in parameter documentation and output structure. All tools have descriptions (10-50 chars, below the 50-200 char baseline for LLM optimization). Input schemas present but minimal, latitude/longitude have range constraints, but 'search' query lacks any validation guidance. No output schemas documented. Error handling returns text blobs without actionable recovery guidance. Tool composition is reasonable (get-alerts, get-forecast, search are distinct), but descriptions are too terse to guide LLM selection effectively.
Get weather alerts for a state
Get weather forecast for a location
Search the web using Perplexity.ai
Descriptions are too short (10-50 chars vs. 50-200 char baseline). 'Get weather alerts for a state' lacks context on when to use this vs. get-forecast, what format state codes must be, or what the response contains.
No output schemas documented. LLMs cannot plan downstream calls or extract structured data. Responses are free-text strings; no typed fields for chaining.
Error handling returns generic text ('Failed to retrieve alerts data', 'Error searching Perplexity.ai') without recovery guidance. LLM cannot determine if error is retryable, user-fixable, or fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
'search' tool has no input validation. Query parameter accepts any string; no length limits, format constraints, or guidance on query structure. Perplexity.ai endpoint is not a real API, tool fetches HTML and truncates to 500 chars, which is unreliable.
get-forecast returns raw NWS API response formatted as text. No pagination, no result limits, no structured fields. If forecast has 20+ periods, response bloats context window.