Install Excel MCP Server¶
Installation instructions for the ExcelMcp MCP Server — the entry point for AI assistants like GitHub Copilot, Claude Desktop, Cursor, and any other MCP client. Looking for the CLI instead? See the CLI Installation Guide.
System Requirements¶
Required¶
- Windows OS (Windows 10 or later)
- Microsoft Excel 2016 or later (Desktop version - Office 365, Professional Plus, or Standalone)
- An interactive Windows desktop with Excel available to the signed-in user
| Installation method | Additional requirements |
|---|---|
| VS Code extension | VS Code with GitHub Copilot; no separate Node.js or .NET |
| Claude Desktop MCPB | Claude Desktop and Node.js 18+ with npm/npx available on PATH; no separate .NET |
| npm / Copilot plugin | Node.js 18+ with npm/npx; no separate .NET |
| Standalone ZIP | No Node.js or .NET |
| NuGet tool | .NET 10 Runtime or SDK |
npm-based launches need network access to download packages and check for updates. They use normal npm resolution and caching, not a guaranteed online check on every launch. Install the current Node.js LTS for npm or MCPB setup: winget install OpenJS.NodeJS.LTS.
Windows Architecture¶
The VS Code extension bundles a server matching its package: x64 for Windows x64 VS Code and native ARM64 for Windows ARM64 VS Code. No separate Node.js installation is needed.
With npm, including the npx-based Claude Desktop MCPB, ARM64 Node.js selects the native ARM64 server; x64 Node.js selects the x64 server, including on ARM64 Windows. Standalone ZIP downloads currently bundle the x64 server.
Optional (for specific features)¶
- Microsoft Analysis Services OLE DB Provider (MSOLAP) - Required for DAX query execution (
evaluate,execute-dmvactions) - Easiest: Install Power BI Desktop (includes MSOLAP)
- Alternative: Microsoft OLE DB Driver for Analysis Services
Quick Start (Recommended)¶
Use this order to avoid setup confusion:
- Choose one primary setup path:
- VS Code Extension (GitHub Copilot users) — bundles the server and Excel skill
- Claude Desktop MCPB — one-click MCP installation
- GitHub Copilot Plugin (Copilot CLI users) — marketplace installation
- npm package (other MCP clients) — runs the self-contained server through
npx - Manual MCP setup (other MCP clients like Cursor, Windsurf)
- Validate MCP setup (run the quick test prompt in Step 4 of manual setup, or test in your client after extension/MCPB/plugin install)
- Optional: also install the CLI (
excelcli) for scripting/RPA
VS Code Extension (Easiest - One-Click Setup)¶
- Install the Extension
- Open VS Code
- Press
Ctrl+Shift+X(Extensions) - Search for "ExcelMcp"
-
Click Install
-
Open Copilot Chat
-
Use a chat that supports tools.
-
Ask Copilot to work with Excel
- Use a workbook path available on your Windows desktop.
- Try: "Create an empty Excel file called test.xlsx."
- With VS Code's default settings, the bundled excel-mcp server starts automatically when your request needs Excel tools. Approve server or tool use if prompted.
- Copilot can load
excel-mcp-report-formattingfor requested report presentation. Type/skillsto open VS Code's Configure Skills menu.
The extension includes a self-contained MCP server and its optional formatting skill. No separate .NET, Node.js, CLI, or skill installation is needed. The CLI is not included; install it separately if needed. Installing the extension does not start an Excel workbook or approve server access for you.
Marketplace Link: Excel MCP VS Code Extension
Claude Desktop (One-Click Install)¶
Best for: Claude Desktop users who want the simplest installation
Install Node.js LTS first (winget install OpenJS.NodeJS.LTS) if npx is not already available. Restart Claude Desktop after changing PATH.
- Download
excel-mcp-{version}.mcpbfrom the latest release - Double-click the
.mcpbfile (or drag-and-drop onto Claude Desktop) - Restart Claude Desktop
The bundle configures Claude to run npx -y @sbroenne/mcp-server-excel@latest directly. It contains no custom launcher, npm installation, or fixed server executable. No separate .NET installation is needed. The first launch downloads the Windows server; later launches resolve @latest using npm's cache policy. Claude's built-in Node.js does not guarantee that the external npx command is available.
Already installed an older, binary MCPB? Install the new npx-based bundle once. Restarting an older bundle does not replace its fixed server executable. The bundle itself still needs manual replacement for configuration changes; fetching a newer npm server does not update the installed .mcpb.
GitHub Copilot Plugin¶
Best for: GitHub Copilot CLI users who want plugin marketplace installation
The plugin is listed in Awesome Copilot, the default marketplace in current Copilot clients:
Alternatively, install from our direct marketplace:
## Register our direct marketplace (one-time)
copilot plugin marketplace add sbroenne/mcp-server-excel-plugins
## Install the MCP Server plugin
copilot plugin install excel-mcp@mcp-server-excel-plugins
Choose one marketplace for excel-mcp; do not install both copies. Existing direct-marketplace installations do not need to move.
Note: Plugin updates are published only when distributed plugin content changes. The plugin version can lag the product release; its npx launcher uses the latest npm runtime.
Manual MCP Setup (All MCP Clients)¶
Best for: Other MCP clients (Cursor, Windsurf, Cline, Claude Code, Codex), advanced users
Step 1: Choose npm or the Standalone Executable¶
Option A: npm (Recommended)¶
Run the self-contained server directly through npm:
The npm package includes the Windows server, so it does not require .NET or a separate download from GitHub Releases. npm caches the package after the first run. @latest selects the release marked latest when starting the server; it does not replace an already running server.
Windows x64 and ARM64 are supported. ARM64 Node.js selects @sbroenne/mcp-server-excel-win32-arm64; x64 Node.js selects @sbroenne/mcp-server-excel-win32-x64, including through emulation on ARM64 Windows. Keep optional dependencies enabled; do not use --omit=optional. If the matching runtime is missing, the launcher reports an error rather than falling back to another architecture.
Option B: Standalone Executable¶
- Go to the latest release
- Download
ExcelMcp-MCP-Server-{version}-windows.zip - Extract the ZIP to a permanent location (e.g.,
C:\Tools\ExcelMcp\)
## Example extraction
Expand-Archive "ExcelMcp-MCP-Server-1.x.x-windows.zip" -DestinationPath "C:\Tools\ExcelMcp"
The ZIP contains mcp-excel.exe — a fully self-contained executable (no .NET runtime needed).
Step 2: Add the Standalone Executable to PATH¶
Skip this step when using npm.
To use mcp-excel as a command without specifying the full path:
## Add to user PATH (persistent)
$toolsDir = "C:\Tools\ExcelMcp"
$userPath = [Environment]::GetEnvironmentVariable("PATH", "User")
if ($userPath -notlike "*$toolsDir*") {
[Environment]::SetEnvironmentVariable("PATH", "$userPath;$toolsDir", "User")
Write-Host "Added $toolsDir to user PATH. Restart your terminal to apply."
}
Or manually: Settings → System → About → Advanced system settings → Environment Variables → User variables → Path → Edit → New → add C:\Tools\ExcelMcp
Step 3: Configure Your MCP Client¶
Option A: Auto-Configure All Agents (Recommended)¶
Use add-mcp to configure all detected coding agents with a single command:
This auto-detects and configures Cursor, VS Code, Claude Code, Claude Desktop, Codex, Zed, Gemini CLI, and more. Use flags to customize:
## Configure specific agents only
npx add-mcp "npx -y @sbroenne/mcp-server-excel@latest" --name excel-mcp -a cursor -a claude-code
## Configure globally (user-wide, all projects)
npx add-mcp "npx -y @sbroenne/mcp-server-excel@latest" --name excel-mcp -g
## Non-interactive (skip prompts)
npx add-mcp "npx -y @sbroenne/mcp-server-excel@latest" --name excel-mcp --all -y
Requires: Node.js for
npx. Install withwinget install OpenJS.NodeJS.LTSif not already available. No permanentadd-mcpinstallation is needed.Standalone alternative: Use
npx add-mcp "C:\Tools\ExcelMcp\mcp-excel.exe" --name excel-mcpafter extracting the ZIP.
Option B: Manual Configuration¶
Quick Start: Ready-to-use config files for all clients are available in examples/mcp-configs/
For GitHub Copilot (VS Code):
Create .vscode/mcp.json in your workspace:
{
"servers": {
"excel-mcp": {
"command": "npx",
"args": ["-y", "@sbroenne/mcp-server-excel@latest"]
}
}
}
For the standalone executable, replace
commandwithmcp-exceland omitargs.
For GitHub Copilot (Visual Studio):
Create .mcp.json in your solution directory or %USERPROFILE%\.mcp.json:
{
"servers": {
"excel-mcp": {
"command": "npx",
"args": ["-y", "@sbroenne/mcp-server-excel@latest"]
}
}
}
For Claude Desktop:
- Locate config file:
%APPDATA%\Claude\claude_desktop_config.json - If file doesn't exist, create it with the content below
- If file exists, merge the
excel-mcpentry into your existingmcpServerssection
{
"mcpServers": {
"excel-mcp": {
"command": "npx",
"args": ["-y", "@sbroenne/mcp-server-excel@latest"],
"env": {}
}
}
}
- Save and restart Claude Desktop
For Cursor:
- Open Cursor Settings (Ctrl+,)
- Search for "MCP" in settings
- Open its MCP configuration, or create
%USERPROFILE%\.cursor\mcp.jsonfor all projects (.cursor\mcp.jsonfor one project) - Add this configuration:
{
"mcpServers": {
"excel-mcp": {
"command": "npx",
"args": ["-y", "@sbroenne/mcp-server-excel@latest"],
"env": {}
}
}
}
- Save and restart Cursor
For Cline (VS Code Extension):
- Install Cline extension in VS Code
- Open Cline panel and click the MCP settings gear icon
- Add this configuration:
{
"mcpServers": {
"excel-mcp": {
"command": "npx",
"args": ["-y", "@sbroenne/mcp-server-excel@latest"],
"env": {}
}
}
}
- Save and restart VS Code
For Windsurf:
- Open Windsurf Settings
- Use Open MCP config file in the client's MCP settings
- Add this configuration:
{
"mcpServers": {
"excel-mcp": {
"command": "npx",
"args": ["-y", "@sbroenne/mcp-server-excel@latest"],
"env": {}
}
}
}
- Save and restart Windsurf
Step 4: Validate MCP Setup¶
Restart your MCP client, then ask:
If it works, you're all set! 🎉
💡 Tip: Want to watch the AI work? Ask:
This opens Excel visibly so you can see every change in real-time - great for debugging and demos!Alternative: NuGet .NET Tool Installation (Secondary)¶
For users who prefer package managers or already have .NET installed
NuGet is a secondary distribution channel. It requires the .NET 10 Runtime or SDK to be installed.
After installation, configure your MCP client with "command": "mcp-excel" (same as standalone exe).
Update via NuGet:
Uninstall:
Why NuGet is secondary: The recommended npm package and the standalone exe require no .NET runtime. NuGet remains available for users who already have .NET installed in their workflow.
Updating the MCP Server¶
Check Current Version¶
Update to New Version¶
Before restarting or updating, finish the current work and explicitly save and close the intended workbook sessions. Do not interrupt a refresh or calculation.
| Installation | How to update |
|---|---|
| npm / Copilot plugin | Restart the MCP server/client; @latest resolves the server using normal npm caching |
| Claude Desktop MCPB | Restart the server to resolve the npm server; install a new .mcpb manually when its configuration changes |
| VS Code extension | Update the extension through VS Code, then restart its bundled server |
| Standalone ZIP | Replace the extracted executable with the new release, then restart the client |
| NuGet | Run dotnet tool update --global Sbroenne.ExcelMcp.McpServer, then restart the client |
The npm version command above checks the npm-launched executable, not an existing server launched by a different installation. A restart does not upgrade an older binary MCPB or a standalone executable.
Standalone exe:
- Go to the latest release
- Download the new ZIP:
ExcelMcp-MCP-Server-{version}-windows.zip - Extract and overwrite the existing files in your installation directory
## Example update
Expand-Archive "ExcelMcp-MCP-Server-1.x.x-windows.zip" -DestinationPath "C:\Tools\ExcelMcp" -Force
- Restart your MCP client (VS Code, Claude Desktop, Cursor, etc.)
NuGet (secondary):
Check What's New¶
Before updating, check the changelog or GitHub Releases.
Troubleshooting¶
1. "mcp-excel is not recognized as an internal or external command"¶
This error applies to the standalone executable. Either use the recommended npm configuration or add mcp-excel.exe to your PATH.
Either: - Add the directory containing mcp-excel.exe to your PATH (see Step 2 above) - Or use the full path in your MCP client config: "command": "C:\\Tools\\ExcelMcp\\mcp-excel.exe"
2. MCP Server Not Responding¶
Check if the exe exists:
Verify it runs:
3. "Workbook is locked" or "Cannot open file"¶
Solution: Close all Excel windows before running ExcelMcp
ExcelMcp requires exclusive access to workbooks (Excel COM limitation).
4. MCP Server Still Running Old Version¶
Solution: Check the update steps for your installation method first, then fully restart your MCP client. @latest is resolved at launch; a running process does not change versions. - Close VS Code completely (including terminal windows) - Close Claude Desktop completely - Reopen the application
5. Session ID Missing Through a Client Bridge¶
MCP tool requests use workbook_session_id for workbook-session inputs. This is a workaround for a Claude Desktop bridge issue that can drop MCP inputs named session_id. Put it directly in the arguments object of tools/call, alongside action:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "workbook_read",
"arguments": {
"action": "get-info",
"workbook_session_id": "<ID returned by this server>"
}
}
}
file open/create results, file_read list entries, and session error context also use workbook_session_id. Pass the selected entry's value directly as workbook_session_id. The old MCP name session_id is not accepted. Never guess an ID or pick another workbook just because only one is listed. CLI JSON continues to use sessionId; CLI and MCP sessions are separate.
Use this workflow: call file_read with action list and match the intended workbook; reuse its session or open/create; operate; call file_read with action list and check that session's canClose; close only when authorized with an explicit save: true or save: false. No-save close discards all unsaved edits, including earlier work, and has no tool-level undo.
Calls within one session execute serially, but concurrently submitted requests have no guaranteed dependency order, and responses can arrive out of order. Wait for each dependent call before starting the next. Different sessions can run independently. A canClose: true result is a snapshot; do not submit new work while closing.
If direct local calls work but Cowork or a remote-devices bridge fails, compare the request received by the server with the request before the bridge. A client display saying the ID was supplied does not establish what reached the server. Check the key name, its location, and whether its value is a non-empty string. Missing-session diagnostics cannot restore an argument dropped completely by a client. See #850 and #854.
Use only a disposable workbook for diagnosis. Do not publish raw logs or real session IDs, workbook paths, cell contents, or credentials. Share a sanitized request shape with values replaced, the versions, and whether direct calls work. MCP and CLI sessions are separate: the CLI cannot close an MCP-owned session. Avoid opening more sessions while the bridge cannot forward follow-up calls.
Uninstallation¶
Remove the server entry from your client's configuration as well.
| Installation | How to remove |
|---|---|
| Claude Desktop MCPB | Remove Excel from Claude's Settings > Extensions |
| VS Code extension | Uninstall ExcelMcp through VS Code Extensions |
| Copilot plugin | copilot plugin uninstall excel-mcp@awesome-copilot; use excel-mcp@mcp-server-excel-plugins instead if installed from the direct marketplace |
| npm through npx | Remove the client configuration; no global installation to uninstall |
| Standalone ZIP / NuGet | Use the commands below |
## npm: no global installation to remove
## Standalone exe: simply delete the extracted files
Remove-Item "C:\Tools\ExcelMcp\mcp-excel.exe" -Force
## Remove from PATH if you added it
## Settings → System → About → Advanced system settings → Environment Variables
## Edit PATH and remove the ExcelMcp directory
## NuGet (if installed via dotnet tool):
dotnet tool uninstall --global Sbroenne.ExcelMcp.McpServer
Getting Help¶
- Troubleshooting: Troubleshooting · FAQ
- Documentation: GitHub Repository
- Issues: GitHub Issues
- Contributing: Contributing Guide
Next Steps¶
After installation:
- Learn the basics: Try simple commands like creating worksheets, setting values
- Explore features: See the feature overview for capabilities; the MCP tool descriptions provide current actions and inputs.
- Read the guides:
- CLI Installation Guide - for scripting, RPA, and CI/CD
- Agent Skills - cross-platform AI guidance
- Join the community: Star the repo, report issues, contribute improvements
Happy automating! 🚀