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 plain text, not structured error guidance). 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 tool annotations (readOnlyHint, idempotentHint). Composition is reasonable (two separate tools), but descriptions do not explain WHEN to use each tool or what distinguishes them.
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 tool does, WHEN to use it, and what it returns. Baseline: 50-200 chars.
No output schema documented. LLMs cannot plan downstream calls or extract structured data. Both tools return plain text in a 'content' array, but this structure is not declared in tool metadata.
Parameter descriptions missing. Schema shows types (number, string enum) but no descriptions explaining what 'a' and 'b' represent or what 'operation' values mean. LLMs cannot infer parameter semantics from names alone.
Tool names lack action verbs. 'add' and 'calculate' are generic. Stronger names: 'perform_addition', 'perform_arithmetic_operation'. Current names do not clearly signal intent to LLMs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Error handling is minimal. 'calculate' returns plain text 'Error: Cannot divide by zero' instead of structured error with recovery guidance. LLMs cannot parse or act on unstructured error messages.