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 only for divide-by-zero in 'calculate'. Tool names are action verbs but lack specificity, 'add' and 'calculate' don't distinguish use cases. Parameters have types but descriptions are absent or trivial. No guidance on when to use 'add' vs 'calculate'. Schemas are visible and valid, preventing a lower score, but quality gaps are substantial.
Simple addition tool
Calculator tool with multiple operations
Tool descriptions are critically short (10-40 chars). 'Simple addition tool' and 'Calculator tool with multiple operations' lack context for LLM selection.
Parameter descriptions are missing or trivial. 'a' and 'b' parameters have descriptions like 'First number to add' but lack context on valid ranges, precision, or constraints. 'operation' enum is documented but no guidance on when to use 'calculate' vs 'add'.
No output schema documented. Tools return text content but LLMs cannot infer structure. Should document: returns a number as string, or structured object with 'result' field and optional 'error' field.
Tool naming lacks specificity. 'add' and 'calculate' are generic, LLMs cannot distinguish when to use each. 'add' should be 'add_numbers' and 'calculate' should be 'calculate_arithmetic' or similar to clarify intent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Error handling only covers divide-by-zero in 'calculate'. No guidance for invalid inputs (e.g., non-numeric 'a' or 'b', or invalid 'operation' enum). Error messages should tell LLM what to do next per pattern:recovery-guide.