A simple MCP server providing calculator tools without authentication
Two tools with basic schemas and minimal descriptions. Both tools have input schemas with proper types (number, enum), but descriptions are extremely short (10-50 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-oriented (add, calculate) but lack verb prefixes. No parameter descriptions beyond type hints in schema. Composition is reasonable (two distinct operations), but descriptions do not explain WHEN to use each tool or what distinguishes them.
Simple addition tool
Calculator tool with multiple operations
Tool descriptions are critically short (10-50 chars). 'Simple addition tool' and 'Calculator tool with multiple operations' lack context for LLM selection. Baseline for A+ tools is 50-200 chars with WHAT, WHEN, and prerequisites.
Parameter descriptions missing. Schema defines types (number, enum) but Zod schema does not include descriptions for 'a', 'b', 'operation'. LLMs cannot infer parameter meaning from names alone.
Output schema not documented. Tools return text content but no schema is declared for clients. LLMs cannot plan downstream calls or extract structured data.
Tool names lack action verbs. 'add' and 'calculate' are weak; 'perform_addition' and 'perform_calculation' or 'compute_arithmetic' would be clearer. Baseline: 90% of A+ tools start with action verbs (get, create, search, update).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Error handling is minimal. Only divide-by-zero is caught; no guidance for invalid enum values or type mismatches. Error responses should tell LLM what to do next (pattern:recovery-guide).