
Excel MCP Server by sbroenne: Automate Real Microsoft Excel with AI
Lets your AI assistant control the real Microsoft Excel app on Windows: formulas, PivotTables, Power Query, charts and VBA.
This community server drives the actual Excel application through Excel's official COM interface, not a file parser. That lets it recalculate formulas, refresh Power Query, evaluate DAX and keep PivotTables, charts, macros and formatting intact.
It needs Windows, Microsoft Excel 2016 or later and an interactive desktop, and it is not meant for Linux, macOS or servers. It runs on your computer and needs no account.
Good for
- Analysts who want Excel reports, PivotTables and charts built by chat
- Power Query and DAX users who want models refreshed and checked
- Windows users with Excel 2016 or later on an interactive desktop
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
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 Server (ExcelMcp)
Claude Code
- 1
Copy this prompt.
Add the Excel MCP Server (ExcelMcp) server to Claude Code. Run this command: claude mcp add excel-mcp -- npx -y @sbroenne/mcp-server-excel@latest 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 Windows, Microsoft Excel 2016 or later, Node.js.
Read-only mode: There is no read-only mode. Work on copies and review changes before saving.
Windows only: it needs Microsoft Excel 2016 or later and an interactive desktop. The npm package includes the Windows server, so you need no .NET install. After restarting your app, test it by asking it to create an empty Excel file called test.xlsx. The vendor documents this setup for several other apps; this tab puts the same command in this app's own config format.
Built from the package data we hold. Not yet tested by us.
Tools
Opens, creates, saves and closes workbooks
Opens or creates a workbook in the real Excel app and hands back a session ID the other tools use. It also saves, closes, attaches to a workbook already open and, with your explicit approval flags, enables editing, connections or macros. Closing without save:true discards unsaved edits.
Try: “Create an empty Excel file called test.xlsx”
Delete ·
fileFinds and checks workbooks without changing them
Lists open sessions, discovers workbooks already open on your desktop, tests whether a file can be opened (including protection checks) and shows a session's opening restrictions.
Try: “Which workbooks are open in Excel right now?”
Files ·
file_readReads workbook details
Returns information about the workbook in a session, such as whether it is read-only, using the session ID from the file tool.
Try: “Is this workbook read-only?”
Read ·
workbook_readRuns a list of Excel commands in one call
Takes a list of commands in the CLI format and runs them in order in one call. It can stop at the first failure. It does not roll back earlier commands if a later one fails.
Try: “Run these five range edits in one batch and stop if one fails”
Delete ·
batchWrites values, formulas and formats
Writes values and formulas to cells, sets number formats, copies ranges, and clears content or formatting. Strings that start with = are written as formulas.
Try: “Put the quarterly totals in B2:E5 and format them as currency”
Delete ·
rangeReads cell values, formulas and formats
The read-only side of range operations. Reads values, formulas, number formats, the used range, special cells and formula precedents or dependents without changing anything.
Try: “Show me the values in A1:F20 on the Sales sheet”
Read ·
range_readInserts, deletes, sorts and cleans data
Inserts or deletes cells, rows and columns, replaces text, and sorts, filters, fills and cleans data. Remove duplicates clears the removed rows inside the selection instead of shifting rows up.
Try: “Remove duplicate rows by customer ID in A2:D500”
Delete ·
range_editFormats cells and sets validation
Sets borders, fonts, fills, alignment and number formats, adds data validation, merges cells, auto-fits, and shows or hides rows and columns.
Try: “Make the header row bold with a dark fill and add a dropdown to column C”
Write ·
range_formatEdits hyperlinks, comments and cell protection
Adds and removes hyperlinks and threaded comments, and changes cell protection. It works through local Excel, so cloud mentions and assignments are not available.
Try: “Add a comment to B7 asking for the source of this number”
Delete ·
range_linkCreates, renames, copies and deletes sheets
Creates, renames, copies, moves and deletes worksheets. Deleting a sheet removes all its contents, may break formulas elsewhere and has no tool-level undo.
Try: “Add a new sheet called Summary after Sales”
Delete ·
worksheetChanges sheet look, visibility and protection
Changes sheet styling, visibility, protection, grouping and outlines, such as grouping rows or collapsing outline levels.
Try: “Group rows 5 to 20 on the Data sheet and collapse them”
Write ·
worksheet_styleSaves, copies, exports and protects workbooks
Saves, copies, exports, refreshes and protects workbooks, and manages document properties, themes, external links and table or cell styles. Refresh all updates every data connection and PivotTable.
Try: “Save this workbook as a copy named report-final.xlsx”
Write ·
workbookCreates and edits Excel Tables
Creates, changes, deletes and appends rows to Excel Tables. Creation checks for merged cells, header problems and formula-sort risks before it runs.
Try: “Turn A1:F200 into a table called Orders”
Delete ·
tableEdits table columns, filters and sorting
Changes table columns, applies and clears filters, and sorts. Filters can match values, dates, colors, top or bottom items and AND/OR conditions.
Try: “Filter the Orders table to rows where Region is West”
Write ·
table_columnManages named ranges
Creates, updates, deletes and writes named ranges used as formula names or parameters.
Try: “Create a named range TaxRate pointing at Settings!B2”
Delete ·
namedrangeCreates and refreshes PivotTables
Creates PivotTables from a range, a table or the Data Model, then refreshes, deletes and changes their source or cache options. Several PivotTables can share one cache.
Try: “Create a PivotTable from the Orders table on a new sheet”
Delete ·
pivottableArranges PivotTable fields
Adds, removes and configures PivotTable fields, and sets filters, sorting and grouping. Report filters on Data Model sources can be read and changed.
Try: “Put Region in rows and sum Revenue in values”
Write ·
pivottable_fieldAdds PivotTable calculated fields
Creates and deletes calculated fields and members and sets layout. A calculated field works on totals, not on single source rows, and affects every PivotTable that shares the cache.
Try: “Add a calculated field Margin = Revenue - Cost”
Delete ·
pivottable_calcCreates, moves and exports charts
Creates embedded charts from a range, a table or a PivotTable, moves and resizes them, exports them and deletes them. It warns when a chart would cover data or another chart.
Try: “Add a column chart of monthly revenue next to the table”
Delete ·
chartConfigures chart series and styling
Changes chart data, series, titles, axes, labels, legends, trendlines and colors. Series and point numbers start at 1.
Try: “Add a trendline and rename the axis titles on the revenue chart”
Write ·
chart_configAdds conditional formatting rules
Adds, updates, reorders, deletes and clears conditional formatting rules such as cell value, formula, color scale, data bar, icon set and top 10.
Try: “Highlight cells in column D that are below zero in red”
Delete ·
conditionalformatCreates slicers and timelines
Creates, configures and deletes slicers and timelines that filter PivotTables and Tables. A slicer needs a unique name, a destination sheet and a position.
Try: “Add a Region slicer next to the PivotTable”
Delete ·
slicerManages shapes, images and sparklines
Creates, updates and deletes images, shapes, text boxes, connectors, sparklines and simple form controls on a sheet, and groups, aligns and reorders them. Charts and ActiveX objects are not covered.
Try: “Insert logo.png at the top left of the Summary sheet”
Delete ·
drawingEdits Power Query M code and loads
Creates, changes, evaluates, refreshes and removes Power Query M code and its data loads. It can load to a worksheet, the Data Model, both, or stay connection-only, and the data source may be remote.
Try: “Create a query that loads sales.csv and load it to a sheet”
Delete ·
powerqueryReads Power Query definitions
The read-only side of Power Query operations. Lists queries, shows their M code, and reads load and privacy settings without changing them.
Try: “List the Power Query queries in this workbook”
Read ·
powerquery_readReads Power Query trace files
Lists and summarizes local Power Query trace files, newest first. Summaries hide query text and error details unless you ask for them.
Try: “List the Power Query trace files”
Files ·
powerquery_trace_readManages data connections
Creates, changes, imports, deletes, loads and refreshes data connections (OLEDB, ODBC, ODC files), and can browse external OLAP dimensions and members through an existing connection.
Try: “Refresh the SalesDB connection”
Delete ·
connectionImports text, CSV and web tables
Creates and configures QueryTables for local text and CSV imports and legacy HTML web imports. Modern connectors go through the Power Query tool instead.
Try: “Import data.csv into Sheet2 as a query table”
Write ·
querytableEdits the Data Model and DAX measures
Creates, updates and deletes DAX measures, renames or removes Data Model tables, and refreshes the model. Worksheet tables and Data Model tables are separate, so refresh after changing a source.
Try: “Add a DAX measure Total Sales as SUM of Sales[Amount]”
Delete ·
datamodelLinks Data Model tables
Creates and deletes relationships between Data Model tables so DAX can calculate across them. Both tables must already be in the model with compatible column types.
Try: “Relate Orders[CustomerID] to Customers[ID]”
Delete ·
datamodel_relationshipRuns what-if analysis
Runs goal seek, creates and shows scenarios, and builds one- or two-variable data tables on a worksheet model.
Try: “Use goal seek to find the price that gives a profit of 10000”
Delete ·
analysisInspects and runs VBA macros
Inspects the VBA project, searches and reads module source, replaces one procedure, imports or updates modules, and runs procedures in .xlsm workbooks. It runs code you or the assistant supply.
Try: “Show me the procedures in Module1”
Runs code ·
vbaWrites Python in Excel formulas
Writes and reads =PY() formulas for Python in Excel. It needs a licensed Microsoft 365 account with Python in Excel, and the code runs in Microsoft's cloud.
Try: “Put a Python formula in D2 that returns the mean of column C”
Runs code ·
pythoninexcelCaptures Excel as an image
Photographs the live Excel window so the assistant can check formatting, charts and conditional formats. It needs an interactive desktop and leaves the workbook and clipboard untouched.
Try: “Take a screenshot of the Summary sheet to check the layout”
Read ·
screenshotControls the Excel window
Shows, hides, moves and resizes the Excel window, changes the status bar, and reads or sets the visible area, selection and zoom.
Try: “Show Excel and scroll to cell A1”
Write ·
windowReads and changes Excel settings
Reads and changes per-user Excel settings that apply to every workbook, such as Power Query tracing and the approval step before new native database queries run. Turning that approval off reduces security.
Try: “Turn on Power Query tracing”
Write ·
settingsManages XML maps and XML import
Manages workbook XML maps and imports or exports XML data without dialogs. External schema files are rejected and DTD processing is off.
Try: “Import orders.xml into the existing map”
Write ·
xmlmap
Read from the source code
Permissions
high risk · 5 things to watch
High risk
The assistant can open, edit, save and close any workbook your Windows account can reach, and Excel runs the changes live. Close without saving discards edits, and there is no undo, so work on copies of important files and approve macro or connection enabling yourself.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It can run macros and Excel features that execute code
The tools cover VBA and Python in Excel. Macros are off by default when opening, and enabling them needs an explicit approved:true and allow_reopen:true flag, so do not pre-approve those. github.com
Closing a workbook can throw away your edits
The file tool closes with save:false by default, which discards unsaved edits, and the docs say there is no tool-level undo. Ask it to save first and keep backups. github.com
It sends pseudonymous usage telemetry
Operation and outcome records go out with a stored random user ID, not workbook contents. The ADR calls the ID pseudonymous, not anonymous. github.com
The assistant can read your workbook data
Requested data goes back to the AI client you use, so check that client's data policy before opening sensitive workbooks. github.com
Windows only
It needs the Excel desktop app and an interactive session, so it will not run headless on a server. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Talks to | Pseudonymous usage telemetry, optional remote formatting and Python in Excel flows described in the privacy policy |
|---|---|
| Sign-in and keys | No credentials. It uses your Windows session and Excel's own sign-ins. |
| Scopes |
|
Questions
Is it official?
No. It is a community project by sbroenne, not made by Microsoft. It drives the real Excel app through Excel's own COM interface.
Does it work on Mac or Linux?
No. It needs Windows, Microsoft Excel 2016 or later and an interactive desktop.
Do I need an API key?
No. It runs locally, uses your Windows session, and needs no account.
How many tools does it have?
64 according to the README, covering 434 operations. This page lists 37 whose names the source confirms. Most areas have a main tool and a read-only twin, such as range and range_read, and each tool takes an action name such as opening a file or reading workbook info.
Can I watch it work?
Yes. Ask it to show Excel while it works and the Excel window opens so you can follow each change.
Can it run macros?
It can run VBA and Python in Excel, but opening a workbook leaves macros off. Turning them on takes explicit approval flags and a reopen.
MCP server or CLI?
Both give the same Excel commands. The README says the CLI usually costs fewer AI tokens for agents that can run terminal commands, while the MCP server gives tool discovery and persistent sessions.
How do I add it to Claude Desktop?
Use the install box above and restart Claude Desktop.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
@sbroenne/mcp-server-excel- Registry
- npm
- Transport
- stdio
- Version
- 2.6.9
- License
- MIT
- Last commit
- Oct 31, 2026
- Open issues
- 7
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 8Hide
- excelmcpserver.dev · excelmcpserver.dev
- 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