This server has basic tool definitions with clear names and parameter types visible in the source code. However, it suffers from significant gaps in documentation quality, parameter descriptions, error handling, and output schema documentation. The 'add' tool description is misleading (says 'Add two numbers' but actually adds three). Both tools lack detailed parameter constraints and guidance. No error handling is evident. Tool output schemas are not documented. Resources are declared but not well integrated into the tool ecosystem.
Add two numbers together.
Generate a random number within a range.
Tool 'add' description is factually incorrect, states 'Add two numbers together' but the implementation and signature show three parameters (a, b, c). This will cause LLMs to misunderstand the tool's behavior.
Parameter 'c' in 'add' tool is undocumented, no description provided. The rubric requires every input parameter to have a non-empty description so LLMs understand what it controls.
No output schema is documented for either tool. LLMs need to know what fields and types to expect from return values to plan downstream calls and extract data correctly.
No error handling or recovery guidance present. Tools do not validate inputs or provide actionable error messages. If a user passes invalid types or values, there is no mechanism to guide the LLM toward correction.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 52 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 44 | - | v1 |
Parameter descriptions for 'random_number' are minimal. 'Minimum value (default: 1)' and 'Maximum value (default: 100)' lack guidance on valid ranges, constraints, or when to use the tool. No mention that min_val must be ≤ max_val.
Tool descriptions are too short and lack context for LLM selection. 'Generate a random number within a range' (45 chars) does not explain WHEN to use this tool or what it returns. Baseline for A+ tools is 50-200 chars.
No constraints declared for numeric parameters. 'min_val' and 'max_val' lack stated ranges (e.g. 1 - 1000000). Without bounds, LLMs may pass absurd values that break logic or exceed resource limits.