A minimal Model Context Protocol server implementation in Go with JSON-RPC 2.0 dispatch, stdio and streamable HTTP transports, and the MCP lifecycle and tools protocol layer.
MiniMCP has only 2 tools with minimal definitions. The 'echo' tool has a basic but adequate schema and description (47 chars). The 'fail' tool has no description at all (0 chars, violates critical rule). Neither tool has output schemas documented. Parameter descriptions are minimal. No error handling guidance. No tool annotations. Naming is generic ('echo', 'fail') and does not follow verb_noun patterns that convey intent. This is a test/demo server, not production-grade.
Echoes the input message back to the caller.
Always returns a tool execution error.
Tool 'fail' has no description. Critical rule violation: every tool must have a non-empty description so LLMs can determine when to select it.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract return data without knowing the response structure.
Tool names 'echo' and 'fail' are generic and do not follow verb_noun convention. 'echo' should be 'echo_message'; 'fail' should describe what it actually does (e.g., 'trigger_error').
No error handling guidance. Error responses do not tell the LLM what to do next or how to recover.
Parameter 'message' in 'echo' tool has minimal description (18 chars). Should explain format, constraints, and use case.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 34 | 2026-07-28+ | v2 |