Simple MCP server with two basic tools. Both tools have verb-based names and descriptions, but descriptions are minimal (16-20 chars), falling below the 34-392 char baseline and below the 10-1024 char recommendation. Parameters are properly typed (integer/string) with required constraints, but completely lack descriptions, every parameter is undescribed. No documented output schemas, no parameter constraints beyond type, and no error handling guidance. The tools follow the tool_router pattern correctly with explicit #[tool] macros, but fall short on documentation completeness needed for production LLM use.
Add two numbers
Echo back a message
All parameters lack descriptions. Parameters 'a' and 'b' in 'add', and 'message' in 'echo' have no documentation. LLMs cannot infer parameter purpose from names alone.
Tool descriptions are extremely brief (16-20 characters). Baseline for production tools is 34-392 chars. Current descriptions lack WHEN to use, WHAT it does in detail, and any prerequisites.
Output schemas not documented. While the code returns Json<MathResponse> and Json<EchoMessage>, the tool registration does not expose structured output schema documentation to the MCP client.
No numeric parameter constraints. The 'add' tool accepts arbitrary i32 values with no min/max constraints. LLMs may pass unreasonable values.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 37 | 2025-06-18+ | v1 |
No error guidance. If the add operation overflows or echo fails, no recovery hint is provided to the LLM (pattern: recovery-guide).