mcpd exhibits significant definition quality gaps. Tool schemas are present and properly typed, but descriptions are minimal (10-50 chars, well below the 194-char baseline). Two tools share the identical name 'echo', creating ambiguity. Parameter descriptions are sparse or absent. No output schemas documented. Error handling is not evident in tool definitions. The server provides a framework for building MCP tools but the example tools themselves lack LLM-optimized documentation.
Returns server admin status (admin only)
Perform basic arithmetic (add, subtract, multiply, divide)
Returns the current server time in multiple formats
Echoes back the input message
Echoes back the input (any authenticated user)
Returns a personalized greeting
Duplicate tool name 'echo' across two files (cmd/mcpd/main.go and examples/authenticated-server/main.go) creates ambiguity. LLMs cannot distinguish between them.
Tool descriptions are extremely brief (10-50 chars vs 194-char baseline). 'Echoes back the input message' and 'Returns the current server time in multiple formats' lack context for LLM selection. No explanation of WHEN to use each tool or what distinguishes similar tools.
No output schemas documented. LLMs cannot predict what fields to expect from tool results, forcing them to parse unstructured responses and plan downstream calls blindly.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
Parameter descriptions missing or minimal. 'operation' in calculate lacks enum constraint or format guidance. 'name' in greet has no length/format hints. LLMs must guess valid values.
No error handling guidance in tool definitions. No indication of retryability, user-fixable errors, or recovery steps. Agents cannot self-correct on failures.