A Model Context Protocol server that fetches weather data from OpenWeatherMap
Single tool with basic structure but significant quality gaps. The fetch_weather tool has a description, but it is generic (8 words) and does not explain WHEN to use it, WHAT it returns, or any prerequisites. Parameter descriptions are minimal (6-18 words each) and lack constraint details. No output schema is documented. The tool accepts optional lat/lon OR query, but this mutual-exclusivity dependency is not clearly stated in parameter descriptions. No error handling guidance provided, the tool raises ValueError but does not guide recovery. No pagination support despite weather data potentially being list-based. Tool naming 'fetch_weather' is acceptable (verb_noun pattern) but generic; more specific names like 'get_current_weather' would better distinguish from related operations.
Fetch weather data from OpenWeatherMap
Tool description is too generic (8 words) and lacks context. Does not explain WHEN to use it instead of alternatives, WHAT fields are returned, or prerequisites (e.g., API key requirement).
No output schema documented. LLMs cannot plan downstream operations or extract fields without knowing the structure of returned weather data (temperature, humidity, wind speed, etc.).
Parameter descriptions lack constraint details. 'Latitude coordinate (optional if query is provided)' does not specify the valid range (-90 to +90). Similar vagueness for longitude and query parameters.
Mutual-exclusivity constraint (lat/lon vs query) is documented in parameter descriptions but not enforced in schema. LLMs may pass both or neither, causing ambiguity. Should use oneOf or clearer validation messaging.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 38 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 33 | - | v1 |
Error handling does not guide recovery. ValueError('Either lat/lon or query must be provided') is a raw error message. Should return structured error with actionable guidance: e.g., 'Missing location: provide either (lat, lon) or query'.
API key (OPENWEATHERMAP_API_KEY) is correctly injected server-side via environment variable, which is good. However, no documentation that this is a requirement or how to configure it.
No pagination support. OpenWeatherMap API returns a single weather snapshot, but if extended to support multi-day forecasts or similar, no limit/offset parameters present. Tool description does not clarify scope.