A remote MCP server providing calculator tools without authentication, deployed on Cloudflare Workers
Three tools with basic schemas and minimal descriptions. All tools have input schemas with proper types (numbers, enums), but descriptions are extremely short (10-40 chars), falling well below the 50-200 char baseline for LLM-optimized descriptions. No output schemas documented. Parameter descriptions are present but terse. No error handling guidance. Tool names lack action verbs (add, mult, calculate are acceptable but generic). No tool annotations (readOnlyHint, destructiveHint). Divide-by-zero error handling exists in calculate() but not surfaced in schema or description.
Simple addition tool
Calculator tool with multiple operations
Simple multiplication tool
Descriptions are critically short (10-40 chars). 'Simple addition tool' and 'Simple multiplication tool' provide no context for when to use these tools vs calculate(). LLMs cannot distinguish between add/mult and the calculate tool's 'add' operation.
No output schema documented. Callers cannot predict response structure. All tools return {content: [{type: 'text', text: string}]} but this is not declared in tool definitions, forcing LLMs to infer.
Divide-by-zero error in calculate() returns a text error message, not a structured error. LLMs cannot reliably parse 'Error: Cannot divide by zero' and may retry or misinterpret.
No tool annotations. Tools are read-only but lack readOnlyHint. Agents cannot determine which tools are safe to call without user confirmation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Parameter descriptions are minimal. 'First number to add' is adequate but 'First operand' in calculate() is vague. No constraints on numeric ranges (e.g., max value, precision).