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 (Zod validation), but descriptions are extremely short (10-34 chars, well below the 50-200 char LLM-optimized baseline). Parameter descriptions are present but terse. No output schema documentation. Error handling is minimal (only divide-by-zero check in 'calculate'). Tool names lack action verbs and are generic. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Composition is reasonable (single responsibility), but descriptions do not guide LLM selection or explain when to use each tool vs. alternatives.
Simple addition tool
Calculator tool with multiple operations
Simple tool with parameters
Tool descriptions are critically short (10-34 chars). LLM cannot determine when to select 'add' vs 'calculate' vs 'calculate-bmi'. Baseline for A+ tools is 50-200 chars with WHAT, WHEN, and WHY.
Tool names lack action verbs. 'add', 'calculate', 'calculate-bmi' are generic and do not follow verb_noun convention (e.g., 'perform_addition', 'perform_calculation', 'compute_bmi'). LLMs rely on names to infer intent before reading descriptions.
No output schema documentation. Callers cannot predict response structure. Tool descriptions do not state what fields are returned or their types.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All three tools are read-only and idempotent, but this is not declared in the tool definition. Agents cannot reason about retry safety or side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Minimal error handling. Only 'calculate' checks for divide-by-zero; 'add' and 'calculate-bmi' have no validation. No guidance on what to do if inputs are invalid (e.g., negative height in BMI). Errors should be actionable and guide recovery.