A remote MCP server providing calculator tools via HTTP endpoints
Both tools have minimal descriptions (10-40 chars, well below the 50-200 char baseline for LLM-optimized descriptions). Parameter descriptions are entirely absent (null values in schema). No output schema is documented. The 'add' tool is redundant with 'calculate' (both perform addition). Error handling is minimal, divide-by-zero returns text, not structured error guidance. Tool names lack verb clarity ('add' vs 'calculate' creates ambiguity). No pagination, no idempotency hints, no permission gates.
Simple addition tool
Calculator tool with multiple operations
All parameter descriptions are null. LLMs cannot infer what 'a' and 'b' represent (operands? indices? coefficients?). Violates pattern:tool-description baseline (100% of A+ tools have param descriptions).
Tool descriptions are too short (10-40 chars vs 50-200 char baseline). 'Simple addition tool' and 'Calculator tool with multiple operations' lack context for when/why to select each tool. No mention of return format, prerequisites, or side effects.
No output schema documented. LLMs cannot plan downstream calls or extract structured data. Responses are raw text strings, not typed objects with predictable fields.
Redundant tools: 'add' duplicates 'calculate' with operation='add'. Violates composition pattern (one canonical tool per intent). LLM wastes reasoning cycles choosing between them.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 33 | 2026-07-28+ | v2 |
Error handling is unstructured. Divide-by-zero returns plain text 'Error: Cannot divide by zero' instead of a recovery guide (e.g., 'Cannot divide by zero. Use a non-zero divisor.'). No error classification (retryable vs fatal).