Single tool 'get-joke' has a valid schema and basic description, but falls short of production quality. Description is only 31 characters ('Get a random programming joke'), below the 50-200 char baseline for LLM-optimized descriptions. No input parameters means no parameter descriptions to evaluate. Tool lacks error handling guidance, output schema documentation, and context about when/why to use it. No tool annotations (readOnlyHint, etc.). The implementation is functional but minimal, typical of a demo server, not production-grade.
Get a random programming joke
Description too short (31 chars). LLM cannot determine when to call this tool vs alternatives or what to expect. Baseline is 50-200 chars.
No output schema documented. LLM cannot plan downstream operations or extract structured data from the response.
No error handling guidance. If the external joke API fails or returns malformed data, the error message does not guide the LLM on recovery.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLM cannot infer safety properties of the tool.
Tool name 'get-joke' is clear, but description lacks context: WHEN to use it, WHAT it returns, and any prerequisites (e.g., requires internet access).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |