A Model Context Protocol server that exposes tools for arithmetic operations (addition and subtraction)
Two simple arithmetic tools with basic descriptions and proper input schemas. Both tools have clear names (add, subtract) starting with action verbs and documented parameters with types and descriptions. However, descriptions are minimal (34-56 chars, below the 50-200 char LLM-optimized baseline), lack context on when to use each tool, and provide no output schema documentation. No error handling guidance, no parameter constraints (e.g., range limits), and no composition hints. Tools are trivial (no real-world complexity), but the definition quality gaps would be problematic in production.
Add two numbers together.
Subtract the second number from the first number.
Descriptions are too brief (34-56 chars vs. 50-200 char baseline). Lack context on when to use each tool, prerequisites, or return value details. LLMs cannot reliably select between similar tools without richer descriptions.
No output schema documented. LLMs cannot plan downstream tool calls or extract return values without knowing the response structure. Both tools return int, but this is implicit, not explicit.
No error handling guidance. If inputs are invalid (e.g., non-integer, overflow), no recovery hints provided. LLMs receive raw errors with no actionable next steps.
No parameter constraints (min/max for integers). Unbounded numeric parameters allow LLMs to pass absurd values (e.g., 999999999999) that may cause overflow or performance issues.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Client code references tool 'sub' but server defines 'subtract'. Name mismatch will cause tool call failures at runtime.