Excel MCP Server

Ask Claude what's in your spreadsheets, and why the totals say #VALUE!.

Excel MCP Server product illustration

What it does

Let Claude Code, Claude Desktop, Cursor or any MCP client work with your Excel files: read sheets and tables, profile columns, trace broken formulas back to the cell that caused them, and (only if you turn it on) edit with automatic backups and recalculation.

  • Python 3.9+, one dependency (openpyxl). Runs locally over stdio; your files never leave your machine.
  • Confined to one folder (--root): paths outside it, symlink escapes and non-Excel files are refused.
  • Read-only by default. --allow-writes adds 5 editing tools.
  • Works without Excel installed. LibreOffice (optional) recalculates formulas after edits.

What you get

The screenshot is real output from the kit’s own commands. Tested from a fresh download of this exact zip: ./run_tests.sh ran 26 tests OK on Python 3.13 and 3.10.

Real terminal output from Excel MCP Server: demo and passing tests

Tools

ToolWhat it does
list_workbooks.xlsx/.xlsm files in the folder, size, modified time, whether Excel has it open
describe_workbooksheets, sizes, header row, formula count, Excel tables, named ranges, frozen panes, filters
read_rangecells as records keyed by the header row (or raw rows); formulas=true shows formulas; capped with next_range
find_cellsfind text or numbers across sheets
profile_sheetper column: type, blanks, distinct, min/max/sum/mean, error cells, text hiding in number columns (with row numbers)
check_formulascells showing #REF!, #DIV/0!, #VALUE!...; error origins (the cells whose inputs are fine, so fixing them clears the rest); references to missing sheets; hard-coded numbers in formulas; formulas never calculated
write_range *(writes)*write values or formulas from a cell; timestamped backup; recalculates
append_rows *(writes)*add rows under the data and grow the Excel table that ends there
create_workbook, add_sheet *(writes)*new files and sheets
recalculate *(writes)*recalculate all formulas with headless LibreOffice and report remaining errors

Set up

pip install -r requirements.txt
./demo.sh            # real MCP session on the sample workbooks
./run_tests.sh       # 26 tests

Claude Code (as a plugin, or):

claude mcp add excel -- python3 /ABSOLUTE/PATH/excel-mcp-server/server.py --root ~/Spreadsheets

Claude Desktop / Cursor: copy examples/configs/claude_desktop_config.json or cursor-mcp.json and fix the paths. Add "--allow-writes" to the args to enable editing.

Options: --root DIR (or EXCEL_MCP_ROOT), --allow-writes (or EXCEL_MCP_ALLOW_WRITES=1), --max-cells 2000 per read, --no-backups, --no-recalc.

Things to know about Excel files (handled for you)

  • Formula values come from the last save. openpyxl reads the value Excel stored; it can't calculate. check_formulas reports formulas that were never calculated.
  • Saving with openpyxl drops every formula's stored value. After each write the server recalculates with LibreOffice when it's installed. Without it, the reply says the values are blank until you open and save the file in Excel. A test covers both paths.
  • Files open in Excel are not touched. Excel's ~$ lock file blocks writes so you don't lose changes.
  • Every write keeps a backup (name.bak-YYYYMMDD-HHMMSS.xlsx) next to the file, and saves go through a temp file so a crash can't leave a half-written workbook.

How it was tested

26 tests on Python 3.13 and 3.10 with openpyxl 3.1.5 and LibreOffice: path confinement, reading and paging, header detection, profiling, error-origin tracing on a workbook with a cascading #VALUE!, missing-sheet and #REF! formulas, every write tool, table growth, Excel lock files, recalculation with and without LibreOffice, and full JSON-RPC sessions (legacy and 2026-07-28 MCP).

Honest limits

  • .xls (old binary format), .xlsb, .csv and password-protected files are not supported.
  • Charts, pivot tables and images are kept by openpyxl only partly; don't let it edit workbooks that depend on them (read-only is fine).
  • .xlsm macros are preserved on write but never run.
  • Recalculation uses LibreOffice, which matches Excel for normal formulas; a few newer Excel-only functions may differ.

Format and license

Zip, 40 KB, v1.0, 22 files. You may use and modify this kit for your own work and for clients you serve, including paid client work. Not affiliated with or endorsed by Microsoft, Anthropic or Cursor (Anysphere).

FAQ

Do I need Excel installed?
No. openpyxl reads and writes .xlsx; LibreOffice (free, optional) recalculates formulas after edits.
Can it change my files?
Only if you start it with --allow-writes, and every write keeps a backup.
Does it work with .xls or Google Sheets?
No: .xlsx/.xlsm only. Export Google Sheets as .xlsx first.
How do I get the files?
Pay by card right here on youraitools.co: your download links appear on this page the moment the payment goes through (claim window: 72 hours, up to 5 downloads per 7 days). Need the files re-sent later? Email hello@youraitools.co.
Refunds?
Email hello@youraitools.co within 14 days if it doesn’t work and we can’t fix it.
Can I pay with crypto?
Yes. Pay the same price in USDC or USDT on Base, Ethereum, Arbitrum, Optimism, Polygon or Solana from the "Pay with crypto" button, with no account or KYC. We check the payment on-chain and show your download links as soon as it confirms.

Get Excel MCP Server

Excel MCP server: read sheets and tables, profile columns, trace broken formulas to their source, and edit safely with backups. Python, 26 tests.

Pairs well with

Download$29

MySQL MCP Server

MySQL MCP server for Claude Code, Claude Desktop and Cursor: read-only transactions, schema, EXPLAIN findings, 11 health checks, slow queries. Python. $29.

View MySQL MCP Server
Download$29

Postgres MCP Server

PostgreSQL MCP server for Claude Code, Claude Desktop and Cursor: read-only transactions, schema, EXPLAIN findings, health checks, slow queries. Python. $29.

View Postgres MCP Server

Related

1 email a week: new x402 + MCP tools and free kits.

Short weekly digest of new x402 + MCP tools and free kits, including the MCP OAuth Checker. No spam, unsubscribe any time.