A weather service MCP server that provides current weather alerts and forecasts using the National Weather Service API
Two tools with basic verb-noun naming (get_alerts, get_forecast). Both have descriptions (50-60 chars, below the 194-char baseline), but lack depth on WHEN to use them or what they return. Input schemas present with type definitions and parameter descriptions, but output schemas are completely undocumented, LLMs cannot plan downstream calls or extract structured data. No error handling guidance; make_nws_request returns None silently, and tools return generic fallback strings. No pagination, no result limits documented. No tool annotations (readOnlyHint present in metadata but not in schema). Composition is reasonable (two distinct concerns), but responses are unstructured text rather than JSON objects.
Get current weather alerts for a specific state.
Get current weather forecast for a specific location.
Output schemas completely undocumented. Both tools return unstructured strings; LLMs cannot parse structured data or plan chained calls. No documentation of return format, fields, or structure.
Descriptions too brief (50-60 chars vs 194-char baseline). Missing WHEN to use each tool, prerequisites, and what data is returned. 'Get current weather alerts' does not explain when to call this vs get_forecast or what the output contains.
No error handling guidance. make_nws_request returns None on HTTP errors; tools return generic 'Unable to retrieve' strings. LLMs cannot distinguish retryable errors from user-fixable ones or know what to do next.
No result limits or pagination. get_alerts could return hundreds of active alerts; no limit documented, no pagination parameters, no total count. Large responses blow context windows.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Tool annotations present in metadata (Risk: READ_ONLY) but not in JSON Schema. readOnlyHint should be in input schema for LLM visibility. Idempotent operations should declare idempotentHint.