MCP server that provides prime number calculation tools
Single tool with adequate naming and schema but weak descriptions. Tool name 'getPrimeinNumN' violates verb_noun convention (should be 'get_primes' or similar). Description is 79 chars, acceptable but generic, lacking context on when/why to use. Input schema present with type and description. Output schema visible in code but not formally documented in tool registration. No error handling guidance, no parameter constraints, no pagination (though not applicable here). Composition is trivial (single tool, no chaining). Security baseline met (no secrets exposed).
Return all prime numbers less than or equal to the given num.
Tool name 'getPrimeinNumN' violates verb_noun convention. Should be 'get_primes' or 'list_primes'. Camel case and unclear abbreviation ('inNumN') reduce LLM parsing clarity.
Tool description (79 chars) is generic and lacks context. Does not explain WHEN to use this tool, what the output format is, or any constraints. Should be 100-200 chars with actionable guidance.
Output schema not formally documented in tool registration. Code shows return type is dict with 'num' and 'primes' fields, but this is not visible in the @mcp.tool decorator or schema definition.
No input validation or error handling. Tool accepts any integer but does not document constraints (e.g., max value, negative number handling). No error recovery guidance for LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Unused functions in math_tools.py (add_numbers, multiply_numbers, divide_numbers, subtract_numbers) suggest incomplete implementation. Only getPrimeinNumN is registered as an MCP tool.