math-logic-mcp
MCP server that gives small LLMs verified symbolic-math & logic tools.
Small language models (Mistral, Llama, Phi, Gemma) struggle with multi-step math and formal logic. Instead of fine-tuning, give them tools. This project exposes a set of verified math and logic solvers via the Model Context Protocol (MCP), so any MCP-compatible LLM can call them as functions.
Features
| Tool | What it does | Backend |
|---|---|---|
verify_arithmetic |
Safe arithmetic evaluation | Python stdlib (zero deps) |
solve_equation |
Symbolic equation solving | SymPy (optional) |
simplify_expression |
Simplify / factor / expand | SymPy (optional) |
compute_derivative |
Differentiation | SymPy (optional) |
compute_integral |
Integration | SymPy (optional) |
check_logic |
SAT / tautology / truth tables | Z3 (optional) |
Every result includes proof steps and verification — the LLM gets a machine-checked answer, not a guess.
Quick Start
Install (minimal — arithmetic only)
pip install -e .
Install (full — all solvers)
pip install -e ".[full]"
Run the MCP server
# stdio transport (for Claude Desktop, Cursor, etc.)
math-logic-mcp
# HTTP/SSE transport (for remote clients)
math-logic-mcp --http
Configure in Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"math-logic": {
"command": "math-logic-mcp"
}
}
}
Configure in Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"math-logic": {
"command": "math-logic-mcp"
}
}
}
Use as a Python Library
from math_logic import MathLogicEngine
engine = MathLogicEngine()
# Arithmetic (always available)
result = engine.solve("compute 2 + 3 * 4")
print(result.solutions) # ['14']
# Algebra (requires sympy)
result = engine.solve("Solve x^2 - 4 = 0")
print(result.solutions) # ['x = -2', 'x = 2']
# Logic (requires z3-solver)
result = engine.solve('Check satisfiability of "p and q"')
print(result.solutions) # ['Satisfiable: p=True, q=True']
Architecture
LLM ─── MCP Protocol ──▶ mcp_server.py
│
engine.py (router → solver → result)
│
┌───────────────┼───────────────┐
▼ ▼ ▼
ArithmeticSolver SymPySolver Z3Solver
(zero deps) (pip: sympy) (pip: z3-solver)
The router classifies each problem by regex patterns and routes to the best available solver. Solvers are loaded lazily — if SymPy isn't installed, algebra problems gracefully report the missing dependency.
Installation Extras
| Extra | What it adds | Install size |
|---|---|---|
| (none) | Arithmetic only | ~1 MB |
[sympy] |
+ algebra, calculus, simplification | ~50 MB |
[z3] |
+ propositional logic, SAT | ~30 MB |
[full] |
Everything | ~80 MB |
[dev] |
+ pytest, ruff | ~85 MB |
pip install -e ".[sympy]" # algebra + calculus
pip install -e ".[z3]" # logic
pip install -e ".[full]" # everything
pip install -e ".[full,dev]" # everything + dev tools
Development
git clone https://github.com/user/math-logic-mcp.git
cd math-logic-mcp
pip install -e ".[full,dev]"
pytest tests/ -v
Docker
docker build -t math-logic-mcp .
docker run -p 8080:8080 math-logic-mcp
License
Apache 2.0 — see LICENSE.
Metadata
Release files for math-logic-mcp 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| math_logic_mcp-0.2.0.tar.gz | 22.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| math_logic_mcp-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 45.4 kB
Release files / math_logic_mcp-0.2.0.tar.gz
| Download URL | math_logic_mcp-0.2.0.tar.gz |
|---|---|
| Size | 22.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d3e1c2f6c69d9aa50f677dfbf07177c3b0283a5aeac913b6efc74e2844109af0
|
|
BLAKE2b-256 checksum How to use checksums |
05087f31769f4ac81e741427fbb3dd4b8b51d50c306ab598d295c5b1dfc398ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|
Release files / math_logic_mcp-0.2.0-py3-none-any.whl
| Download URL | math_logic_mcp-0.2.0-py3-none-any.whl |
|---|---|
| Size | 22.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aa0abcb072de7a45bfe5fc6c5109be8a25e006ac20d93531e1b25b87c0b47c83
|
|
BLAKE2b-256 checksum How to use checksums |
50d51d5644b8f3a9b8fd5434a471d762bd37311f681da5a1c18d609f1286e9a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|