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' and 'calculate' are weak; 'perform_addition' and 'perform_calculation' would be clearer). No parameter descriptions beyond type info. Schemas are present but sparse.
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. Schema shows types (a: number, b: number, operation: enum) but no descriptions explaining what each parameter controls or its valid range. LLMs cannot infer that 'a' and 'b' are operands without explicit text.
Output schema is not documented. Callers cannot know the structure of the response (is it {result: number} or {content: [...]}?). LLMs need explicit output schema to plan downstream tool calls.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Tool names lack action verbs. 'add' and 'calculate' are generic. Better names: 'perform_addition', 'perform_arithmetic', or 'compute_math_operation'. Verb-noun naming helps LLMs parse intent from the name alone.
Error handling is minimal. Only 'calculate' checks for divide-by-zero; 'add' has no validation. Error messages should guide recovery (e.g., 'Cannot divide by zero. Use a non-zero divisor.').