A simple MCP server providing calculator tools with basic arithmetic operations
Two tools with basic schemas and minimal descriptions. Both tools have input schemas with proper types (number, string enum), but descriptions are extremely short (10-40 chars) and lack context for LLM selection. No output schema documentation. Error handling present (divide-by-zero check) but not generalized. Tool names are action verbs but lack specificity, 'add' and 'calculate' don't clearly distinguish when to use each. No parameter descriptions beyond type hints. Schemas visible and properly typed, but descriptions fall well below the 194-char baseline for production tools.
Simple addition tool
Calculator tool with multiple operations
Tool descriptions critically short (10-40 chars vs 194-char baseline). 'Simple addition tool' and 'Calculator tool with multiple operations' lack context for LLM selection, when to use each tool, and what they return.
No parameter descriptions. Input schema defines types (number, string enum) but LLMs cannot infer meaning from names alone. 'operation' parameter lacks explanation of what each enum value does or when to use each.
No output schema documented. LLMs cannot plan downstream calls or extract structured data. Response format (text content array) is implicit, not declared.
Tool naming ambiguity: 'add' and 'calculate' both perform addition. LLM must reason about which to call. 'add' should be 'add_numbers' or removed in favor of 'calculate' with clearer operation enum.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Error handling only for divide-by-zero; no guidance for LLM on recovery. Error message 'Cannot divide by zero' is user-friendly but lacks actionable next steps or error classification (retryable vs fatal).