Single tool 'get-weather' has a valid Zod schema with proper type and description, but the tool description itself is inadequate. The description 'The name of the city to get weather information for' is a parameter description, not a tool description, it fails to explain WHAT the tool does, WHEN to use it, or what it returns. No output schema is documented. Error handling returns plain text in a 'text' field with an isError flag, but provides no recovery guidance. The prompt 'check-weather' is present but does not compensate for tool-level gaps. Overall structure is present but falls short of production quality.
The name of the city to get weather information for
Tool description is missing. The string 'The name of the city to get weather information for' is a parameter description, not a tool description. Tool description must explain what the tool does, when to use it, and what it returns.
Output schema is not documented. LLMs cannot plan downstream calls or extract data without knowing the structure of the response. Document the shape of the returned weather data.
Error handling provides no recovery guidance. When the tool fails, it returns 'Error fetching weather data: <message>' with isError=true, but does not tell the LLM what to do next (retry, ask user, check parameters, etc.).
Parameter description is generic and lacks format/constraint details. 'The name of the city to get weather information for' does not specify expected format, length limits, or examples of valid input (e.g., 'City name (2-50 characters, e.g., New York, London)').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
No input validation or error messages guide the LLM. If an invalid city is passed, the tool returns a generic error. Provide actionable feedback like 'City not found. Try a major city name (e.g., New York, Paris, Tokyo).'