Model Context Protocol server for weather information using Open-Meteo API
Single tool (get_weather) with clear naming and basic schema. Tool name starts with verb (get_) per pattern. Description present but generic. Input schema has type definitions and parameter description. Output schema not documented, critical gap. No error guidance or recovery hints. No tool annotations. Lacks pagination, limits documentation, and actionable error messages. Baseline comparison: average param description length is 72 chars; this tool's param description is 82 chars (acceptable). Tool description is 174 chars (within 10-1024 range). Scoring: naming (75), description (60), schema (65), overall 67 → average 67. But missing output schema documentation and error guidance pull this to 62.
Get current weather information for a specified location. Returns temperature, humidity, wind speed, and conditions.
Output schema not documented. LLMs cannot infer the structure of the response (temperature, humidity, windSpeed, etc.). This violates pattern:tool and pattern:tool-description. Agent cannot plan downstream operations or extract fields reliably.
No error guidance or recovery hints. When location not found, error is 'Location not found', lacks actionable next step (e.g., 'Try search_locations() with partial name or check spelling'). Per pattern:recovery-guide, errors must guide the LLM toward resolution.
Tool description includes example values ('London', 'New York', 'Tokyo'). Should use constraints (enum of supported regions or format pattern) instead, or omit examples entirely.
No tool annotations. Per current MCP spec (2026-07-28), tools should declare readOnlyHint, destructiveHint, or idempotentHint in metadata. get_weather should have readOnlyHint=true to signal it is safe and side-effect-free.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 50 | - | v1 |
No result limits or pagination documented. If API returned 500 weather records (unlikely but possible for multi-location queries), response could bloat context. Tool description should state 'Returns weather for a single location' and cap results explicitly.