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' returns text, not structured error). Tool names lack action verbs ('add' and 'calculate' are weak; 'perform_addition' and 'perform_calculation' would be clearer). Parameters lack detailed descriptions explaining constraints, ranges, or use cases. No pagination, no composition guidance, no recovery hints.
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 text response. Use when you need basic arithmetic addition.').
Parameter descriptions are missing entirely. 'a' and 'b' parameters have no descriptions explaining what they represent, their valid ranges, or constraints. 'operation' enum has no description of what each operation does or when to use each.
Output schema is not documented. Callers cannot predict the response structure. Both tools return {content: [{type: 'text', text: string}]} but this is not declared in tool metadata. LLMs cannot plan downstream calls without knowing output shape.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
Error handling lacks recovery guidance. 'calculate' returns 'Error: Cannot divide by zero' as plain text. Should return structured error with actionable guidance: 'Division by zero is not allowed. Ensure the second operand (b) is non-zero.'
Tool names lack action verbs. 'add' and 'calculate' are weak. Prefer 'perform_addition', 'perform_arithmetic', or 'compute_operation' to signal intent clearly. Current names are ambiguous, 'add' could mean add to a list, add a user, or add numbers.