A remote MCP server providing calculator tools without authentication, deployed on Cloudflare Workers
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), falling well below the 50-200 char baseline for LLM-optimized descriptions. No output schemas documented. Error handling is minimal (divide-by-zero check in 'calculate' only). Tool names lack action verbs ('add', 'calculate' are weak; 'perform_addition', 'execute_calculation' would be clearer). Parameters lack detailed descriptions explaining constraints, ranges, or use cases. No parameter descriptions visible in the schema definitions provided.
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. Should explain WHAT the tool does, WHEN to use it, and what it returns (e.g., 'Adds two numbers and returns their sum as a numeric result. Use when you need basic arithmetic addition.').
Parameter descriptions are missing entirely. Input schema shows types (number, string, enum) but no descriptions for 'a', 'b', 'operation'. LLMs cannot infer that 'a' and 'b' are operands or that 'operation' must be one of the enum values without explicit text. Add descriptions like 'First operand (numeric value)' and 'Arithmetic operation to perform: add, subtract, multiply, or divide'.
Output schema not documented. Tools return text content but no schema is declared for clients. LLMs need to know the response structure to plan downstream calls. Document: 'Returns a JSON object with a single text field containing the numeric result or error message.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Tool names lack action verbs. 'add' and 'calculate' are weak; they don't clearly signal intent. Rename to 'perform_addition' or 'add_numbers' (verb_noun pattern). 'calculate' is too generic, does it only do arithmetic, or does it support other operations? Rename to 'perform_arithmetic' or 'execute_calculation'.
Minimal error handling. Only 'calculate' checks for divide-by-zero; 'add' has no validation. No guidance for LLMs on recovery. Error messages should be actionable: 'Cannot divide by zero. Please provide a non-zero divisor (b parameter).' Implement error classification (retryable vs. user-fixable) per pattern:recovery-guide.