Make your custom tools accessible across multiple protocols, including MCP, REST and CLI.
Single tool 'my_tool' has critical definition gaps. Input schema visible but severely incomplete: parameter descriptions are generic Pydantic model references, not actionable LLM guidance. Tool description is absent (inferred from code only). No output schema documented. Parameter 'a' (str, required) and 'b' (int, default 0) lack individual descriptions explaining their purpose, constraints, or valid ranges. No error handling guidance. Tool naming is generic and does not follow verb_noun pattern. Code shows infrastructure for multi-protocol exposure but tool definitions themselves are underdeveloped.
Tool 'my_tool' has no description. LLMs cannot determine when or why to select this tool without explicit guidance on its purpose and use case.
Tool name 'my_tool' is generic and does not start with an action verb (get_, create_, update_, search_, etc.). LLMs rely on verb-prefixed names to infer intent before reading descriptions.
Parameters 'a' and 'b' lack individual descriptions. Schema shows types (str, int) but no guidance on what each parameter controls, valid ranges, or constraints. Parameter 'b' defaults to 0 with no explanation of why or when to override it.
No output schema documented. LLMs cannot plan downstream tool calls or extract results without knowing what fields the tool returns.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 30 | 2026-07-28+ | v2 |
No error handling or recovery guidance. Tool provides no actionable error messages to guide LLM retry or fallback behavior.