A remote MCP server providing calculator tools without authentication
This MCP server has severe definition quality issues. Both tools have minimal descriptions (7-42 chars, well below the 10-1024 baseline), and critically, all parameter descriptions are null/missing. The tool names are generic and lack action verbs. No error handling guidance is evident in the code, and the divide-by-zero case in 'calculate' returns plain text rather than a structured error response. The server does not implement any of the 54 Agentic Tool Patterns.
Simple addition tool
Calculator tool with multiple operations
All parameter descriptions are null. Both 'add' and 'calculate' tools have parameters (a, b, operation) with null descriptions.
Tool descriptions are below the 10-1024 character baseline and lack LLM-optimized structure. 'add' has 'Simple addition tool' (20 chars), and 'calculate' has 'Calculator tool with multiple operations' (42 chars). Descriptions do not answer WHAT, WHEN to use, or expected output.
Tool names lack action verbs and clarity. 'add' and 'calculate' are generic and do not follow verb_noun convention. 'add' could mean add numbers, add to list, or add record. Better names: 'sum_numbers', 'compute_arithmetic'.
Error handling does not guide the LLM. The 'calculate' tool returns plain text 'Error: Cannot divide by zero' instead of a structured error response with recovery guidance (e.g., 'Cannot divide by zero. Try different values.').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 33 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 27 | - | v1 |
No parameter constraints or enums. The 'operation' parameter in 'calculate' has an enum in schema (add, subtract, multiply, divide), but the parameter description is null, leaving LLMs without guidance on valid values.
Output schemas are not documented. Both tools return generic text content with no structured schema definition. LLMs cannot plan downstream operations or extract typed fields.
No idempotency guarantees. If the LLM retries a call due to ambiguity, it is unclear if multiple calls will produce identical results or if there are side effects.
Parameter types are inferred from Zod schema but not formally documented in descriptions. The 'a' and 'b' parameters have no text explanation of their purpose, range, or constraints (e.g., 'integers only', 'no upper bound').