Single tool with reasonable schema and basic description. Naming follows verb_noun convention (get_forecast). Schema is properly formatted JSON with required fields. However, description is minimal (11 words) and lacks context about use cases, prerequisites, or output structure. Parameter descriptions are entirely absent, latitude and longitude are self-explanatory numerically but lack constraints (range, precision). No documented output schema or error handling guidance. Example from code: Tool 'get_forecast' has InputSchema as JSON with latitude/longitude as required properties (good), but no description of what happens on API failure, what forecast format is returned, or when to call this tool. The tool definition is explicitly visible in examples/weather/tools.go, so no inference penalty applies.
Get weather forecast for a location.
Tool description is minimal (11 words: 'Get weather forecast for a location.'). Does not explain when to use this tool, what the output contains, or prerequisites. At 11 words (~56 chars), this barely clears minimum but lacks context needed for LLM tool selection.
Input parameters (latitude, longitude) lack descriptions entirely. JSON Schema shows type 'number' but no description text, constraints, precision, or range (e.g., 'latitude: decimal degrees, -90 to 90').
No documented output schema. Code returns mcp.CallToolResponse with Content array (text elements), but the tool description does not explain what fields are in the forecast, what format is returned, or how the LLM should interpret the response. LLMs need to know what fields to expect.'
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 44 | - | v1 |
No error handling documentation. Code calls fetchPoints() and fetchForecast(), either of which could fail (network, invalid coordinates, API error). Tool description does not guide the LLM on failure modes: 'If coordinates are outside valid range, you will receive an error. Try verifying the latitude is -90 to 90 and longitude is -180 to 180.' Per pattern: error responses must tell the LLM what to do next.
Parameter constraints not documented. 'latitude' and 'longitude' are numbers, but what are valid ranges? What precision (decimal places)? Schema does not include min/max or pattern.