This is a minimal arithmetic/greeting server with serious definition gaps across all tools. While tool names are simple action verbs (add, subtract, greet, divide), parameter descriptions are completely missing (null values in schema), and descriptions are extremely brief (5-7 words). No error handling documentation, no output schemas, no parameter constraints or ranges. The divide tool lacks any mention of zero-division handling. Tools are READ_ONLY but not annotated with idempotentHint or readOnlyHint. This server would score in the D-F range in production contexts.
Add two numbers.
Divide two numbers.
Greet a person.
Subtract two numbers.
Parameter descriptions are null/missing for all tools. The schema shows {"a":{"type":"float","description":null},...}, LLMs cannot infer what 'a' and 'b' represent without descriptions. Per pattern:tool-description, every parameter must have a non-empty description explaining what it controls.
Tool descriptions are extremely brief (5-7 words each: 'Add two numbers.', 'Greet a person.'). These descriptions lack context for LLM selection: WHEN should the agent call add() vs a calculator tool? What does the return value represent? Descriptions under 20 chars score ≤0-20 per HARD SCORING RULES.
No output schema documentation. Tools return float/str but LLMs don't know field names, types, or meaning of return values. Per pattern:tool, output schema must be documented so downstream tools can chain correctly.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 38 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 44 | - | v1 |
divide() tool has no error handling guidance for zero-division. Dividing by zero will raise an exception; the LLM receives a Python traceback with no recovery hint. Per pattern:recovery-guide, error responses must say 'what to do next'.
No parameter constraints (min/max for floats). 'a and b must be between -1e9 and 1e9'). Unbounded numbers let LLMs pass absurd values.
Tool annotations missing. All four tools are READ_ONLY and likely idempotent, but the definitions lack readOnlyHint/idempotentHint in the MCP tool registration. Per spec 2026-07-28, tool annotations enable correct agent behavior (e.g. retries, caching).