Occam logoOccam

Occam finds the simplest equation consistent with your data.

checking…

Occam is an MCP server that discovers mathematical equations from numerical data. Give it measurements, get back governing equations — ranked by the tradeoff between simplicity and accuracy.

Tools

ToolMethodSpeedBest for
sindy_run Sparse Identification of Nonlinear Dynamics seconds Differential equations from time series
pysr_run Evolutionary symbolic regression 10s–5m Algebraic relationships (Pareto front)
pysr_uncertainty Bootstrap confidence intervals on a frozen expression seconds CIs on fit constants & prediction bands for an expression returned by pysr_run

Examples

SINDy — discover a dynamical system

Given time series of the Lorenz attractor, Occam recovers the governing equations:

dx/dt = -10.0 x + 10.0 y
dy/dt =  28.0 x -  1.0 y - 1.0 x z
dz/dt =  -2.667 z + 1.0 x y

PySR — find an algebraic law

Given noisy observations of a physical relationship, Occam returns a Pareto front trading complexity against accuracy:

Complexity  Loss       Expression
1           3.41       1.4
3           0.92       sin(x) * y
5           0.003      sin(x) * y + 1.4

Pricing

Free tier: Both tools accept up to 100 rows and 8 variables/features at no charge. Rate-limited to 10 requests/hour per IP.

Beyond free tier:

Parametersindy_runpysr_run
Baseline fee$0.05$0.25
Per 100 extra rows$0.01$0.03
Per extra variable²$0.01$0.01
Max rows500,00050,000
Max variables / features5020
Timeout30s5 min

Payment methods: x402 (USDC on Base) or MPP/Stripe (card — adds $0.35 surcharge). When payment is required, the tool returns pricing details and payment options automatically.

Connect

Connect any MCP client to the remote endpoint:

https://occam.fit/mcp/

Or in claude_desktop_config.json:

{
  "mcpServers": {
    "occam": {
      "type": "streamable-http",
      "url": "https://occam.fit/mcp/"
    }
  }
}

How it works

SINDy uses PySINDy to fit sparse linear combinations of candidate library functions to numerical derivatives. It runs in-process in Python and returns results in seconds.

PySR delegates to a pool of pre-warmed Julia workers running SymbolicRegression.jl v2. It evolves a population of candidate expressions and returns the Pareto-optimal set — every expression that is the best known at its complexity level.