Occam — Symbolic Regression as a Service

2 min read Original article ↗

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.