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 hints. No composition guidance or chaining metadata.
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. Zod schema defines types (z.number(), z.enum()) but provides no descriptions for 'a', 'b', or 'operation'. LLMs cannot infer whether 'a' is a count, price, or measurement. Each parameter needs a description explaining its purpose and constraints.
Output schemas are not documented. Tools return text content but do not specify the structure or format of the result. LLMs need to know: Is the result a number, a string representation, or an object? What fields are present? This forces LLMs to guess.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
Tool names lack action verbs. 'add' and 'calculate' are generic. Stronger names like 'perform_addition' or 'perform_arithmetic' would clarify intent. Current names are ambiguous, 'add' could mean add to a list, add a user, or add numbers.
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 (e.g., 'Cannot divide by zero. Try a different divisor or use the add operation instead.').