Two tools with clear action verbs (get_alerts, get_forecast) and reasonable descriptions (51-63 chars, within typical range). Input schemas are present with type information and parameter descriptions. However, output schemas are completely undocumented, both tools return unstructured strings ('str' return type visible in code, no schema describing what fields/structure the strings contain). Error handling is minimal: network failures return generic 'Unable to fetch' messages without recovery guidance. No pagination support despite potential for large alert lists. No input validation constraints (e.g., valid state code format for get_alerts). Parameter 'state' lacks enum constraint for 50 US states, inviting hallucinated values. No documentation of what structured fields are present in returned alert/forecast strings, forcing LLMs to parse unstructured output.
Get weather alerts for a US state.
Get weather forecast for a location.
Output schemas completely undocumented. Both tools return unstructured strings with no documented structure, field names, or format. LLMs must parse string output, wasting tokens and increasing hallucination risk.
Missing input validation and constraints. 'state' parameter in get_alerts accepts free-form string with no enum of valid 50 US state codes. 'latitude'/'longitude' in get_forecast have no min/max bounds or coordinate validation. Invites hallucinated invalid inputs.
Error handling is minimal and non-actionable. Both tools return generic 'Unable to fetch' or 'No alerts found' strings without recovery guidance. LLMs receive no indication whether to retry, check parameters, or report to user.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 41 | - | v1 |
No pagination support. get_alerts could return hundreds of active weather alerts but provides no way for LLM to page results. Large responses blow context windows and degrade reasoning.
Parameter descriptions lack format/constraint details. 'state' description says 'Two-letter US state code (e.g. CA, NY)' but does not state this is REQUIRED or list valid values. 'latitude'/'longitude' lack bounds (typically ±90 and ±180).