Weather forecast and current weather data server using Open-Meteo API
Two tools with minimal descriptions (16-17 chars each, below 20-char threshold) and basic parameter documentation. Both tools have proper input schemas with typed float parameters and descriptions. However, output schemas are completely undocumented, get_forecast returns a formatted string, get_current_weather returns raw JSON dict, but LLMs cannot plan downstream actions without knowing the structure. No error handling guidance, no pagination despite potentially large result sets, no idempotency hints. Tool names follow verb_noun pattern (get_*) which is correct. Parameters lack range constraints (latitude/longitude should be -90..90 and -180..180). No security considerations documented despite calling external APIs.
Get current weather for a location.
Get weather forecast for a location.
Descriptions below 20-character minimum. 'Get weather forecast for a location.' (16 chars) and 'Get current weather for a location.' (17 chars) lack context for LLM tool selection. Should explain WHEN to use each tool (forecast vs current), what data is returned, and any prerequisites.
Output schemas completely undocumented. get_forecast returns formatted string; get_current_weather returns raw dict with temperature_2m, wind_speed_10m, etc. LLMs cannot plan multi-step workflows or extract specific fields without knowing response structure. Must document all output fields with types.
Parameters lack range constraints. latitude and longitude accept any float but should be constrained to -90..90 and -180..180 respectively. Unbounded numeric parameters let LLMs pass invalid values that fail silently or cause API errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
No error handling guidance. make_openmeteo_request() silently returns None on any exception (network timeout, invalid coordinates, API rate limit, malformed response). Tools return generic 'Unable to fetch' message. LLM cannot distinguish retryable errors from user-fixable ones or know what to do next.
No pagination or result limits documented. Daily forecast could return 365+ days; hourly could return thousands of records. Large responses waste tokens and risk context window exhaustion. Should cap results and document limit in description.