Skip to main content
Glama
matheusbgodoi

SciMath MCP

SciMath MCP

CI Python 3.12+ MCP License: MIT

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

calculate

Arithmetic, scientific functions, high precision, and unit-aware formulas

convert_units

Compatible unit conversion and dimensional validation

solve

Real or complex algebraic equations and systems

calculus

Derivatives, integrals, limits, and series

linear_algebra

Exact matrix operations plus condition-number warnings

statistics

Summaries, correlation, regression, intervals, and Welch t-tests

propagate_uncertainty

Measurement uncertainty with optional units

physical_constant

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_mcp

Install a stable executable:

uv tool install --force /absolute/path/to/scimath-mcp

Then 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 --clear

License

MIT