Skip to content
MCP Shelf

Excel MCP Server

View on GitHub

Create, edit, format and chart .xlsx files, no Excel needed.

  • Started in our test
  • ★ 4.3K GitHub stars
  • 50.6K downloads a week
  • Last commit 26 Oct 2026

At a glance

This server works on Excel files directly, so it runs on any machine, including servers without Office. The assistant can read ranges, write values and formulas, format cells, add charts and pivot tables, and manage sheets.

It can run over stdio for desktop clients or over HTTP if you want to host it.

Made by
Haris Musa
Licence
MIT
Latest version
2.2.2 (21 Oct 2026)
PyPI package
excel-mcp-server
GitHub stars
4.3K
Downloads
50.6K a week
Last commit
26 Oct 2026
Tools
46
Runs on
Your computer

Our check: We ran this exact config on 26 Oct 2026: it started and answered with 46 tools. The npm package called "excel-mcp-server" has no link to this project. The project publishes to PyPI under that name, so it runs with uvx.

What's in the pod: its tools

We found 46 tools when we started it on 26 Oct 2026. 8 only read. The rest can change things, so keep your app's "ask before each tool call" setting on for them.

Changes things38 tools · Can create, edit, send or delete.

ToolWhat it is for
add_conditional_formatAdds colour scales, data bars, icon sets or highlight rules to a range.
add_data_validationAdds dropdown lists or value limits to cells.
add_slicerAdds a slicer button panel to filter a PivotTable or table.
add_sparklinesDraws tiny in-cell line, column or win/loss charts.
clear_rangeEmpties a block of cells, keeping or removing formatting.
copy_rangeCopies cells to another place, with paste-special options.
copy_sheetDuplicates a worksheet.
create_chartBuilds a native Excel chart, from bar and line to waterfall, treemap and funnel.
create_pivot_tableBuilds a real PivotTable that Excel can refresh, with grouping and calculated fields.
create_sheetAdds a new worksheet.
create_workbookMakes a new, empty Excel file.
delete_chartRemoves a chart.
delete_defined_nameRemoves a named range.
delete_imageRemoves a picture from a sheet.
delete_noteRemoves a cell note.
delete_pivot_tableRemoves a PivotTable.
delete_rows_or_columnsDeletes rows or columns and fixes every formula that pointed at them.
delete_sheetDeletes a worksheet.
delete_slicerRemoves a slicer.
delete_sparklinesRemoves sparklines.
export_csvSaves a range out as a CSV file.
format_rangeSets fonts, fills, borders and number formats.
goal_seekChanges one input until a formula hits the target you set.
import_csvPulls a CSV or TSV into a sheet and turns numbers and dates into real values the way Excel's own import does.
import_workbookUploads a workbook to a remote server so it can be edited.
insert_imagePlaces a picture on a sheet.
insert_rows_or_columnsInserts rows or columns and keeps every formula reference right.
merge_cellsMerges or unmerges cells.
rename_sheetRenames a worksheet.
replace_cellsFinds and replaces text or values.
set_defined_nameCreates or updates a named range.
set_noteAdds or edits a note on a cell.
set_sheet_layoutSets column widths, frozen panes, grouping, print setup and protection.
set_tableTurns a range into an Excel table, with totals row and calculated columns.
set_workbook_settingsChanges workbook-wide options such as calculation mode.
sort_rangeSorts rows by one or more columns.
transform_rangeCleans data: removes duplicates, splits text to columns or fills a series.
write_rangeWrites values, formulas, dates or links into cells.

Only reads8 tools · Looks things up and changes nothing.

ToolWhat it is for
describe_sheetSummarises one sheet: used range, headers, tables, charts and frozen panes.
describe_workbookLists a workbook's sheets, tables, names and sizes, as a first look.
export_workbookSends a workbook from the server back to you when it runs remotely.
find_cellsSearches for values or formulas across a sheet.
list_workbooksLists the Excel files in the allowed folders.
read_rangeReads cell values and formulas, working out formula results even if the file was never opened in Excel.
read_vbaShows the macro code inside an .xlsm file without running it.
trace_formulaShows what a formula depends on and what depends on it, step by step, to find a wrong number.

Grouped and described by us. The README on GitHub lists the inputs each tool takes.

Set it up

Pick your app for the exact snippet and where it goes.

Where it goes: claude_desktop_config.json (Settings → Developer → Edit Config)

Claude Desktop
{
  "mcpServers": {
    "excel": {
      "command": "uvx",
      "args": [
        "excel-mcp-server",
        "stdio"
      ]
    }
  }
}

New to this? See the setup guides for Claude Code, Cursor, Claude Desktop and ChatGPT.

Settings

Names are exactly as the project spells them. Required ones are marked.

SettingWhat it does
--allow-dirCommand line flagOnly lets it open workbooks in this folder. Repeat for more folders. Strongly recommended.--allow-dir /path/to/workbooks
EXCEL_FILES_PATHEnvironment variableThe same folder limit set through the environment. Separate folders with : on Mac and Linux or ; on Windows.
--read-onlyCommand line flagOffers only tools that cannot change files. Also EXCEL_MCP_READ_ONLY=1.
--toolsCommand line flagLoads only the core tools plus the areas you list, which saves a lot of context.--tools data,charts
--allow-vba-writeCommand line flagAdds tools that write macro code. Off by default; macros are never run either way.
--max-file-mbCommand line flagLargest workbook it will open. Defaults to 100 MB.
EXCEL_MCP_AUTH_TOKENEnvironment variableBearer token clients must send when the HTTP server listens beyond localhost.
--portCommand line flagPort for the HTTP mode. Defaults to 8017.

What it can touch

It can read

  • Excel files (.xlsx, .xlsm, .xltx, .xltm) and CSVs in the folders you allow

It can change

  • Creates and edits workbooks in those folders, saving each change in one go so a file is never left half-written
  • Never overwrites an existing workbook without being asked

Safer setup: Always pass --allow-dir, and add --read-only when you only want analysis. Leave --allow-vba-write off.

Before you start

  • uv (for uvx)

If it does not work

Claude Desktop cannot find uvx
Desktop apps miss your shell PATH, especially on macOS. Use the full path that which uvx prints.
File not found with a relative path
Relative paths start in the --allow-dir folder. Without that flag, give the full path to the file.
The agent is slow because of the tool list
Use --tools to load only the areas you need, such as data and charts.
A huge sheet is refused
Raise --max-file-mb or --max-loaded-cells, keeping an eye on memory.

Peas in a pod: similar servers

How Excel MCP Server lines up against other databases and data servers on the shelf.

ServerToolsRuns onLicenceStars
Excel MCP Server46Your computerMIT4.3K
Postgres MCP Pro9Your computerMIT3.4K
Supabase29Hosted–3K
MCP Toolbox for Databases29Your computerApache-2.016.7K
Qdrant2Your computerApache-2.01.6K

Questions

Do I need Microsoft Excel installed?

No. It edits the files directly with openpyxl and has its own formula engine, so it runs on Windows, macOS and Linux.

Does it work with Google Sheets?

Not directly. Export the sheet as .xlsx first, or use a Google Sheets server instead.

Will it run my macros?

Never. It can read VBA code, and write it only if you start it with --allow-vba-write.

Is it free?

Yes, MIT licensed.

Full docs on GitHubharis-musa/excel-mcp-server

Something wrong on this page? Tell us.

More in Databases and data