Single tool 'getJokes' has a basic description and input schema, but falls short of production standards. Description is 67 chars (within acceptable range) but lacks context on when/why to use it. Input schema defines 'n' as number with description, but lacks constraints (min/max). No output schema documented. Tool is read-only but lacks explicit idempotent annotation. No error handling guidance. Overall, this is a template/scaffold tool, not a production MCP server, the template itself is minimal and lacks the depth expected of a real agent tool.
Gets n random programming jokes using the JokeAPI.
Input schema lacks numeric constraints. Parameter 'n' has no min/max bounds, allowing LLMs to pass absurd values (0, -1, 1000000) that break the JokeAPI or waste tokens.
No output schema documented. LLMs cannot predict the response structure (array of jokes? object with metadata?). This forces parsing guesswork and wastes tokens.
Description lacks context on when/why to use this tool. 'Gets n random programming jokes' is functional but does not explain use cases, prerequisites, or what the response contains.
No error handling guidance. If JokeAPI is down or returns invalid data, the tool returns raw JSON without recovery hints. LLMs cannot self-correct.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
Tool is read-only but lacks explicit idempotent annotation. LLMs should know this is safe to retry, but the schema does not declare it.