Skip to main content
Glama
README.md
# mcp-sympy

> MCP server that exposes SymPy's symbolic mathematics functionality

[![PyPI](https://img.shields.io/pypi/v/mcp-sympy.svg)](https://pypi.org/project/mcp-sympy/)
[![Python](https://img.shields.io/pypi/pyversions/mcp-sympy.svg)](https://pypi.org/project/mcp-sympy/)
[![Coverage](https://codecov.io/gh/daedalus/mcp-sympy/branch/main/graph/badge.svg)](https://codecov.io/gh/daedalus/mcp-sympy)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)

## Install

```bash
pip install mcp-sympy
```

## MCP Server

mcp-name: io.github.daedalus/mcp-sympy

## Usage

### As MCP Server

Configure in your MCP client:

```json
{
  "mcpServers": {
    "mcp-sympy": {
      "command": "mcp-sympy",
      "env": {}
    }
  }
}
```

### Python API

```python
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

```bash
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.

TDQS

C2.6/5.0

Scored across 171 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count1/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues