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). No parameter descriptions beyond type hints. No tool annotations (readOnlyHint, idempotentHint). Composition is reasonable (two separate tools), but descriptions do not guide LLM selection or explain when to use each.
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. Baseline is 50-200 chars with WHAT, WHEN, and prerequisites.
Parameter descriptions missing entirely. 'a' and 'b' parameters have no descriptions beyond type hints. LLMs cannot infer that 'a' is 'First number' vs 'Augend' vs 'Left operand'. Baseline: 100% of A+ tools have param descriptions.
Output schema not documented. Callers do not know the response structure. Will they get {result: number}, {value: number}, or {content: [{type: 'text', text: string}]}? Baseline: 100% of A+ tools document return types.
Tool names lack action verbs. 'add' and 'calculate' are weak; 'perform_addition' or 'compute_sum' would be clearer. Baseline: 90% of A+ tools start with action verb (get, list, create, search, update).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
Error handling is unstructured. 'calculate' returns plain text 'Error: Cannot divide by zero' instead of a structured error with recovery guidance. Baseline: errors should categorize as retryable/user-fixable/fatal and guide next steps.