A weather information server that provides weather alerts and forecasts using the National Weather Service API
Two tools with basic verb-noun naming (get_alerts, get_forecast). Both have short descriptions (40-50 chars) and documented input schemas with type and description fields. However, descriptions lack context on WHEN to use each tool, prerequisites, or what the output structure contains. No output schema documentation. Error handling returns plain strings without recovery guidance. Parameters are minimally described (state code, lat/lon) but lack constraints (e.g., state must be 2-letter code, lat/lon ranges). No pagination, no structured output, no tool annotations. Follows basic pattern:tool structure but misses pattern:tool-description depth and pattern:response-shaper rigor.
Get weather alerts for a US state.
Get weather forecast for a location.
Descriptions lack context and recovery guidance. 'Get weather alerts for a US state' does not explain WHEN to call this vs get_forecast, what the output contains, or what to do if the state code is invalid.
No output schema documented. Callers cannot know the structure of returned strings (are they JSON, markdown, plain text?) or what fields to extract for downstream operations.
Parameter descriptions lack constraints. 'state' should specify '2-letter US state code (e.g., CA, NY, TX)' with a note that invalid codes return 'Unable to fetch alerts'. Latitude/longitude lack range constraints (±90, ±180).
Error handling returns generic strings ('Unable to fetch alerts or no alerts found') without recovery guidance. LLM cannot determine if the error is retryable, user-fixable, or fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, idempotentHint). Both tools are read-only and idempotent, but this is not declared in the schema, forcing LLMs to infer safety properties.