An MCP server that provides mathematical calculation tools, step-by-step reasoning verification, and MSPaint integration for drawing results
Critical failures across naming, descriptions, and schemas. Tool names lack action verbs (show_reasoning, verify_paint_open are weak; verify_calculation/verify_consistency are vague). Descriptions are present but generic (10-50 chars, well below 50-200 char baseline for LLM optimization). Input schemas visible but severely incomplete: most parameters lack type constraints; list parameters have no item type specification; no output schemas documented. Tools 3-4 defined in mcp_client.py (not server) suggest inferred registration. No error handling guidance, no pagination support, no field documentation for responses. Inconsistent return types (dict vs TextContent vs TextContent wrapped in dict). Code shows incomplete implementation (verify_consistency has truncated logic, undefined consistency_score variable).
Add two numbers
Add all numbers in a list
Divide two numbers
Multiply two numbers
Power of two numbers
Show the step-by-step reasoning process
Subtract two numbers
Verify if a calculation is correct
No output schemas documented. Tools return dict, TextContent, or wrapped TextContent inconsistently. LLMs cannot plan downstream calls or extract structured data.
Weak action verbs in tool names. 'show_reasoning', 'verify_paint_open', 'verify_calculation', 'verify_consistency' are vague. LLMs cannot infer intent from names alone. Should be 'display_reasoning_steps', 'check_paint_status', 'validate_calculation', 'check_step_consistency'.
add_list parameter 'l' lacks item type specification. Schema shows list but no itemType or description of what list contains (numbers? integers? floats?). Ambiguous for LLM input generation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Check if calculation steps are consistent with each other
Verify if Paint is open
verify_consistency implementation incomplete. Code references undefined variable 'consistency_score' at end. Function logic truncated mid-implementation. Tool is non-functional.
No error handling guidance. Tools return raw eval() exceptions or boolean strings. No recovery hints, no categorization of retryable vs fatal errors. LLMs cannot self-correct.