High-Precision Scientific Calculator MCP Server supporting basic operations, mathematical constants, functions, and trigonometric operations with arbitrary precision decimal calculations
Single tool 'calc' has a comprehensive description (1,200+ chars) covering features, examples, and constraints. Input schema is properly defined with 'expression' (required, string) and 'precision' (optional, number) parameters. However, the description is verbose and example-heavy, which may cause LLMs to reuse literal values. Parameter descriptions are minimal ('The expression to evaluate', 'The precision of the result'). No output schema is documented. Error handling is present in code (division by zero, sqrt of negatives, trig domain checks) but not surfaced in tool description. Tool name 'calc' is generic and lacks action verb (should be 'evaluate_expression' or 'compute_math'). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present.
High-Precision Scientific Calculator This is a scientific calculator supporting high-precision calculations with the following features: 1. Basic Operations - Addition(+), Subtraction(-), Multiplication(*), Division(/) - Supports nested parentheses, e.g., (1 + 2) * 3 - Supports arbitrary precision decimal calculations 2. Mathematical Constants - PI (π): Mathematical constant pi - E (e): Base of natural logarithm 3. Mathematical Functions - sqrt(x): Square root calculation - pow(x, y): Exponentiation, e.g., 2 ^ 3 - log(x,b): Logarithm with base b, e.g., log(8,2) = 3 - ln(x): Natural logarithm (base e), e.g., ln(e) = 1 - lg(x): Common logarithm (base 10), e.g., lg(100) = 2 4. Trigonometric Functions - sin(x): Sine function - cos(x): Cosine function - tan(x): Tangent function - asin(x): Arcsine function, input range [-1,1] - acos(x): Arccosine function, input range [-1,1] - atan(x): Arctangent function 5. Precision Control - Supports custom calculation precision - Default precision of 10 decimal places - Maximum precision up to 75 decimal places Usage Examples: 1. Basic operation: 1 + 2 * 3 2. Constant operation: 2 * PI 3. Function calculation: sqrt(16) 4. Compound operation: (1 + sqrt(16)) * 2 5. Trigonometric function: sin(PI/2) 6. High precision: E ^ 2 7. Logarithm: log(1000,10) = 3 8. Natural logarithm: ln(E^2) = 2 9. Common logarithm: lg(1000) = 3 Important Notes: 1. Division by zero is not allowed 2. Square root of negative numbers is not allowed 3. Input values for inverse trigonometric functions must be within valid range 4. Logarithm input and base must be positive, base cannot be 1 5. Natural logarithm input must be positive
Tool name 'calc' lacks action verb and is ambiguous. Should be 'evaluate_expression' or 'compute_math' to clarify intent per pattern:tool naming conventions.
Description contains 9 example values (e.g., '1 + 2 * 3', 'sqrt(16)', 'sin(PI/2)') which LLMs may reuse literally instead of adapting to context. Replace with formal constraints and enums.
Output schema not documented. LLMs cannot plan downstream operations or extract structured data. Must specify return type (e.g., {type: 'object', properties: {result: {type: 'string'}, precision_used: {type: 'number'}}}).
Parameter 'precision' lacks constraints. Description should specify: 'Integer 1 - 75 (default 10). Higher precision increases computation time.'
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | <=2025-11-25 | v2 |
Error handling (division by zero, invalid trig domain, negative sqrt) is implemented in code but not documented in tool description. LLMs cannot anticipate failure modes or recovery steps.