For Claude Code, Claude Desktop, Cursor and Codex

Your agent edits the Excel file.
You review before it's saved.

GridPath's engine as an MCP server. Every change comes back with a review link: see each changed cell, reject what you don't want, save.

claude mcp add gridpath -- npx -y gridpath mcp --review-required

Edits the real .xlsx. Shows you the diff.

Not a Python script that rewrites your workbook and hopes. The file you had, the cells you approved, nothing else touched.

Real-time calculation engine

A calculation engine (a fork of IronCalc, compiled to WebAssembly) runs inside the server, so your agent sees what its edit did to the sheet instead of guessing. Change a driver and it reads back the recomputed growth rates in the same turn. The scripting path can't: openpyxl doesn't calculate formulas at all.

Leaves your Excel file intact

Saves rewrite only the package parts an edit touched; charts, pivots, macros, add-in data and custom XML come back byte-identical. When a Python library opens and re-saves a heavy model, it can quietly drop or damage charts, data validation, pivot caches or formatting. Here that's ruled out by construction, not by the model's judgment on the day.

Finds things fast, spends fewer tokens

A workbook map and row search locate “Product revenue” in a 1,400-row model in a few calls, not a cell-by-cell scan. On a 1.4 MB, 55,000-formula model the same row insert took 17 s, 1,000 output tokens and $0.35 through GridPath versus 52 s, 6,100 and $0.86 through the scripting path — same model, same prompt, medians of five runs each.

Review before save

Every write returns a review_url: the sheet with changed cells highlighted and recomputed dependents visible, a card per agent action with before → after, and Accept, Reject, Save. With --review-required, only that page can write the file.

Runs anywhere Node runs

One install line. No Python environment, no openpyxl, no LibreOffice recalc pass, no Excel install — which is what the “just script it” path quietly needs. Works on the locked-down laptop.

Sandboxed scripts

run_script runs the agent's JavaScript against the workbook in a worker with a hard timeout and lands the result as one reviewable batch — the right tool for “for every row where…”.

Add it to your agent

Claude Desktop

Download, double-click, done. Review required by default. No terminal, no Node install.

Download for Claude Desktop

Claude Desktop shows its standard warning for extensions installed from a file. The source is public; nothing is written to a file until you accept and save on the review page.

Cursor

One click adds the server to Cursor's MCP settings.

Add to Cursor

Claude Code

claude mcp add gridpath -- npx -y gridpath mcp --review-required

Cursor / Claude Desktop (manual)

{
  "mcpServers": {
    "gridpath": {
      "command": "npx",
      "args": ["-y", "gridpath", "mcp", "--review-required"]
    }
  }
}

Codex (config.toml)

[mcp_servers.gridpath]
command = "npx"
args = ["-y", "gridpath", "mcp", "--review-required"]

What a session looks like

  1. "In model.xlsx, add an FY2029E column with the same formula pattern."
  2. The agent calls describe_workbook, then run_script; the result comes back with a readback of every cell it wrote and a review link.
  3. You open the link: the new column is highlighted, the values are already computed, the card shows each formula.
  4. Accept, Save. The file on disk changes in exactly one part: that sheet.

Honest note: the newest coding agents, given a careful prompt, often preserve workbook parts on their own by editing the XML directly. GridPath's difference is that it always does, it shows you the diff first, and it needs nothing installed but Node. Numbers and methodology in the evals repo.

Don't use a coding agent?

GridPath is also a desktop app with the same engine and review, and its own agent built in. Free with your Claude or ChatGPT subscription.