Six tools with basic descriptions and minimal parameter documentation. All tools are READ_ONLY and follow verb_noun naming (get_*). However, descriptions are generic (10-50 chars), lack context on when to use each tool, and most parameters are undescribed. No output schemas documented. Error handling is minimal, tools return raw API responses without guidance on failures. The get-chuck-joke-by-category tool has a single parameter with a description, but others lack parameter documentation entirely. No tool annotations (readOnlyHint, etc.) despite all being read-only.
Get all available categories for Chuck Norris jokes
Get a random Chuck Norris joke
Get a random Chuck Norris joke by category
Get a random dad joke
Get a child-friendly family life joke generated by GPT-4.1
Get a random Yo Mama joke
Descriptions are too short (10-50 chars) and lack context. LLMs cannot determine when to select each tool or how it differs from similar tools. E.g., 'Get a random Chuck Norris joke' vs 'Get a random dad joke', no guidance on which to use when.
No parameter descriptions for most tools. Only get-chuck-joke-by-category documents its 'category' parameter. Tools with no parameters (get-chuck-joke, get-chuck-categories, get-dad-joke, get-family-life-joke, get-yo-mama-joke) lack input documentation.
No output schemas documented. Tools return text content but LLMs cannot plan downstream operations or validate responses. Baseline: 100% of A+ tools document return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
No error handling guidance. Tools call external APIs (chucknorris.io, icanhazdadjoke.com, OpenAI) without try-catch recovery messaging. If an API is down, LLMs receive raw errors with no recovery path.
No tool annotations despite all tools being read-only. Adding readOnlyHint=true would signal to agents that these tools are safe to call without confirmation.