A serverless MCP server providing calculator tools with addition and multi-operation arithmetic
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 in 'calculate' (divide-by-zero) 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 50-200 char baseline for A+ tools.
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. Descriptions should explain WHAT the tool does, WHEN to use it vs alternatives, and any prerequisites. Baseline: 50-200 chars.
No parameter descriptions. Input schema defines types (a: number, b: number, operation: enum) but provides no guidance on valid ranges, units, or constraints. LLMs cannot infer whether 'a' accepts negative numbers, decimals, or has bounds. Baseline: 100% of A+ tools have param descriptions.
No output schema documented. Tool responses return text content but LLMs cannot plan downstream calls or extract structured data without knowing the response format. Baseline: 100% of A+ tools document return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Tool naming lacks specificity. 'add' and 'calculate' do not clearly distinguish when to use each. 'add' is redundant with 'calculate' operation='add'. Consider renaming to 'add_numbers' and 'perform_arithmetic' or consolidating into a single 'arithmetic_operation' tool. Baseline: 90% of A+ tools use verb_noun naming with clear distinctions.
Error handling only in 'calculate' for divide-by-zero. No guidance for LLM on recovery. Error message 'Error: Cannot divide by zero' is not actionable, should suggest alternatives or constraints. Baseline: error responses must tell LLM what to do next.