A remote MCP server providing calculator operations without authentication
This server has severe definition quality issues across both tools. While the tools are explicitly registered with Zod schemas in src/index.ts, they suffer from critically incomplete descriptions and undocumented parameters. The 'add' tool has a trivial 18-char description ('Simple addition tool') that provides no context on when to use it vs 'calculate'. Both tools have parameters (a, b, operation) with null descriptions in the schema inspection output, meaning LLMs receive no guidance on parameter purpose, constraints, or expected formats. The Zod schemas provide type information (number, string enum) but the parameter descriptions are completely absent from the actual tool registration calls. Error handling is minimal, the 'calculate' tool returns a text error for division by zero rather than structured error guidance that would help an LLM retry or self-correct. There is no output schema documentation, pagination, or guidance on result structure. The tools lack any idempotency hints, readonly markers, or acknowledgment of their side-effect-free READ_ONLY nature. Composition is poor: 'add' duplicates the 'add' operation within 'calculate', creating tool redundancy that wastes LLM reasoning cycles.
Simple addition tool
Calculator tool with multiple operations
Critical: Parameter descriptions are missing. The schema inspection shows a and b parameters have description=null. Zod allows inlining descriptions but the code does not use them. LLMs cannot infer what 'a' and 'b' represent (operands? coefficients? array indices?) and may pass values in wrong order or type.
Critical: Tool descriptions are too short and uninformative. 'Simple addition tool' (18 chars) and 'Calculator tool with multiple operations' (40 chars) fall below the minimum useful length (10 - 1024 chars baseline suggests 34 - 392 char range for quality tools). Neither description explains when to use one tool vs the other, what the output format is, or any error conditions.
High: Tool composition violation. Both 'add' and 'calculate' can perform addition. 'add' is redundant with the 'add' operation in 'calculate'. This forces the LLM to decide between two tools that do the same thing, wasting reasoning cycles and risking tool selection errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 34 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 42 | - | v1 |
High: No output schema documentation. Tool definitions show only the handler logic, not what fields the response contains or their types. LLMs cannot plan downstream steps or extract specific fields when the output structure is not declared.
Medium: Error handling lacks recovery guidance. The division-by-zero error returns a text string 'Error: Cannot divide by zero' instead of structured error metadata that tells the LLM whether to retry, ask the user, or give up. No error classification or remediation steps.
Medium: No tool annotations. Tools lack readonly/destructive/idempotent hints. Even though these are READ_ONLY tools per the feature list, the definitions do not declare this via tool annotations, forcing the client to infer it from the tool name and description (which are too generic to be useful).