A basic calculator MCP server that performs arithmetic operations
This is a minimal calculator server with serious quality gaps across naming, descriptions, and parameter documentation. All four tools (add, subtract, multiply, divide) are functionally simple but lack the rigor expected of production-grade MCP servers. Tool names are simple verbs but provide no context about what domain they operate in. Descriptions are present but extremely terse (10-26 characters), well below the 50-200 character baseline for LLM-optimized descriptions. Parameters have type definitions (int) but completely lack descriptions, the rubric requires every parameter to have a description explaining what it controls. The divide tool has basic error handling (zero-check) but returns a raw ValueError rather than a structured, actionable error message. No output schemas are documented. The server is mathematically correct but fails to meet agent-grade tool definition standards.
Adds two numbers
Divides two numbers
Multiplies two numbers
Subtracts two numbers
All parameters lack descriptions. The rubric requires every parameter to have a non-empty description explaining what it controls; LLMs cannot infer parameter meaning from names alone.
Tool descriptions are extremely terse (10-26 characters), falling well below the 50-200 character baseline for LLM-optimized descriptions. They lack context on WHEN to use each tool and what it returns.
No output schemas are documented. LLMs need to know what fields and types to expect so they can plan downstream tool calls and extract the right data.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 39 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 41 | - | v1 |
divide() tool raises raw ValueError on zero-division instead of returning a structured, actionable error message. Error responses should tell the LLM what to do next (e.g., 'num2 must be non-zero').
Tool naming is generic and lacks domain context. Names like 'add' and 'subtract' could collide with other tools. Consider 'calculate_add', 'calculate_subtract' to signal they are calculator utilities, not general-purpose arithmetic.
No parameter constraints documented. Numeric parameters (num1, num2) have no min/max bounds, format hints, or range guidance. Integer type alone is insufficient.