A FastMCP server providing mathematical calculation tools and Paint application automation capabilities
This server has 22 tools with basic schemas and minimal descriptions. Most tools have 1-2 sentence descriptions (10-40 chars), well below the 50-200 char baseline for LLM-optimized descriptions. Parameter descriptions are entirely absent, only type hints exist in the code. No output schemas are documented. Error handling is minimal (divide by zero, negative factorial, log of negative not addressed). Tools like 'mine' and 'create_thumbnail' have vague purposes. The Paint tools (draw_rectangle, add_text, open_paint) are Windows-specific and lack proper error recovery guidance. No tool uses enums, ranges, or constraints. Composition is poor: 'add' and 'add_list' do similar things; 'sin', 'cos', 'tan' are repetitive. No idempotency guarantees or retry guidance.
Add two numbers
Add all numbers in a list
Add text in Paint
Cube root of a number
cos of a number
Create a thumbnail from an image
Divide two numbers
Draw a rectangle in Paint from (x1,y1) to (x2,y2)
Parameter descriptions entirely missing. Code shows only type hints (int, str, list); no descriptions explain what each parameter controls, valid ranges, or constraints. LLMs cannot infer meaning from 'a' or 'b' alone.
Tool descriptions are too short (10-40 chars vs 50-200 char baseline). Examples: 'sin of a number' (15 chars), 'log of a number' (15 chars), 'special mining tool' (18 chars). These lack context for LLM selection and do not explain when to use each tool vs alternatives.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
factorial of a number
Return the first n Fibonacci Numbers
Return sum of exponentials of numbers in a list
log of a number
special mining tool
Multiply two numbers
Open Microsoft Paint maximized on secondary monitor
Power of two numbers
remainder of two numbers divison
sin of a number
Square root of a number
Return the ASCII values of the characters in a word
Subtract two numbers
tan of a number
No output schemas documented. Tools return int, float, list, dict, or Image, but no structured schema describes fields, types, or what the LLM should expect. This forces LLMs to guess at response structure.
No error handling or recovery guidance. divide() does not handle division by zero; log() does not handle log of negative or zero; factorial() does not validate non-negative input. No error messages guide LLM recovery.
Vague or ambiguous tool names. 'mine' (special mining tool?) and 'strings_to_chars_to_int' (unclear purpose) do not follow verb_noun convention. 'int_list_to_exponential_sum' is overly long and unclear. LLMs struggle to infer intent.