Prepare the server locally
Run this once before adding it to Claude Code.
git clone https://github.com/kousunh/excel-mcp-server.git
cd excel-mcp-server
npm install
pip install -r scripts/requirements.txtRegister it in Claude Code
claude mcp add excel-mcp -- node /path/to/excel-mcp-server/src/index.jsReplace any placeholder paths in the command with the real path on your machine.
Make your agent remember this setup
excel-mcp's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.
npx conare@latestFree · one command · indexes the sessions already on disk. Set up in the browser instead →
What it does
- Operates on open Excel workbooks in real-time via xlwings.
- Edits closed .xlsx files directly without requiring Excel to be installed.
- Preserves images, charts, and all embedded content in .xlsx files.
- Supports VBA code execution for advanced automation.
- Cross-platform support for Windows, macOS, and Linux (path mode).
Tools 5
get_excel_infoRetrieves information about the current Excel environment.read_cellsReads data from a specified range in an Excel file or workbook.write_cellsWrites values to a specified range in an Excel file or workbook.format_cellsApplies formatting to a specified range of cells.execute_vbaExecutes VBA code within an open Excel workbook.Environment Variables
EXCEL_MCP_PYTHONPath to the specific Python executable to use.Try it
Original README from kousunh/Excel-mcp-server
Excel MCP Server
A cross-platform MCP server for reading, writing, and formatting Excel files. Works with both open Excel workbooks (live) and closed .xlsx files (no Excel needed).
Two Modes
workbook— Operate on an open Excel workbook in real-time via xlwingspath— Edit closed .xlsx files directly using pure Python (preserves images, charts, and all embedded content)
Tools
| Tool | workbook | path | Required |
|---|---|---|---|
get_excel_info |
- | - | (none) |
read_cells |
OK | OK | range |
write_cells |
OK | OK | range, value |
format_cells |
OK | OK | range, format |
execute_vba |
OK | - | workbook, code |
Requirements
- Node.js 18+
- Python 3.8+
- xlwings (for live Excel mode —
pip install xlwings) - Microsoft Excel (only needed for
workbookmode andexecute_vba)
Works on Windows and macOS. The path mode also works on Linux.
Installation
git clone https://github.com/kousunh/excel-mcp-server.git
cd excel-mcp-server
npm install
pip install -r scripts/requirements.txt
Configure MCP Client
Add to your MCP client config (Claude Desktop, Cursor, etc.):
{
"mcpServers": {
"excel-mcp": {
"command": "node",
"args": ["/path/to/excel-mcp-server/src/index.js"]
}
}
}
To use a specific Python executable, set the EXCEL_MCP_PYTHON environment variable:
{
"mcpServers": {
"excel-mcp": {
"command": "node",
"args": ["/path/to/excel-mcp-server/src/index.js"],
"env": {
"EXCEL_MCP_PYTHON": "/path/to/python"
}
}
}
}
Usage
Closed files (path mode)
read_cells path="/data/report.xlsx" range="A1:D20" formats=true
write_cells path="/data/report.xlsx" range="A1:C3" value=[["Name","Age","City"],["Alice",30,"NYC"],["Bob",25,"LA"]]
format_cells path="/data/report.xlsx" range="A1:C1" format={"bold":true,"backgroundColor":"#4472C4","fontColor":"#FFFFFF"}
No Excel installation required. Images, charts, and shapes are preserved.
Open workbooks (workbook mode)
get_excel_info
read_cells workbook="Sales.xlsx" range="B2:F10"
write_cells workbook="Sales.xlsx" range="G2" value="=SUM(B2:F2)"
execute_vba workbook="Sales.xlsx" code="Range(\"A1:G10\").AutoFilter"
Requires Excel to be running with the workbook open.
License
MIT