Debug Model Context Protocol servers in depth, from the command line or a native desktop window
Coco MCP is a debugging/testing tool, not a production agent server. All 6 tools are test fixtures with minimal descriptions (10-40 chars), no input validation, and no output schemas. Tools like 'elicit', 'sample', and 'roots' expose deprecated MCP patterns. The 'exit' tool is destructive with no confirmation. Naming is generic ('echo', 'stderr') rather than action-oriented. No parameter descriptions beyond type names. This is a reference implementation for MCP protocol testing, not a model for production tool design.
Echo back the input text
Request user input via elicitation
Exit the server process
Query filesystem roots from the client
Request LLM sampling from the client
Write to stderr log
Deprecated MCP patterns exposed as tools: 'elicit' (server-initiated elicitation), 'sample' (server-initiated sampling), 'roots' (filesystem roots query). These patterns were removed/deprecated in MCP 2025+. Production servers should not expose these as callable tools.
Destructive tool 'exit' lacks confirmation/dry-run pattern. Calling exit(code=0) immediately terminates the server with no recovery option. No idempotentHint or destructiveHint annotation.
All tool descriptions are under 40 characters and lack context. 'Echo back the input text' (27 chars) does not explain when to use echo vs other tools, what it returns, or prerequisites. No parameter descriptions beyond type names.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2025-06-18+ | v2 |
No output schemas documented. Tools return unstructured responses (inferred from test code). LLMs cannot plan downstream calls or extract structured data.
No error handling guidance. Tools fail silently or with generic errors. No recovery hints, retryability classification, or actionable error messages for LLMs.