Complete testing & debugging toolkit for MCP (Model Context Protocol) servers
This is a dev-kit/testing framework, not a production MCP server. The 9 tools are example implementations across multiple example servers (logger, test-suite, snapshot). Critical issues: 3 duplicate 'echo' tools (tools 1, 7, 8 are identical), indicating poor deduplication or test artifact leakage. Most tool descriptions are extremely brief (10-20 chars), below the 50-200 char baseline for LLM optimization. Parameter descriptions are minimal or absent (e.g., 'add' tool has no param descriptions at all). No output schemas documented. Error handling is not evident in the example code. The framework itself is well-structured (TypeScript, Zod validation, testing utilities), but the example tools demonstrate poor definition quality.
Adds two numbers
Performs arithmetic operations
Echoes back the message
Echo back a message
Echoes back the message
Formats a message with timestamp
Get GitHub repository information
List files in a directory with metadata
Duplicate tool definitions: 'echo' appears 3 times (tools 1, 7, 8) with identical schemas and descriptions. Indicates poor test artifact management or example server pollution.
Tool descriptions are critically short (10-35 chars). Baseline is 50-200 chars for LLM optimization. Examples: 'Echoes back the message' (23 chars), 'Formats a message with timestamp' (32 chars). Too brief to guide LLM tool selection.
Parameter descriptions missing or minimal. 'add' tool has no descriptions for 'a' and 'b' parameters. 'list_files' path param lacks guidance on expected format. Violates pattern:tool-description requirement that every parameter must have a description.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
Execute database query and return results
No output schemas documented. Tools return results but no schema is visible for what fields/structure the LLM should expect. Prevents downstream tool chaining and forces LLMs to infer output structure.
No error handling guidance visible in tool definitions. No indication of retryability, user-fixable vs fatal errors, or recovery steps. Example code shows basic error throws but no structured error classification.