
Excel MCP Server: community server for Claude, Cursor and Codex
Lets your AI assistant create and edit Excel files, with charts, PivotTables and formulas, without Excel installed.
It lets Claude, Cursor, Codex and other assistants create and edit Excel workbooks for you, including data, formulas, charts, PivotTables and formatting. It works on .xlsx files directly, so you do not need Excel installed, and it runs on Windows, macOS and Linux. It is a community project by Haris Musa, and Microsoft has no Excel MCP server of its own. Give it one folder to work in, because otherwise it can open any Excel file on your computer.
Good for
- Analysts who want Claude to build charts and PivotTables from a sheet of raw data
- Finance and ops people who need to find out why a number in a workbook is wrong
- Mac and Linux users who need real .xlsx output without owning Excel
- Developers who want an agent to generate or clean up spreadsheets as part of a job
Works in
6 supported · 6 should work
Tap an app to see how to set it up and any known problems.
The README covers it with one claude mcp add command. GitHub
The README covers it: open the .mcpb bundle from the latest release and pick the folder it may use. GitHub
The README covers it: add the entry to ~/.cursor/mcp.json. GitHub
The README covers it. In .vscode/mcp.json the entry goes under servers, not mcpServers. GitHub
The README covers it with one codex mcp add command. GitHub
The README covers it with one gemini mcp add command.
Known problems
- Fixed
Some tools were skipped and files given without .xlsx were not found
Workaround: Update to the latest version and always include the .xlsx extension in file names.
Reported Sep 2025 · GitHub
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install Excel MCP
Claude Code
- 1
Copy this prompt.
Add the Excel MCP server to Claude Code. Run this command: claude mcp add excel --scope user -- uvx excel-mcp-server stdio --allow-dir /path/to/workbooks Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires uv (Python), Python 3.11+.
Read-only mode: Add --read-only after stdio in the server arguments, so it can only read workbooks, never change them.
Replace /path/to/workbooks with the one folder the assistant may use; without --allow-dir it can open any Excel file you give a full path to. You do not need Microsoft Excel installed.
From the project README. Source.
Tools
Shows a workbook's sheets, names and settings at a glance
Gives an overview of a workbook: its sheets and how much is on each, defined names, properties and calculation settings. It is the usual first step before reading or editing.
Try: “What's in budget-2026.xlsx?”
Read ·
describe_workbookShows everything on a sheet: tables, charts, PivotTables, notes and rules
Describes one sheet in detail: the used range, frozen panes, merged cells and every object on it, such as tables, charts, PivotTables, slicers, images, notes, links, validation and conditional formats.
Try: “What charts and tables are on the Summary sheet?”
Read ·
describe_sheetReads cell values from a sheet, page by page for big sheets
Reads the values in a block of cells as rows, with dates in a standard format, and returns large sheets in pages. Formulas that have no saved result are calculated for you where possible.
Try: “Read the first 50 rows of the Sales sheet”
Read ·
read_rangeFinds cells that contain a word or value
Searches a workbook for cells whose value contains or equals what you ask for and lists them by sheet.
Try: “Find every cell that mentions Acme Corp”
Read ·
find_cellsLists the Excel files in a folder
Lists the Excel files in a folder you name, with their sizes.
Try: “Which Excel files are in my reports folder?”
Files ·
list_workbooksShows which cells a formula depends on, to find why a number is wrong
Audits a formula: it shows the cells, names and tables it uses or that use it, across sheets, and can evaluate it step by step like Excel's Evaluate Formula.
Try: “Why is the total in Summary!F20 wrong? Trace where it comes from”
Read ·
trace_formulaShows the macro code inside an .xlsm workbook
Shows the VBA macro code in an .xlsm or .xltm workbook, module by module. The code is only read, never run.
Try: “Show me the macros in tracker.xlsm and explain what they do”
Read ·
read_vbaCreates a new, empty Excel workbook
Creates a new, empty Excel file at the path you give.
Try: “Create a new workbook called q4-forecast.xlsx”
Write ·
create_workbookWrites values or formulas into cells
Writes values or formulas into a block of cells, replacing what was there. Formulas are checked for unsafe functions before they are saved.
Try: “Put these 12 monthly totals in column B of the Sales sheet”
Write ·
write_rangeAdds a chart, from simple bars to waterfall and treemap
Adds or replaces a chart built from a range of cells. It supports column, bar, line, pie, scatter and other common types, plus newer ones such as waterfall, histogram, treemap and funnel.
Try: “Make a line chart of monthly revenue from Sales!A1:B13”
Write ·
create_chartBuilds a PivotTable that Excel can refresh
Adds a real PivotTable that summarizes a block of data, with totals already filled in, which Excel can refresh later.
Try: “Create a PivotTable of revenue by region and month”
Write ·
create_pivot_tableTurns a range into an Excel table, or changes one
Creates a formatted Excel table from a range, or changes an existing one: its options, calculated columns, totals row and size.
Try: “Turn A1:F200 on the Orders sheet into a table with a totals row”
Write ·
set_tableChanges fonts, colors, borders and number formats
Changes how a range looks: font, fill color, borders, alignment and number format, plus whether cells are locked once the sheet is protected.
Try: “Make the header row bold with a gray fill and format column C as currency”
Write ·
format_rangeAdds color rules like data bars, color scales or highlights
Adds a conditional formatting rule to a range, such as color scales, data bars, icon sets, top or bottom values, duplicates, or text and date rules.
Try: “Highlight any value in column D below zero in red”
Write ·
add_conditional_formatAdds dropdowns or limits on what can be typed into cells
Restricts what can be entered in a range, for example a dropdown list, number or date limits, or text length, with an optional message and error alert.
Try: “Add a dropdown with Open, In progress and Done to column E”
Write ·
add_data_validationSorts rows by one or more columns
Sorts the rows of a range by one or more columns, like Data, Sort in Excel. Whole rows move together.
Try: “Sort the Orders sheet by date, newest first”
Write ·
sort_rangeRemoves duplicates, splits text into columns or fills series
Cleans up a range: removes duplicate rows, splits text into columns, or fills values down, right or as a series, like Excel's Data and Fill commands.
Try: “Remove duplicate rows from the Contacts sheet”
Write ·
transform_rangeFinds and replaces text across cells
Replaces text in cells, like Excel's Replace All, and reports how many cells changed. Results are retyped as Excel would, so numbers become numbers.
Try: “Replace 'N/A' with blank everywhere on the Data sheet”
Write ·
replace_cellsCopies and pastes a block of cells
Copies a range and pastes it somewhere else, overwriting the destination, with formula references shifting as in Excel.
Try: “Copy A1:D10 from January to the February sheet”
Write ·
copy_rangeFinds the input value that makes a formula hit a target
Changes one input cell until a formula reaches the value you want, like Excel's Goal Seek, and saves the answer if it finds one.
Try: “What price in B2 makes the profit in B10 reach 50,000?”
Write ·
goal_seekMerges or unmerges cells
Merges a range into one cell, keeping the top-left value, or splits merged cells apart again.
Try: “Merge A1:F1 for the report title”
Write ·
merge_cellsSets column widths, frozen panes, filters, print setup and protection
Changes a sheet's layout: column widths, row heights, hidden or grouped rows, frozen panes, auto filter, tab color, print setup and sheet protection.
Try: “Freeze the top row and turn on filters on the Orders sheet”
Write ·
set_sheet_layoutAdds tiny in-cell trend charts
Adds sparklines, small line, column or win/loss charts inside cells, one per row of data.
Try: “Add a sparkline for each product's monthly sales in column N”
Write ·
add_sparklinesAdds a slicer or timeline to filter a table or PivotTable
Adds a slicer, or a date timeline, that filters a table or PivotTable, and can preselect items as clicking would.
Try: “Add a region slicer to the sales PivotTable”
Write ·
add_slicerAdds a new, empty sheet
Adds an empty worksheet to the workbook.
Try: “Add a sheet called Notes”
Write ·
create_sheetRenames a sheet and updates references to it
Renames a worksheet; formulas that point to it are updated as in Excel.
Try: “Rename Sheet1 to Raw data”
Write ·
rename_sheetDuplicates a sheet with everything on it
Copies a worksheet, with its tables, charts and other objects, to a new sheet at the end, as Excel does.
Try: “Duplicate the January sheet for February”
Write ·
copy_sheetInserts empty rows or columns
Inserts empty rows or columns, and moves every reference to the cells after them, as Excel does.
Try: “Insert 3 rows above row 10 on the Budget sheet”
Write ·
insert_rows_or_columnsCreates a named range or constant for formulas
Creates a defined name for a range or constant that formulas can use, such as =SUM(Sales), replacing one with the same name.
Try: “Name the range B2:B13 'MonthlyRevenue'”
Write ·
set_defined_nameAdds a note to a cell
Adds a note to a cell, replacing any note already there.
Try: “Add a note to C5 saying 'Estimate, confirm with finance'”
Write ·
set_notePlaces an image on a sheet
Places an image at a cell, sized in centimeters.
Try: “Put the company logo at A1 on the Cover sheet”
Write ·
insert_imageSets document properties, calculation options and protection
Sets workbook properties, calculation options and structure protection. Protection discourages changes in Excel but is not real security.
Try: “Set the workbook title to 'Q4 forecast' and turn on manual calculation”
Write ·
set_workbook_settingsImports a CSV file into a sheet
Reads a CSV or TSV file into a sheet starting at a cell, overwriting cells there, and types numbers, booleans and dates as Excel would.
Try: “Import orders.csv into a new sheet called Orders”
Write ·
import_csvSaves a range as a CSV file
Writes a range's values to a CSV file, like Save As CSV, protecting text that looks like a formula.
Try: “Export the Summary sheet to summary.csv”
Write ·
export_csvUploads a workbook to the server for remote editing
Uploads a workbook to the server when it runs remotely, removing unsafe links and refusing external connections.
Try: “Upload this workbook so you can edit it”
Write ·
import_workbookSends a finished workbook back to you from a remote server
Returns the workbook file to your client when the server runs remotely, so you can download the result.
Try: “Send me the finished report.xlsx”
Read ·
export_workbookClears values, formatting or rules from cells
Clears the values, formatting or rules in a range without moving cells.
Try: “Clear everything in A2:F100 on the Draft sheet”
Delete ·
clear_rangeDeletes rows or columns
Deletes rows or columns; references to deleted cells become #REF! as in Excel.
Try: “Delete columns G to J on the Orders sheet”
Delete ·
delete_rows_or_columnsDeletes a sheet and everything on it
Deletes a worksheet and everything on it.
Try: “Delete the Scratch sheet”
Delete ·
delete_sheetRemoves a chart, keeping its data
Removes a chart from a sheet; the data stays.
Try: “Delete the old revenue chart”
Delete ·
delete_chartRemoves a PivotTable, keeping its source data
Removes a PivotTable and clears its cells; the source data stays.
Try: “Remove the PivotTable on the Analysis sheet”
Delete ·
delete_pivot_tableRemoves a slicer or timeline
Removes a slicer or timeline; tables and PivotTables stay filtered as they were.
Try: “Remove the region slicer”
Delete ·
delete_slicerRemoves sparklines from cells
Removes the sparklines in a range.
Try: “Remove the sparklines in column N”
Delete ·
delete_sparklinesDeletes a named range
Deletes a defined name; formulas that use it show #NAME? afterwards.
Try: “Delete the name 'OldRevenue'”
Delete ·
delete_defined_nameRemoves a note from a cell
Removes the note from a cell.
Try: “Remove the note on C5”
Delete ·
delete_noteRemoves an image from a sheet
Removes an image from a sheet.
Try: “Remove the logo from the Cover sheet”
Delete ·
delete_imageWrites macro code into an .xlsm workbook, only if you turn it on
Sets the VBA code of a module in an .xlsm or .xltm workbook. It is only offered when the server starts with --allow-vba-write; the code is stored, never run, but runs once you enable macros in Excel.
Try: “Add a macro to tracker.xlsm that clears the Input sheet”
Write ·
write_vba_moduleDeletes a macro module, only if you turn it on
Deletes a standard or class VBA module from a workbook. It is only offered when the server starts with --allow-vba-write.
Try: “Delete the old Module2 macros from tracker.xlsm”
Delete ·
delete_vba_module
Read from the source code
Pros and cons
Good
- No Microsoft Excel needed; works on Windows, macOS and Linux.
- Real refreshable PivotTables, slicers, timelines and modern chart types.
- Calculates formulas itself, so it can read results from files never opened in Excel.
- Read-only mode and folder limits are built in.
- Load only the tool groups you need to save context.
- Free and open source under the MIT license, with an active maintainer.
Watch out
- Can open any Excel file on your computer unless you set a folder.
- No legacy .xls support.
- Its formula engine covers about 260 functions, so some results stay blank until Excel opens the file.
- Tool names changed in 2.0, so older guides and prompts no longer match.
- A long list of security fixes in 2026 means old cached versions are risky.
- The full tool set uses a lot of context.
Permissions
medium risk · 5 things to watch · 21 advisories
Medium risk
The assistant can overwrite cells, delete sheets and open any Excel file you can reach unless you limit it to a folder. Give it one folder, use read-only mode when you only need answers, and keep it on the latest version.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only modeHow to turn it on
Watch out for
It can open any Excel file unless you limit it
Without a folder setting, any full path to an Excel file works. Add --allow-dir with the one folder it should use. github.com
Many security fixes landed in 2026
Over 20 advisories were published this year, and all are fixed by version 2.2.5. Stay on the latest release. github.com
Workbooks can hide instructions
Cells and notes in a file from someone else can try to steer the assistant. Check what it changes when you work on files you did not make. github.com
Macro writing is risky if you turn it on
With macro writing on, it can save VBA code that runs once you enable macros in Excel. Read the code before you enable them. github.com
HTTP mode needs a token before you share it
It only listens on your own computer by default. Set EXCEL_MCP_AUTH_TOKEN before opening it to other machines, and put HTTPS in front. github.com
Security advisories
21 known advisories, all fixed in a newer version.
- excel-mcp-server has a Path Traversal issuecritical · Fixed in 0.1.8 · GHSA-j98m-w3xp-9f56
- Formula Injection via write_data_to_excel and Case-Insensitive Blocklist Bypasshigh · Fixed in 1.0.0 · GHSA-vx23-x2cw-j2pq
- Stored formula injection via incomplete validation and unvalidated formula sinkshigh · Fixed in 1.0.0 · GHSA-h9g4-ghf5-r372
- Unbounded Excel Range Processing Denial of Service in excel-mcp-serverhigh · Fixed in 1.0.0 · GHSA-27w4-5876-h4xq
- Unbounded Excel Range Formatting Causes Remote DoShigh · Fixed in 1.0.0 · GHSA-9r4q-rmpw-qv95
Show all 21Show fewer
- Arbitrary file read/write in stdio mode (no path confinement) and case-sensitive formula denylist bypasshigh · Fixed in 1.0.0 · GHSA-9h7m-8h6c-6jh7
- add_slicer/rename_slicer inject unescaped names into DrawingMLmedium · Fixed in 2.2.5 · GHSA-xw9m-c2v4-2hhq
- create_chart expands up to 1,048,575 series before MAX_SERIES=255 validation (DoS)medium · Fixed in 2.2.5 · GHSA-pwqg-v6rw-x2xh
- import_workbook bypasses --allow-vba-write and stores arbitrary VBA macro workbooksmedium · Fixed in 2.2.5 · GHSA-px2f-qx58-w2qr
- A 295 KB workbook still exhausts memory on the full-parse path, because the new guard bounds bytes rather than cellsmedium · Fixed in 2.2.2 · GHSA-5p2h-j6m4-5fm2
- Formula safety check misses Excel 4.0 macro functionsmedium · Fixed in 2.0.0 · GHSA-w7wm-p57p-8q22
- Network (UNC) and device paths are opened, leaking NTLM credentials on Windowsmedium · Fixed in 2.0.0 · GHSA-wgvf-cmgr-7573
- A highly compressed workbook (zip bomb) can exhaust the server's memorymedium · Fixed in 2.0.0 · GHSA-jf2g-fjwq-rjr6
- import_workbook lets external links, connections and unsafe hyperlinks into the workspacemedium · Fixed in 2.0.0 · GHSA-99mr-c7r6-xhrc
- import_workbook checks only cell formulas, not names or rulesmedium · Fixed in 1.1.2 · GHSA-69rc-6f6g-43xj
- Formula-injection guard bypass in apply_formula / write_data_to_excel (WEBSERVICE/HYPERLINK → SSRF & data exfil)medium · Fixed in 1.0.0 · GHSA-wxp4-xc9x-vpxj
- Formula Injection in write_data_to_excel Allows Malicious Spreadsheet Generation in excel-mcp-servermedium · Fixed in 1.0.0 · GHSA-hcx2-gw6f-x9fq
- Quadratic-Time Conditional Formatting Cleanup in Excel MCP Serverlow · Fixed in 2.2.3 · GHSA-5px3-v5xm-4jhw
- read_vba can hang or exhaust memory on a malformed VBA projectlow · Fixed in 2.0.0 · GHSA-mvpx-mwxr-g2f5
- Formula safety check bypass: external workbook references and blocked functions still acceptedlow · Fixed in 1.1.2 · GHSA-frr9-2j4w-q923
- validate_formula unsafe-function denylist is case-sensitive, so wEbSeRvIcE() is accepted and written to the workbooklow · Fixed in 1.0.0 · GHSA-fqrm-pw9q-4hx4
Technical details
| Turning on read-only | Start the server with --read-only, or set EXCEL_MCP_READ_ONLY=1: only tools that do not change files are offered, and the VBA write tools are never offered. |
|---|---|
| Talks to | None in local mode; HTTP mode listens on 127.0.0.1:8017 by default |
Alternatives
Use this server for most Excel work, since it runs anywhere without Excel. Pick mcp-server-excel if you are on Windows with Excel and need Power Query or live recalculation, and exstruct if you mainly want the assistant to read complex workbooks.
| Server | Official | Runs | Can change things | Tools | GitHub stars |
|---|---|---|---|---|---|
| For Microsoft Excel | |||||
| Excel MCP ServerThis page | Community | Local | Yes | 46 | 4.3K |
| mcp-server-excel | Community | – | – | – | 836 |
| exstruct | Community | – | – | – | 203 |
| Other tools for the same job | |||||
| negokaz excel-mcp-server | Community | – | – | – | 1K |
What people say
People like how much of Excel it now covers, including real PivotTables, and worry most about what an agent can do with write access to spreadsheets.
What people like
- Users building tools for Excel teams praise the 2.0 release with real PivotTables.
- The maintainer answers issues quickly; none are open.
Common complaints
- Security reviewers reported many missing input checks in 2026, all since fixed.
- Tool names changed between versions, breaking older setups.
- Run on a remote server, files are saved there rather than on your own computer.
In their words
“We do a lot of work with complex pivot tables.”moritzderallerechteGitHub issueOct 2026
“v2 update is sick 😍”moritzderallerechteGitHub issueMay 2026
“The two guardrails I would want before exposing write-capable Excel tools to an agent are workspace-root containment on every file argument and a default-deny formula policy.”gregkonush
Questions
Do I need Microsoft Excel installed?
No. It reads and writes .xlsx files directly, on Windows, macOS or Linux. You only need Excel, or another spreadsheet app, to open the results.
Is there an official Microsoft Excel MCP server?
No. Microsoft lists its own MCP servers for Word, mail, calendar, Teams and other Microsoft 365 apps, but none for Excel. This is a community project by Haris Musa.
Is it free?
Yes. It is open source under the MIT license and runs on your own computer.
Is it safe?
Safe enough if you set it up carefully. Limit it to one folder, use read-only mode when you only need answers, keep macro writing off, and stay on the latest version, since many security fixes shipped in 2026.
Can it delete my data?
Yes, unless read-only mode is on. It can clear ranges and delete rows, columns, sheets and charts, but it never silently overwrites a whole existing workbook.
Does it work with .xls or CSV files?
Not old .xls files. It can import a CSV or TSV file into a sheet and export a range as CSV.
Does it calculate formulas?
Yes, for about 260 common functions, so it can read results from files never opened in Excel. Anything it cannot match Excel on comes back blank, and Excel recalculates when you open the file.
Can it run macros?
No. It can read VBA code, and write it only if you turn that on, but it never runs it. Excel asks before enabling macros.
Can I run it on a server for my team?
Yes, in HTTP mode, with a token and HTTPS in front. Files are saved on that server, so use its export and import tools to move them.
How do I add it to Claude Desktop?
The simplest way is the Claude Desktop bundle in the install box above: open it and pick the folder the server may use.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
excel-mcp-server- Registry
- PyPI
- Transport
- stdio, Streamable HTTP
- Auth
- None
- Version
- 2.2.3
- License
- MIT
- Last commit
- Oct 29, 2026
- Open issues
- 0
- Listed in
- Official MCP registry
Other Microsoft Excel MCP servers
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 12Hide
- github.com · github.com
- Understand MCP server options in Agent 365 · learn.microsoft.com
- Excel MCP Server TOOLS.md · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com