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). No parameter-level descriptions beyond schema hints. Tools lack context about when to use each vs. the other, and no guidance on error recovery.
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 each does, WHEN to use it, and what it returns (e.g., 'Adds two numbers and returns their sum as a text response').
No output schema documented. LLMs cannot plan downstream calls or extract structured data. Both tools return {content: [{type: 'text', text: string}]} but this is not declared in tool metadata.
Parameter descriptions missing. Schema shows 'a' and 'b' are numbers, but no description explains their meaning, range, or constraints. 'operation' enum is clear, but lacks context on when each operation is appropriate.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Error handling is unstructured. 'calculate' returns plain text 'Error: Cannot divide by zero' instead of a structured error response. LLMs cannot parse this reliably or determine if the error is retryable.
Tool naming lacks verb clarity. 'add' is clear, but 'calculate' is generic and overlaps with 'add'. LLMs may conflate them. Consider 'perform_arithmetic' or 'calculate_arithmetic' to distinguish from simple addition.