An MCP server that provides tools to query monkey data from an external API
Two tools with minimal descriptions (10-20 chars each) and no parameter descriptions. GetMonkeys has empty input schema ({}); GetMonkey has one parameter with a description. No output schemas documented. No error handling guidance. No tool annotations. Naming is verb-based but descriptions are too terse to guide LLM selection. Lacks pagination, result limits, and structured output documentation.
Get a monkey by name.
Get a list of monkeys.
Tool descriptions are under 20 characters and provide no context for LLM selection. 'Get a list of monkeys.' and 'Get a monkey by name.' lack WHEN to use, prerequisites, or return structure guidance.
GetMonkeys has empty input schema ({}). No output schema documented. LLM cannot infer what fields are returned or plan downstream tool calls.
No error handling guidance. If GetMonkey receives an invalid name or the service fails, the tool returns null JSON with no recovery hint. LLM cannot determine if it should retry, search differently, or ask the user.
No pagination or result limits. GetMonkeys fetches and returns all monkeys without limit. If the list grows to hundreds, response bloats context window and degrades LLM reasoning.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 32 | <=2025-11-25 | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Both tools are read-only but this is not declared in the schema, forcing LLM to infer safety from the name alone.