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' only). Tool names lack action verbs ('add' and 'calculate' are weak; 'perform_addition' and 'perform_calculation' would be clearer). No parameter descriptions beyond type info. No composition guidance or chaining IDs. Schemas are visible and properly typed, preventing a lower score, but the overall quality is below median for production tools.
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 the tool does, WHEN to use it, and what it returns (e.g., 'Adds two numbers and returns the sum as a numeric result. Use when you need basic arithmetic addition.').
Parameter descriptions are missing. 'a' and 'b' parameters have no descriptions explaining what they represent or their valid ranges. 'operation' enum has no description of what each operation does or when to use 'divide' vs 'multiply'. LLMs cannot infer parameter semantics from names alone.
No output schema documented. Callers do not know what fields to expect in responses. Both tools return text content, but the structure and format are not formally specified. LLMs need documented return types to plan downstream calls.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
Tool names lack action verbs. 'add' and 'calculate' are generic and do not follow verb_noun convention. Better names: 'perform_addition', 'perform_arithmetic', or 'compute_result'. Weak names reduce LLM clarity when many tools are available.
Minimal error handling. Only 'calculate' checks for divide-by-zero; 'add' has no validation. No guidance on what to do if inputs are invalid (NaN, Infinity, very large numbers). Error messages should tell the LLM what to do next, not just report failure.