Mock terminal agent for UI and integration testing. Emulates Claude Code (and eventually Codex/Gemini) without calling any LLM APIs.
Two tools with minimal but present definitions. Both have clear names (echo, add) and basic descriptions (10-20 chars each). Input schemas are visible and properly typed (string, number). However, descriptions are extremely terse, below the 34-char p10 baseline for production tools. Parameter descriptions are minimal ('text to echo', no description for 'a' and 'b'). No output schema documented. No error handling guidance. This is a test fixture, not a production-grade server.
Add two numbers
Echo the input text
Descriptions are extremely terse (10-20 chars). 'Echo the input text' and 'Add two numbers' lack context for LLM selection. Production baseline is 34-392 chars; these fall far below p10.
Parameters 'a' and 'b' in add tool have no descriptions. LLMs cannot infer that 'a' and 'b' are numeric operands without explicit text. All params must have descriptions.
No output schema documented. Callers cannot know the structure of responses (e.g., does add return a number or a string?). Source shows add returns text via mcp.NewToolResultText(), but this is not declared in tool metadata.
No error handling guidance. If 'text' is missing or 'a'/'b' are invalid, the tools return error messages, but there is no recovery guidance for the LLM (e.g., 'Ensure text is a non-empty string').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Tool names lack action verbs. 'echo' and 'add' are nouns/verbs but do not follow verb_noun convention (e.g., 'echo_text', 'add_numbers'). Ambiguity increases when many tools are available.