MCPVals is an evaluation framework, not a production MCP server. The 16 tools listed are example/demo tools used for testing the evaluator framework itself, extracted from example config files and simple test servers. Critical issues: (1) Massive duplication, 'add', 'subtract', 'multiply', 'divide', and 'echo' appear 2-4 times each with inconsistent descriptions and schemas, violating single-responsibility and composition patterns. (2) Descriptions are minimal (12-35 chars), well below the 50-200 char baseline for A+ tools and below the 34-char p10. (3) Parameters lack depth, most have no description beyond the field name (bare {'type':'number'} with no range, format, or purpose guidance). (4) No output schemas documented anywhere. (5) No error handling guidance. (6) No tool composition guidance or field chaining (e.g., responses don't document which fields downstream tools need). The tools are intentionally simplistic for demonstration purposes, but as-is they would fail production code review.
Add two numbers
Add two numbers
Add two numbers together
Display a formatted message
Divide first number by second
Divide two numbers
Echo back the input message
Echo back a message
Echo back the provided message
Duplicate tool definitions across multiple files and configurations (add, subtract, multiply, divide, echo appear 2-4 times each with inconsistent descriptions and parameter documentation). Violates single-responsibility and composition principles; forces LLM to reason about which variant to use.
Tool descriptions are 12-35 characters, below the 50-char minimum and well below baseline (194 char average for A+ tools, p10=34). Descriptions lack WHAT the tool does, WHEN to use it, and any context for selection by LLMs.
Parameter descriptions are missing or trivial. Most numeric parameters ('a', 'b') have no description of range, units, or constraints. 'message' parameter lacks guidance on format, length, or encoding. Violates pattern:tool-description requirement that every parameter have a non-empty description.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 41 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 14 | - | v1 |
Get server configuration
Multiply two numbers
Multiply two numbers
Multiply two numbers
Simple ping tool that returns pong
Subtract two numbers
Subtract second number from first
No output schemas documented for any tool. Tool responses are not described, making it impossible for LLMs to know what fields to expect, plan downstream calls, or extract relevant data. Violates pattern:tool requirement for schema documentation.
No error handling guidance. Tools provide no recovery instructions (e.g., divide by zero), error classification, or actionable next steps. Violates pattern:recovery-guide and pattern:error-classification.
No tool composition guidance. Responses do not document which fields downstream tools need. If ping returns a status, there is no documentation of what that field means or how it chains to other tools. Violates pattern:tool-chain.
'divide' tool has no documented handling for divisor=0 constraint. Parameter description for 'b' says '(cannot be zero)' but no error guidance is provided if constraint is violated.