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 schema documentation. Error handling exists (divide-by-zero check) but lacks recovery guidance. Tool names are action-oriented (add, calculate) but lack verb_noun clarity, 'add' is ambiguous (add to what?), and 'calculate' is generic. No parameter descriptions beyond type hints. No tool annotations (readOnlyHint, idempotentHint). Composition is reasonable (two separate tools), but descriptions do not explain when to use each or what they return.
Simple addition tool
Calculator tool with multiple operations
Descriptions critically short (10-40 chars). 'Simple addition tool' and 'Calculator tool with multiple operations' lack context for LLM selection. No explanation of when to use add vs calculate, what they return, or prerequisites.
No parameter descriptions. Parameters 'a', 'b', 'operation' have types but no text explaining their meaning, constraints, or expected format. LLMs cannot infer that 'operation' is mutually exclusive or that 'b' cannot be zero for divide.
No output schema documented. Callers do not know the structure of the response (is it {result: number}, {value: number}, or plain text?). Current implementation returns text in content array, but this is not declared.
Generic tool name 'calculate' does not follow verb_noun pattern. 'calculate' is vague, does it compute, aggregate, or transform? Rename to 'perform_arithmetic' or 'compute_operation' for clarity.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Error handling for divide-by-zero returns plain text 'Error: Cannot divide by zero' with no recovery guidance. Per pattern:recovery-guide, should suggest next steps or indicate this is a user-fixable error.