formualizer
Open source · MIT / Apache-2.0

The open-source engine under the statements.

The counterparty statements run on the same code anyone can read: a Rust recalculation engine with 400+ Excel-compatible functions, and an agent toolkit that speaks native spreadsheet. No black box, no LibreOffice shell-out.

asp — formualizer engine
$asp recalc model.xlsx
parsed 3 sheets · 1,847 formulas
✓ recalculated in 42ms
$asp trace 'Waterfall!G22'
Waterfall!G22 = D14 + F12 + F18
├─ Waterfall!D14 Preferred Return
├─ Waterfall!F12 Catch-Up
└─ Waterfall!F18 Promote ← CapAccts!C7
$asp diff v12.xlsx v13.xlsx
~ Waterfall!F18 $9,600 → $12,050
~ Waterfall!G22 $45,750 → $48,200
~ Inputs!B4 proceeds updated
3 cells changed

Two projects, one permissive stack.

formualizer — the engine

An Arrow-backed, incremental recalculation engine. Topological scheduling, cycle detection, volatile handling, 400+ Excel-compatible functions — embeddable in Rust, Python, or WASM.

$cargo add formualizer# Rust
$pip install formualizer# Python
spreadsheet-mcp — the agent toolkit

An MCP server and CLI (asp) that give an LLM agent native spreadsheet tools: discover regions, recalculate, trace dependencies, and fork / edit / diff / verify — with the formualizer engine built in.

$npm i -g agent-spreadsheet# asp CLI
$cargo install spreadsheet-mcp# MCP server

Agents deserve better than openpyxl.

Most agent spreadsheet tooling reads cell values and hopes. It can’t recalculate, so it either ignores formulas or shells out to a headless LibreOffice and prays the numbers match. spreadsheet-mcp gives your agent the real engine.

Native recalc

The agent changes an input and the full dependency graph recomputes in-process — no LibreOffice, no subprocess, deterministic every time.

Dependency trace

Any cell resolves to the formula and the source cells that produced it, so the agent reasons about the math instead of guessing at values.

Fork · edit · diff

Branch a workbook, make edits, and get a precise cell-level diff of what moved — the substrate for safe, reviewable agent changes.

Verified edits

Edits are validated against the engine, not applied blind. What the agent writes is what recalculates — no drift between tool and truth.

The agentic commons

The infrastructure is free. The statements are how we fund it.

A recalculation engine and an agent toolkit are the kind of infrastructure that should be permissively licensed and inspectable — so we license them MIT / Apache-2.0 and build in the open. Anyone can embed the engine, audit it, or ship on top of it.

The hosted product — live counterparty statements that trace to your cells — is how we fund that work. Open core, honest split: the commons stays open, and paying customers keep it maintained.