Complete installation instructions for the ExcelMcp MCP Server and CLI tool.
Best for: GitHub Copilot users, beginners, anyone wanting automatic configuration
Ctrl+Shift+X (Extensions)Marketplace Link: Excel MCP VS Code Extension
Best for: Claude Desktop users, other MCP clients, advanced users
Check if already installed:
dotnet --version
# Should show 8.0.x or higher
If not installed, choose one:
Option A: SDK (Recommended for developers)
winget install Microsoft.DotNet.SDK.8
Option B: Runtime Only (Smaller download)
winget install Microsoft.DotNet.Runtime.8
Manual Download: .NET 8 Downloads
# Install globally as a .NET tool
dotnet tool install --global Sbroenne.ExcelMcp.McpServer
# Verify installation
dotnet tool list --global | Select-String "ExcelMcp"
For GitHub Copilot (VS Code):
Create .vscode/mcp.json in your workspace:
{
"servers": {
"excel": {
"command": "dotnet",
"args": ["tool", "run", "mcp-excel"]
}
}
}
For GitHub Copilot (Visual Studio):
Create .mcp.json in your solution directory or %USERPROFILE%\.mcp.json:
{
"servers": {
"excel": {
"command": "dotnet",
"args": ["tool", "run", "mcp-excel"]
}
}
}
For Claude Desktop:
%APPDATA%\Claude\claude_desktop_config.jsonexcel entry into your existing mcpServers section{
"mcpServers": {
"excel": {
"command": "dotnet",
"args": ["tool", "run", "mcp-excel"],
"env": {}
}
}
}
For Cursor:
%APPDATA%\Cursor\User\globalStorage\mcp\mcp.json{
"mcpServers": {
"excel": {
"command": "dotnet",
"args": ["tool", "run", "mcp-excel"],
"env": {}
}
}
}
For Cline (VS Code Extension):
{
"mcpServers": {
"excel": {
"command": "dotnet",
"args": ["tool", "run", "mcp-excel"],
"env": {}
}
}
}
For Windsurf:
{
"mcpServers": {
"excel": {
"command": "dotnet",
"args": ["tool", "run", "mcp-excel"],
"env": {}
}
}
}
Quick Copy: Ready-to-use config files for all clients are available in examples/mcp-configs/
Restart your MCP client, then ask:
Create an empty Excel file called "test.xlsx"
If it works, you’re all set! 🎉
💡 Tip: Want to watch the AI work? Ask:
Show me Excel while you work on test.xlsx
This opens Excel visibly so you can see every change in real-time - great for debugging and demos!
Best for: Scripting, RPA, CI/CD pipelines, automation without AI
# Install CLI globally
dotnet tool install --global Sbroenne.ExcelMcp.CLI
# Verify installation
excel-mcp --version
# Create a test workbook
excel-mcp file-create --file "test.xlsx"
# List worksheets
excel-mcp sheet-list --file "test.xlsx"
CLI Documentation: CLI Guide
dotnet tool update --global Sbroenne.ExcelMcp.McpServer
dotnet tool update --global Sbroenne.ExcelMcp.CLI
Solution: Install .NET 8 SDK or Runtime (see Step 1 above)
Verify PATH includes .NET:
$env:PATH -split ';' | Select-String "dotnet"
Solution: Install Microsoft Excel Desktop (2016+)
Check Excel installation:
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\App` Paths\excel.exe
Check if tool is installed:
dotnet tool list --global | Select-String "ExcelMcp"
Reinstall if missing:
dotnet tool uninstall --global Sbroenne.ExcelMcp.McpServer
dotnet tool install --global Sbroenne.ExcelMcp.McpServer
Solution: Close all Excel windows before running ExcelMcp
ExcelMcp requires exclusive access to workbooks (Excel COM limitation).
Check configuration file exists:
# VS Code
Test-Path ".vscode/mcp.json"
# Visual Studio
Test-Path ".mcp.json"
Restart VS Code/Visual Studio after creating configuration.
Solution: Run with appropriate permissions
# Azure DevOps / GitHub Actions
# Ensure runner has Excel installed and user has Excel permissions
Using internal NuGet feed:
dotnet tool install --global Sbroenne.ExcelMcp.McpServer --add-source https://your-feed.com/v3/index.json
Offline installation:
# Download .nupkg file
dotnet tool install --global --add-source ./nupkg Sbroenne.ExcelMcp.McpServer
See Azure Self-Hosted Runner Setup for complete CI/CD integration guide.
Key requirements:
dotnet tool uninstall --global Sbroenne.ExcelMcp.McpServer
dotnet tool uninstall --global Sbroenne.ExcelMcp.CLI
# Remove MCP configuration
Remove-Item ".vscode/mcp.json" -ErrorAction SilentlyContinue
Remove-Item ".mcp.json" -ErrorAction SilentlyContinue
Remove-Item "$env:USERPROFILE\.mcp.json" -ErrorAction SilentlyContinue
After installation:
Happy automating! 🚀