MCP server that exposes SymPy's symbolic mathematics functionality
24 tools with consistent naming (sympy_* prefix) and basic descriptions. All tools are READ_ONLY and stateless. However, descriptions are minimal (10-50 chars), lacking context on WHEN to use each tool or dependencies between them. Input schemas are present but sparse: most accept only 1-2 string parameters with minimal constraint documentation. No output schemas documented. Error handling is absent, no guidance on invalid input, timeouts, or recovery. Parameter descriptions are generic ('String expression') without format constraints or examples of valid input. Tools like sympy_solve and sympy_nsolve lack clarity on when to choose one over the other.
Perform partial fraction decomposition.
Cancel common factors in rational expression.
Differentiate an expression.
Expand an expression.
Expand logarithmic expressions.
Expand trigonometric expressions.
Factor an expression.
No output schemas documented. LLMs cannot predict return structure or plan downstream tool chains. All 24 tools return string representations of SymPy objects with no field documentation.
Minimal parameter descriptions lack format constraints, valid ranges, or examples. E.g., 'String expression to simplify' does not explain what constitutes valid SymPy syntax, whether parentheses are required, or how to handle multi-variable expressions.
No error handling or recovery guidance. Tools will fail silently on invalid SymPy syntax (e.g., 'x +++ y'), malformed equations, or unsolvable systems. LLM receives no actionable error message to self-correct.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Integrate an expression.
Compute a limit.
Numerically solve an equation.
Simplify powers in an expression.
Compute a product.
Simplify rational expressions.
Compute series expansion.
Simplify an expression.
Solve an equation or system of equations.
Solve an equation using solveset.
Compute a sum.
Compute an unevaluated sum (Sum object).
Create a single symbolic variable.
Create symbolic variables.
Convert a string to a SymPy expression.
Combine terms into a single fraction.
Simplify trigonometric expressions.
Tool descriptions are too brief (10-50 chars) and lack context on WHEN to use each tool. No distinction between sympy_solve (symbolic) vs sympy_nsolve (numeric), or sympy_sum vs sympy_summation. LLM must guess which to call.
No tool composition guidance. sympy_symbols creates symbols but no documentation on how to use them with sympy_solve or sympy_integrate. Multi-step workflows are not documented.