A simple MCP server providing calculator tools without authentication
Two tools with minimal descriptions and basic schemas. 'add' has a 20-char description (borderline); 'calculate' is 44 chars. Both lack context on WHEN to use them, prerequisites, or return value documentation. No error handling guidance (e.g., divide-by-zero is handled but not documented in the tool description). Parameters have types and descriptions, but lack constraints (e.g., no enum for operation in 'add', no range limits). Output schema is not documented, LLMs cannot plan downstream calls. No tool annotations (readOnlyHint, idempotentHint). Naming is acceptable (verb_noun pattern), but descriptions fall short of the 50-200 char LLM-optimized baseline.
Simple addition tool
Calculator tool with multiple operations
Descriptions lack context on WHEN to use each tool and what they return. 'Simple addition tool' and 'Calculator tool with multiple operations' do not explain the difference or guide LLM selection.
Output schema not documented. LLMs cannot infer return type (number? string? object?). Code returns text content, but this is not declared in tool metadata.
Error handling for divide-by-zero is implemented but not documented in tool description. LLMs cannot anticipate error conditions or plan recovery.
No tool annotations (readOnlyHint, idempotentHint, destructiveHint). Both tools are read-only and idempotent, but this is not declared in metadata.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Redundant tools: 'add' duplicates the 'add' operation in 'calculate'. LLMs will waste reasoning cycles deciding between them.