excel-mcp
Excel MCP Server skill for Windows workbook automation. Use when an assistant needs rich MCP tools to create, inspect, modify, format, or analyze Excel files. Supports Power Query (M), Data Model/DAX, PivotTables, Tables, Ranges, Charts, Slicers, formatting, screenshots, VBA macros, connections, and
By sbroenne · 1,595 installs
npx skills add sbroenne/mcp-server-excel --skill excel-mcp
Source repository · Upstream listing
Excel MCP Server Skill
Provides 326 Excel operations via Model Context Protocol. The MCP Server hosts the ExcelMCP Service in process and calls it directly for low latency Excel automation. Tools are auto discovered this documents quirks, workflows, and gotchas.
Workflow Checklist
Step Tool Action When
1. Open file file open or create Always first
2. Create sheets worksheet create , rename If needed
3. Write data range set values Always (2D arrays)
4. Format range set number format After writing
5. Structure table create Convert data to tables
6. Save & close file close with save: true Always last
Preconditions
Windows host with Microsoft Excel installed (2016+)
Use full Windows paths: C:\Users\Name\Documents\Report.xlsx
Excel files must not be open in another Excel instance
Calculation Mode Workflow (Batch Performance)
Use calculation mode for bulk write performance optimization . When writing many values or formulas, disable auto recalc to avoid recalculating after every cell:
Note: You do NOT need manual mode to read formulas range get formulas returns formula text regardless of calculation mode.
CRITICAL: Execution Rules (MUST FOLLOW)
Rule 1: NEVER Ask Clarifying Questions
STOP. If you're about to ask "Which file?", "What table?", "Where should I put this?" DON'T.
Bad (Asking) Good (Discovering)
"Which Excel file should I use?" file(list) → use the open session
"What's the table name?" table(list) → discover tables
"Which sheet has the data?" worksheet(list) → check all sheets
"Should I create a PivotTable?" YES create it on a new sheet
You have tools to answer your own questions. USE THEM.
Rule 2: Always End With a Text Summary
NEVER end your turn with only a tool call. After completing all operations, always provide a brief text message confirming what was done. Silent tool call only responses are incomplete.
Rule 3: Format Data Professionally
Always apply number formats after setting values:
Data Type Format Code Result
USD $ , 0.00 $1,234.56
EUR € , 0.00 €1,234.56
Percent 0.00% 15.00%
Date (ISO) yyyy mm dd 2025 01 22
Write format codes in US notation ( , grouping, . decimal) regardless of the machine's
locale — Excel translates them. The rendered separators follow the user's Windows regional
settings, so $ , 0.00 shows $1.234,56 on a German system. Don't "fix" that by swapping the
separators in the format code; it would break on every other locale.
Workflow:
Step 3 is not optional. A column sized for 45678 is too narrow once that value renders as
2025 01 22 or $1,234.56 , and Excel displays instead of the number.
Rule 4: Use Excel Tables (Not Plain Ranges)
Always convert tabular data to Excel Tables:
Why: Structured references, auto expand, required for Data Model/DAX.
Rule 5: Session Lifecycle
Pass that same value as session id on every session based follow up call.
sessionId above is a local variable, not an MCP argument name. When reusing a
session from file(list) , copy the matching entry's sessionId value into
session id . Never guess or substitute a session.
Unclosed sessions leave Excel processes running, locking files.
Rule 6: Data Model Prerequisites
DAX operations require tables in the Data Model:
Rule 7: Power Query Development Lifecycle
BEST PRACTICE: Test First Workflow
Why evaluate first:
Catches syntax errors and missing sources BEFORE creating permanent queries
Better error messages than COM exceptions from create/update
See actual data preview (columns + sample rows)
No cleanup needed like a REPL for M code
Skip only for trivial literal tables
Common mistake: Creating/updating without evaluate → pollutes workbook with broken queries
Rule 8: Targeted Updates Over Delete Rebuild
Prefer : set values on specific range (e.g., A5:C5 for row 5)
Avoid : Deleting and recreating entire structures
Why: Preserves formatting, formulas, and references.
Rule 9: Follow suggestedNextActions
Error responses include actionable hints:
Tool Selection Quick Reference
Task Tool Key Action
Create/open/save workbooks file open, create, close
Write/read cell data range set values, get values
Format cells range set number format
Create tables from data table create
Add table to Power Pivot table add to data model
Create DAX formulas datamodel create measure
Create PivotTables pivottable create, create from datamodel
Filter with slicers slicer set slicer selection
Create charts chart create from range
Run what if analysis analysis goal seek, create scenario, create data table
Control calculation mode calculation mode get mode, set mode, calculate
Visual verification screenshot capture, capture sheet
Reference Documentation
See references/ for detailed guidance:
[What if analysis and Solver limits](./references/analysis.md)
[Core execution rules and LLM guidelines](./references/behavioral rules.md)
[Common mistakes to avoid](./references/anti patterns.md)
[Bulk write performance optimization](./references/calculation.md)
[Data Model constraints and patterns](./references/workflows.md)
[Charts and formatting](./references/chart.md)
[Conditional formatting operations](./references/conditionalformat.md)
[Dashboard and report best practices](./references/dashboard.md)
[Data Model/DAX specifics](./references/datamodel.md)
[DMV query reference for Data Model analysis](./references/dmv reference.md)
[Excel agent mode and advanced automation](./references/excel agent mode.md)
[Gotchas and known limits](./references/gotchas.md)
[Power Query M code syntax reference](./references/m code syntax.md)
[PivotTable operations](./references/pivottable.md)
[Power Query specifics](./references/powerquery.md)
[Range operations and number formats](./references/range.md)
[Screenshot and visual verification](./references/screenshot.md)
[Slicer operations](./references/slicer.md)
[Table operations](./references/table.md)
[Window and visibility operations](./references/window.md)
[Worksheet operations](./references/worksheet.md)