Single tool 'get-next-bus' has critical definition gaps. Tool description contains a typo ('but stop' instead of 'bus stop') and is only 37 characters, below the 50-char minimum for LLM clarity. Input schema is present with proper Zod typing (stopId: string), but the parameter description is generic ('The ID of the bus stop') and lacks format guidance (what constitutes a valid stop ID?). No output schema is documented, LLMs cannot predict the response structure. Error handling returns plain text without actionable recovery guidance. The tool name 'get-next-bus' is acceptable (verb_noun pattern), but lacks specificity about what 'next' means (next departure? next arrival?). No pagination, no result limits documented, no field descriptions for the formatted response.
Get the next bus leaving from the but stop
Tool description is 37 characters with typo ('but stop'). Below 50-char minimum for LLM selection clarity. Lacks context on when to use this tool vs alternatives.
No output schema documented. LLMs cannot predict response structure (fields, types, pagination). Formatted text response wastes tokens and forces parsing.
Parameter 'stopId' lacks format constraints. No guidance on valid ID format, length, or examples. LLMs will guess and pass invalid values.
Error handling returns generic text ('Error fetching data for stop X. Please try again later.') without actionable recovery guidance or error classification.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
No result limits or pagination documented. formatStopTimesResponse() defaults to 3 results but this is not exposed in tool description or schema.