A simple MCP server providing calculator tools with basic arithmetic operations (addition, subtraction, multiplication, division). No authentication required.
Two tools with explicit schemas using Zod, minimal but adequate descriptions. Naming follows verb_noun convention. Schemas are visible and typed. However, descriptions are very short (10-56 chars), parameter descriptions are minimal, no output schema documentation, no error recovery guidance. Tool 'add' is trivially simple but redundant with 'calculate'. Error handling for division by zero is inline but lacks LLM-actionable messaging. Average tool score: 68.
Simple addition tool
Calculator tool with multiple operations
Descriptions are too brief (10 - 56 characters). Baseline for A+ tools is 50 - 200 chars. LLMs need context for when/why to select a tool. Add WHAT it does, WHEN to use it, any prerequisites.
No output schema documentation. Tool consumers don't know what fields to expect in responses (e.g., is the result a number, an object with 'value' field, etc.). Clients must infer structure from implementation.
Tool 'add' is redundant with 'calculate' (operation='add'). Combining into a single 'calculate' tool reduces cognitive load for LLMs choosing between similar tools.
Error handling for division by zero returns plain text 'Error: Cannot divide by zero' with no recovery guidance. LLMs need structured error responses that classify the error (retryable, user-fixable, fatal) and suggest next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 55 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 36 | - | v1 |
Parameter descriptions are minimal or absent. 'a' and 'b' parameters have one-word descriptions ('First number to add'). LLMs cannot infer constraints, expected range, format, or when the param is required vs optional.
No indication that 'operation' enum is exhaustive. Add clarification like 'Supported operations: add, subtract, multiply, divide.' Also, 'divide' should note the zero-check behavior.