Single tool with basic structure but significant gaps. Tool name 'get_weather' follows verb_noun convention (+). Description is present but minimal (47 chars, below 50-200 char baseline for LLM optimization). Input schema is properly typed with location parameter, but lacks enum constraints, format specifications, or range limits. No output schema documented, LLMs cannot predict response structure. No error recovery guidance beyond generic exception handling. Missing parameter descriptions for 'location' (only 'The city name or location to get weather for', 47 chars, acceptable but minimal). No pagination, rate limiting, or result limits documented despite calling external API. Tool is read-only (good), but no explicit idempotentHint annotation.
Get current weather information for a location
No output schema documented. LLMs cannot predict response structure (returns object with location, current_condition, weather_description, temperature_C, temperature_F, humidity, wind_speed). Without documented output schema, agents cannot plan downstream operations or extract fields reliably.
Location parameter lacks format constraints and examples. Description does not specify: accepted formats (city name only? 'City, Country'? coordinates?), length limits, character restrictions, or what happens with ambiguous names (e.g., 'Springfield' exists in 30+ US states). LLMs will guess and pass invalid values.
No error recovery guidance. Handler throws generic 'Failed to get weather for {location}: {error.message}' without categorizing errors (retryable vs. user-fixable vs. fatal) or suggesting next steps. If wttr.in API is down or location is invalid, LLM has no guidance on recovery.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
No rate limiting, timeout, or result limits documented. External API call to wttr.in has no explicit timeout, agent could hang indefinitely. No mention of rate limits or what happens if called repeatedly in a loop.
Tool lacks idempotentHint annotation. Weather queries are idempotent (same location → same result), but this is not declared in schema. Agents cannot confidently retry on transient failures without this hint.