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, string enum), but descriptions are extremely brief (10-40 chars), falling well below the 50-200 char baseline for LLM-optimized descriptions. The 'calculate' tool has a well-structured enum constraint for operations, but lacks guidance on when to use it vs 'add'. No output schema documentation. Error handling for divide-by-zero is present but minimal. Tool composition is reasonable (add vs calculate separation), but descriptions don't explain the distinction or use cases.
Simple addition tool
Calculator tool with multiple operations
Descriptions critically short (10-40 chars). 'Simple addition tool' and 'Calculator tool with multiple operations' lack context for LLM selection. Should explain WHEN to use each tool, what they return, and any prerequisites.
No output schema documented. LLMs cannot plan downstream calls or extract structured data. Should document that both tools return a text result containing the numeric answer.
Tool composition ambiguity: 'add' duplicates 'calculate' with operation='add'. Description should clarify: use 'add' for simple two-number addition; use 'calculate' for multiple operations or when operation is dynamic.
Error handling for divide-by-zero returns plain text 'Error: Cannot divide by zero' instead of structured error with recovery guidance. Should follow pattern:recovery-guide to tell LLM what to do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Parameter descriptions present but minimal. 'First number to add' and 'First operand' lack format/range guidance. Should specify: numeric type, valid range (e.g., -1e308 to 1e308), and whether integers or floats are preferred.