mcp-sympy
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-sympyfind the derivative of x^2 * sin(x) with respect to x"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-sympy
MCP server that exposes SymPy's symbolic mathematics functionality
Install
pip install mcp-sympyRelated MCP server: Symath-MCP
MCP Server
mcp-name: io.github.daedalus/mcp-sympy
Usage
As MCP Server
Configure in your MCP client:
{
"mcpServers": {
"mcp-sympy": {
"command": "mcp-sympy",
"env": {}
}
}
}Python API
from mcp_sympy import tools
# Simplify expressions
result = tools.sympy_simplify("sin(x)**2 + cos(x)**2")
print(result) # "1"
# Solve equations
result = tools.sympy_solve("x**2 - 4", "x")
print(result) # "[2, -2]"
# Differentiate
result = tools.sympy_diff("x**2", "x")
print(result) # "2*x"
# Integrate
result = tools.sympy_integrate("x**2", "x")
print(result) # "x**3/3"
# Create matrices
result = tools.sympy_matrix("1,2; 3,4")
print(result) # "Matrix([[1, 2], [3, 4]])"
# Number theory
result = tools.sympy_isprime("7")
print(result) # "True"Available Tools
The MCP server exposes comprehensive SymPy functionality including:
Symbolic Expressions: symbols, sympify, simplify, expand, factor
Calculus: diff, integrate, limit, series, Derivative, Integral
Solving: solve, solveset, nsolve, diophantine, dsolve
Matrices: Matrix operations, inverse, determinant, eigenvalues
Trigonometry: sin, cos, tan, and their inverses
Special Functions: gamma, zeta, erf, fibonacci, etc.
Number Theory: isprime, prime, gcd, lcm, totient
Sets: FiniteSet, Interval, Union, Intersection
Logic: And, Or, Not, Xor
Printing: LaTeX, MathML, Python code
Development
git clone https://github.com/daedalus/mcp-sympy.git
cd mcp-sympy
pip install -e ".[test]"
# run tests
pytest
# format
ruff format src/ tests/
# lint
ruff check src/ tests/
# type check
mypy src/License
MIT License - see LICENSE file.
Available Tools
171 toolssympy_absC
Absolute value.
Inputs: expr (required). Returns: result
sympy_acosC
Arc cosine.
Inputs: expr (required). Returns: result
sympy_AndC
Logical AND.
Inputs: args (required). Returns: result
sympy_apartB
Perform partial fraction decomposition.
Inputs: expr (required). Returns: result
sympy_argC
Argument of complex number.
Inputs: expr (required). Returns: result
sympy_argsC
Get arguments of expression.
Inputs: expr (required). Returns: result
sympy_asinC
Arc sine.
Inputs: expr (required). Returns: result
sympy_as_numer_denomD
As numerator and denominator.
Inputs: expr (required). Returns: result
sympy_as_real_imagD
As real and imaginary parts.
Inputs: expr (required). Returns: result
sympy_atanC
Arc tangent.
Inputs: expr (required). Returns: result
sympy_atomsB
Get atoms (atomic components) of expression.
Inputs: expr (required). Returns: result
sympy_binomialC
Binomial coefficient.
Inputs: n (required), k (required). Returns: result
sympy_cancelC
Cancel common factors in rational expression.
Inputs: expr (required). Returns: result
sympy_catalanC
Catalan number.
Inputs: n (required). Returns: result
sympy_cbrtC
Cube root.
Inputs: expr (required). Returns: result
sympy_ceilingC
Ceiling function.
Inputs: expr (required). Returns: result
sympy_checkodesolC
Check ODE solution.
Inputs: eq (required), sol (required). Returns: result
sympy_CircleC
Create a circle.
Inputs: center (required), radius (required). Returns: result
sympy_classify_odeC
Classify ODE.
Inputs: eq (required), func (required). Returns: result
sympy_coeffD
Get coefficient.
Inputs: expr (required), x (required), n. Returns: result
sympy_complementB
Compute complement of set1 in set2.
Inputs: set1 (required), set2 (required). Returns: result
sympy_complexesC
The set of complex numbers.
Inputs: no named parameters. Returns: result
sympy_conjugateC
Complex conjugate.
Inputs: expr (required). Returns: result
sympy_cosC
Cosine function.
Inputs: expr (required). Returns: result
sympy_coshC
Hyperbolic cosine.
Inputs: expr (required). Returns: result
sympy_count_opsC
Count operations.
Inputs: expr (required). Returns: result
sympy_degreeC
Degree of polynomial.
Inputs: expr (required), variable. Returns: result
sympy_derivativeA
Create a Derivative object (unevaluated).
Inputs: expr (required), variable (required), order. Returns: result
sympy_diagB
Create a diagonal matrix.
Inputs: elements (required). Returns: result
sympy_diffC
Differentiate an expression.
Inputs: expr (required), variable, order. Returns: result
sympy_diohypC
Solve a Diophantine equation.
Inputs: expr (required). Returns: result
sympy_dirichlet_etaD
Dirichlet eta function.
Inputs: s (required). Returns: result
sympy_divisorsC
Return divisors of n.
Inputs: n (required). Returns: result
sympy_divisor_sigmaD
Divisor function.
Inputs: k (required), n (required). Returns: result
sympy_dsolveC
Solve ordinary differential equation.
Inputs: eq (required), func (required). Returns: result
sympy_emptysetC
Empty set.
Inputs: no named parameters. Returns: result
sympy_eqC
Create equality.
Inputs: lhs (required), rhs (required). Returns: result
sympy_erfD
Error function.
Inputs: expr (required). Returns: result
sympy_evalfB
Evaluate expression to floating point.
Inputs: expr (required), n. Returns: result
sympy_evaluateC
Toggle evaluation globally.
Inputs: flag. Returns: result
sympy_expC
Exponential function.
Inputs: expr (required). Returns: result
sympy_expandC
Expand an expression.
Inputs: expr (required). Returns: result
sympy_expand_complexD
Expand complex.
Inputs: expr (required). Returns: result
sympy_expand_logB
Expand logarithmic expressions.
Inputs: expr (required). Returns: result
sympy_expand_trigC
Expand trigonometric expressions.
Inputs: expr (required). Returns: result
sympy_expr_typeC
Get type of expression.
Inputs: expr (required). Returns: result
sympy_eyeB
Create an identity matrix.
Inputs: n (required). Returns: result
sympy_factorC
Factor an expression.
Inputs: expr (required). Returns: result
sympy_factorialC
Factorial.
Inputs: n (required). Returns: result
sympy_factorintC
Integer factorization.
Inputs: n (required). Returns: result
sympy_fibonacciD
Fibonacci number.
Inputs: n (required). Returns: result
sympy_finite_setC
Create a finite set.
Inputs: elements (required). Returns: result
sympy_finitesetC
Create finite set (comma-separated).
Inputs: elements (required). Returns: result
sympy_floatC
Create Float.
Inputs: n (required). Returns: result
sympy_floorD
Floor function.
Inputs: expr (required). Returns: result
sympy_free_symbolsB
Get free symbols in expression.
Inputs: expr (required). Returns: result
sympy_fresnelcD
Fresnel C.
Inputs: expr (required). Returns: result
sympy_fresnelsD
Fresnel S.
Inputs: expr (required). Returns: result
sympy_funcB
Get head function of expression.
Inputs: expr (required). Returns: result
sympy_gammaC
Gamma function.
Inputs: expr (required). Returns: result
sympy_gcdB
Greatest common divisor.
Inputs: a (required), b (required). Returns: result
sympy_geC
Create greater than or equal.
Inputs: lhs (required), rhs (required). Returns: result
sympy_groebnerD
Groebner basis.
Inputs: exprs (required), variable. Returns: result
sympy_gtD
Create greater than.
Inputs: lhs (required), rhs (required). Returns: result
sympy_hornerD
Horner form.
Inputs: expr (required), variable. Returns: result
sympy_IdentityD
Identity matrix.
Inputs: n (required). Returns: result
sympy_imD
Imaginary part.
Inputs: expr (required). Returns: result
sympy_image_setD
Image set.
Inputs: expr (required), variable (required). Returns: result
sympy_ImpliesD
Logical implication.
Inputs: lhs (required), rhs (required). Returns: result
sympy_integerD
Create Integer.
Inputs: n (required). Returns: result
sympy_integersB
The set of integers.
Inputs: no named parameters. Returns: result
sympy_integralA
Create an Integral object (unevaluated).
Inputs: expr (required), variable (required). Returns: result
sympy_integrateC
Integrate an expression.
Inputs: expr (required), variable. Returns: result
sympy_intersectionC
Compute intersection of two sets.
Inputs: set1 (required), set2 (required). Returns: result
sympy_intervalD
Create an interval.
Inputs: start (required), end (required), left_open, right_open. Returns: result
sympy_isprimeB
Check if n is prime.
Inputs: n (required). Returns: result
sympy_is_squareB
Check if n is a perfect square.
Inputs: n (required). Returns: result
sympy_latexB
Convert expression to LaTeX.
Inputs: expr (required). Returns: result
sympy_lcmB
Least common multiple.
Inputs: a (required), b (required). Returns: result
sympy_leC
Create less than or equal.
Inputs: lhs (required), rhs (required). Returns: result
sympy_limitC
Compute a limit.
Inputs: expr (required), variable (required), point (required), direction. Returns: result
sympy_LineC
Create a line through two points.
Inputs: point1 (required), point2 (required). Returns: result
sympy_logC
Natural logarithm.
Inputs: expr (required). Returns: result
sympy_log_baseC
Logarithm with specified base.
Inputs: expr (required), base (required). Returns: result
sympy_ltC
Create less than.
Inputs: lhs (required), rhs (required). Returns: result
sympy_lucasC
Lucas number.
Inputs: n (required). Returns: result
sympy_matchC
Match expression to pattern.
Inputs: expr (required), pattern (required). Returns: result
sympy_mathmlB
Convert expression to MathML.
Inputs: expr (required). Returns: result
sympy_matrixB
Create a matrix from rows.
Inputs: rows (required). Returns: result
sympy_matrix_addC
Add two matrices.
Inputs: matrix1 (required), matrix2 (required). Returns: result
sympy_matrix_determinantC
Compute matrix determinant.
Inputs: matrix (required). Returns: result
sympy_matrix_eigenvalsC
Compute eigenvalues of a matrix.
Inputs: matrix (required). Returns: result
sympy_matrix_eigenvectsC
Compute eigenvectors of a matrix.
Inputs: matrix (required). Returns: result
sympy_matrix_inverseB
Compute matrix inverse.
Inputs: matrix (required). Returns: result
sympy_matrix_LUC
LU decomposition.
Inputs: matrix (required). Returns: result
sympy_matrix_multiplyB
Multiply two matrices.
Inputs: matrix1 (required), matrix2 (required). Returns: result
sympy_matrix_nullspaceD
Nullspace.
Inputs: matrix (required). Returns: result
sympy_matrix_rankC
Matrix rank.
Inputs: matrix (required). Returns: result
sympy_matrix_transposeC
Transpose a matrix.
Inputs: matrix (required). Returns: result
sympy_nC
Evaluate expression numerically.
Inputs: expr (required), n. Returns: result
sympy_NandC
Logical NAND.
Inputs: args (required). Returns: result
sympy_naturalsA
The set of natural numbers.
Inputs: no named parameters. Returns: result
sympy_naturals0A
The set of natural numbers (including 0).
Inputs: no named parameters. Returns: result
sympy_neB
Create inequality (not equal).
Inputs: lhs (required), rhs (required). Returns: result
sympy_nextprimeA
Return the next prime after n.
Inputs: n (required). Returns: result
sympy_NorC
Logical NOR.
Inputs: args (required). Returns: result
sympy_NotC
Logical NOT.
Inputs: expr (required). Returns: result
sympy_nsimplifyC
Numerical simplification.
Inputs: expr (required). Returns: result
sympy_nsolveB
Numerically solve an equation.
Inputs: equation (required), variables (required), guesses (required). Returns: result
sympy_onesB
Create a matrix of ones.
Inputs: rows (required), cols. Returns: result
sympy_OrC
Logical OR.
Inputs: args (required). Returns: result
sympy_perfect_powerC
Check if n is a perfect power.
Inputs: n (required). Returns: result
sympy_piecewiseA
Create piecewise function (format: "expr,condition; expr2,condition2").
Inputs: pairs (required). Returns: result
sympy_PointB
Create a 2D point.
Inputs: x (required), y (required). Returns: result
sympy_Point3DB
Create a 3D point.
Inputs: x (required), y (required), z (required). Returns: result
sympy_polyC
Create a polynomial.
Inputs: expr (required), variable. Returns: result
sympy_PolygonB
Create a polygon (comma-separated points).
Inputs: points (required). Returns: result
sympy_polylogD
Polylogarithm.
Inputs: s (required), z (required). Returns: result
sympy_powsimpC
Simplify powers in an expression.
Inputs: expr (required). Returns: result
sympy_prevprimeA
Return the previous prime before n.
Inputs: n (required). Returns: result
sympy_primeB
Return the n-th prime.
Inputs: n (required). Returns: result
sympy_primepiC
Prime counting function.
Inputs: n (required). Returns: result
sympy_productC
Compute a product.
Inputs: expr (required), variable (required), lower (required), upper (required). Returns: result
sympy_product_exprC
Compute an unevaluated product (Product object).
Inputs: expr (required), variable (required), bounds (required). Returns: result
sympy_product_setB
Product of sets (comma-separated).
Inputs: sets (required). Returns: result
sympy_python_codeC
Convert expression to Python code.
Inputs: expr (required). Returns: result
sympy_radsimpB
Simplify radicals.
Inputs: expr (required). Returns: result
sympy_randMatrixD
Random matrix.
Inputs: n (required). Returns: result
sympy_RangeD
Range.
Inputs: start (required), stop. Returns: result
sympy_rationalC
Create Rational.
Inputs: num (required), den (required). Returns: result
sympy_rationalizeC
Rationalize denominator.
Inputs: expr (required). Returns: result
sympy_ratsimpC
Simplify rational expressions.
Inputs: expr (required). Returns: result
sympy_reC
Real part.
Inputs: expr (required). Returns: result
sympy_realsB
The set of real numbers.
Inputs: no named parameters. Returns: result
sympy_replaceB
Replace in expression (format: "old,new").
Inputs: expr (required), old_new (required). Returns: result
sympy_repr_exprC
Get repr of expression.
Inputs: expr (required). Returns: result
sympy_rootC
N-th root.
Inputs: expr (required), n. Returns: result
sympy_rootsC
Find roots of polynomial.
Inputs: expr (required), variable. Returns: result
sympy_satisfiableB
Check if expression is satisfiable.
Inputs: expr (required). Returns: result
sympy_seriesC
Compute series expansion.
Inputs: expr (required), variable, point, order. Returns: result
sympy_simplifyC
Simplify an expression.
Inputs: expr (required). Returns: result
sympy_sinC
Sine function.
Inputs: expr (required). Returns: result
sympy_sinhC
Hyperbolic sine.
Inputs: expr (required). Returns: result
sympy_solveC
Solve an equation or system of equations.
Inputs: equation (required), variables. Returns: result
sympy_solvesetC
Solve an equation using solveset.
Inputs: equation (required), variable. Returns: result
sympy_sqrtC
Square root.
Inputs: expr (required). Returns: result
sympy_strB
Convert expression to string.
Inputs: expr (required). Returns: result
sympy_subsC
Substitute in expression.
Inputs: expr (required), old_new (required). Returns: result
sympy_sumC
Compute a sum.
Inputs: expr (required), variable (required), lower (required), upper (required). Returns: result
sympy_summationB
Compute an unevaluated sum (Sum object).
Inputs: expr (required), variable (required), bounds (required). Returns: result
sympy_symbolB
Create a single symbolic variable.
Inputs: name (required). Returns: result
sympy_symbolic_addC
Symbolic addition (comma-separated).
Inputs: terms (required). Returns: result
sympy_symbolic_mulC
Symbolic multiplication (comma-separated).
Inputs: factors (required). Returns: result
sympy_symbolic_powerD
Symbolic power.
Inputs: expr (required), n (required). Returns: result
sympy_symbolsC
Create symbolic variables.
Inputs: names (required). Returns: result
sympy_symbols_createC
Create multiple symbols.
Inputs: names (required). Returns: result
sympy_sympifyB
Convert a string to a SymPy expression.
Inputs: expr (required). Returns: result
sympy_tanC
Tangent function.
Inputs: expr (required). Returns: result
sympy_tanhC
Hyperbolic tangent.
Inputs: expr (required). Returns: result
sympy_togetherB
Combine terms into a single fraction.
Inputs: expr (required). Returns: result
sympy_totientC
Euler's totient function.
Inputs: n (required). Returns: result
sympy_TriangleC
Create a triangle.
Inputs: point1 (required), point2 (required), point3 (required). Returns: result
sympy_trigsimpB
Simplify trigonometric expressions.
Inputs: expr (required). Returns: result
sympy_unionB
Compute union of two sets.
Inputs: set1 (required), set2 (required). Returns: result
sympy_universalsetC
Universal set.
Inputs: no named parameters. Returns: result
sympy_WildC
Create Wild pattern.
Inputs: pattern (required). Returns: result
sympy_WildFunctionD
Create Wild function.
Inputs: name (required). Returns: result
sympy_XorB
Logical XOR.
Inputs: args (required). Returns: result
sympy_xreplaceC
Exact replacement without simplification.
Inputs: expr (required), mapping (required). Returns: result
sympy_zerosB
Create a zero matrix.
Inputs: rows (required), cols. Returns: result
sympy_zetaC
Riemann zeta function.
Inputs: s (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 171 tools
Each tool targets a distinct SymPy operation, with clear distinctions between similar ones (e.g., solve vs solveset vs nsolve, integrate vs integral, expand vs expand_trig). No two tools appear to do the same thing.
All tools follow the 'sympy_' prefix with lowercase and underscores. Verb-first names are common (factor, solve, integrate, simplify), and a few noun-only names (e.g., sympy_sin, sympy_matrix) are consistent in style. No mixed conventions like camelCase.
With 171 tools, this significantly exceeds the practical scale for an MCP server. The massive surface area makes it unwieldy and hard to navigate, even if each tool is individually well-defined.
The tool surface is extremely comprehensive, covering calculus, algebra, linear algebra, number theory, sets, geometry, logic, and more. It includes both evaluated and unevaluated operations, plus supporting utilities like substitution and simplification.
Maintenance
Related MCP Connectors
This MCP server enables users to perform scientific computations regarding linear algebra and vect…
Educational MCP server with 17 math/stats tools, visualizations, and persistent workspace
Math MCP server for primality, factorization, Java templates, and integer multiplication.
Math.js MCP — wraps the mathjs.org API (free, no auth)
Related MCP Servers
- AlicenseBqualityCmaintenanceA Model Context Protocol server that enables LLMs to autonomously perform symbolic mathematics and computer algebra through SymPy's functionality for manipulating mathematical expressions and equations.3285Apache 2.0
- AlicenseAqualityDmaintenanceA symbolic mathematics MCP server supporting calculus, linear algebra, number theory, statistics, and unit conversion via natural language.8MIT
- AlicenseBqualityDmaintenanceA Python-based MCP server providing mathematical computation tools and plotting utilities for a wide range of math topics including calculus, matrix operations, statistics, and more.2213 PyPI5MIT
- AlicenseBqualityDmaintenanceHigh-precision mathematics server for MCP clients, providing exact integer arithmetic, symbolic derivatives, and numerical calculus via LaTeX-style input.65 npm2MIT