Excel MCP Server

Interact with Microsoft Excel to read data, edit cells, execute VBA code, and manage worksheets.

日本語 README

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 xlwings
  • path — Edit closed .xlsx files directly using pure Python (preserves images, charts, and all embedded content)

Tools

ToolworkbookpathRequired
get_excel_info--(none)
read_cellsOKOKrange
write_cellsOKOKrange, value
format_cellsOKOKrange, format
execute_vbaOK-workbook, code

Requirements

  • Node.js 18+
  • Python 3.8+
  • xlwings (for live Excel mode — pip install xlwings)
  • Microsoft Excel (only needed for workbook mode and execute_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

Máy chủ liên quan

NotebookLM Web Importer

Nhập trang web và video YouTube vào NotebookLM chỉ với một cú nhấp. Được tin dùng bởi hơn 200.000 người dùng.

Cài đặt tiện ích Chrome