SciMath MCP
SciMath MCP
SciMath is a local, read-only Model Context Protocol server for reliable engineering and scientific computation. It moves arithmetic and mathematical manipulation out of an LLM's reasoning and into established numerical, symbolic, unit, and uncertainty libraries.
It is designed specifically for tool-calling agents—including smaller quantized local models—so the model chooses and explains a calculation while mature libraries execute it reproducibly.
What it provides
Exact and arbitrary-precision arithmetic with SymPy.
Unit-aware formulas and dimensional validation with Pint.
Equations, calculus, and exact linear algebra.
Descriptive statistics, regression, confidence intervals, and Welch t-tests.
First-order propagation of independent measurement uncertainties.
Physical constants from SciPy's bundled CODATA table.
Structured MCP output containing exact values, approximations, normalized inputs, metadata, and warnings.
Every expression is parsed by an AST allowlist. Python eval, attribute access, imports,
comprehensions, indexing, assignment, and arbitrary function calls are not available. Each
calculation runs in a disposable subprocess with input, result-size, complexity, and time limits.
Tools
Tool | Purpose |
| Arithmetic, scientific functions, high precision, and unit-aware formulas |
| Compatible unit conversion and dimensional validation |
| Real or complex algebraic equations and systems |
| Derivatives, integrals, limits, and series |
| Exact matrix operations plus condition-number warnings |
| Summaries, correlation, regression, intervals, and Welch t-tests |
| Measurement uncertainty with optional units |
| CODATA constant lookup with uncertainty and unit conversion |
Run locally
Prerequisites: Python 3.12 or newer and uv.
uv sync --all-groups
PYTHONPATH=src uv run python -m scimath_mcpInstall a stable executable:
uv tool install --force /absolute/path/to/scimath-mcpThen register the same stdio executable in each client:
codex mcp add scimath -- "$HOME/.local/bin/scimath-mcp"
claude mcp add --scope user scimath -- "$HOME/.local/bin/scimath-mcp"
opencode mcp add scimath -- "$HOME/.local/bin/scimath-mcp"Verify with codex mcp get scimath, claude mcp get scimath, and opencode mcp list. The
executable requires no network access. After changing the source, rerun the uv tool install
command to refresh the installed wheel.
See Client setup for complete JSON/TOML examples and troubleshooting.
Expression syntax
Use explicit multiplication (2*x). Both ** and ^ mean exponentiation. Common functions
include sqrt, cbrt, exp, ln, log, log10, sin, cos, tan, inverse and hyperbolic
trigonometry, factorial, gamma, erf, floor, ceil, min, and max. Constants include
pi, tau, e, phi, and complex I in unitless calculations.
Put dimensionful values in the variables object:
{
"expression": "M*c/I",
"variables": {
"M": "12.4 kN*m",
"c": "75 mm",
"I": "8.7e-6 m^4"
},
"output_unit": "MPa"
}Reliability boundary
SciMath makes the execution of a supplied formula reproducible. It cannot prove that an LLM selected the correct physical model, sign convention, branch, domain, units, or statistical assumptions. Consumers should show normalized inputs and warnings for consequential work.
Documentation
Client setup — Codex CLI, Claude Code, and OpenCode.
Tool reference — inputs, operations, limits, and examples.
Architecture — trust boundaries and request lifecycle.
Design notes — reviewed community projects and design decisions.
Security — threat model, reporting, and numerical safety.
Contributing — development workflow and release checks.
Tests
uv run pytest
uv run ruff check .
uv build --clearLicense
MIT