Excel MCP Server: Let AI Agents Read and Edit Spreadsheets

โฑ๏ธ 3 min read ๐Ÿ”Œ MCP Server

What it is: A community-maintained MCP server that lets AI agents create, read, and edit .xlsx workbooks directly โ€” cell data, formulas, formatting, charts, and pivot tables โ€” by manipulating the files themselves, with no Microsoft Excel installation required.

Quick answer: There is no official Excel MCP server from Microsoft; the popular options are community projects. The most widely used is haris-musa/excel-mcp-server (Python, run with uvx excel-mcp-server stdio), which gives agents full read/write access to .xlsx files โ€” data, formulas, formatting, charts โ€” without Excel installed. A Node alternative, negokaz/excel-mcp-server, focuses on efficient paginated reading and writing of large sheets.

Why it matters for data work

Half of every data team's inputs still arrive as spreadsheets. An Excel MCP server means the agent can open the workbook itself โ€” check what's on each sheet, fix the broken formula, add the summary tab โ€” instead of you exporting to CSV, losing the formulas, and rebuilding the formatting afterwards.

Which Excel MCP server should you use?

Both leading options are community-maintained, so weigh activity and fit rather than assuming an official standard. haris-musa/excel-mcp-server (Python, MIT, built on openpyxl) is the fuller toolbox: workbook and sheet management, ranged reads/writes, formula application and validation, formatting, charts, pivot tables, and stdio/SSE/HTTP transports. negokaz/excel-mcp-server (Node, MIT) is lighter and shines at big files โ€” paginated reads so huge sheets don't blow the context window, plus formula and formatting support, and live-editing integration on Windows. Others exist on the MCP registries; check commit activity before adopting any of them.

How do you install it?

For the Python server, uvx handles everything:

# Claude Code
claude mcp add excel -- uvx excel-mcp-server stdio

# Claude Desktop / Cursor (claude_desktop_config.json or .cursor/mcp.json)
{
  "mcpServers": {
    "excel": {
      "command": "uvx",
      "args": ["excel-mcp-server", "stdio"]
    }
  }
}

For the Node alternative:

{
  "mcpServers": {
    "excel": {
      "command": "npx",
      "args": ["--yes", "@negokaz/excel-mcp-server"],
      "env": { "EXCEL_MCP_PAGING_CELLS_LIMIT": "4000" }
    }
  }
}

Restart the client afterwards โ€” Claude Desktop and Cursor load MCP config at launch.

Can it write formulas and formatting, not just values?

Yes. These servers write real Excel constructs into the file: =SUMIFS(...) stays a live formula that recalculates when the workbook opens, and tools cover number formats, fonts, fills, borders, merged cells, and conditional-formatting-friendly structures. That's the practical difference from asking an agent to emit CSV โ€” the output remains a working spreadsheet. If the agent is building a report tab, it can lay down headers, formulas, and formatting in one pass, including structures like pivot tables.

Does it need Excel installed?

No. The Python server manipulates the .xlsx file format directly via openpyxl, so it runs the same on Linux servers, Macs without Office, and CI containers. The trade-off: it edits files, not live applications โ€” a workbook open in Excel keeps a lock (on Windows) and won't show agent edits until reopened. The negokaz server is the partial exception, offering live editing of open workbooks on Windows through Excel itself.

Troubleshooting

Common issues: (1) "File not found" โ€” MCP servers resolve relative paths against their own working directory, so always give the agent absolute paths. (2) Changes not visible โ€” the workbook was open in Excel; close and reopen it. (3) Formulas showing as text โ€” ensure the formula tool was used rather than writing a string value. (4) Huge sheets stalling the conversation โ€” read specific ranges, or use the paginated Node server. (5) .xls files failing โ€” these servers target the modern .xlsx format; convert legacy files first.

Author & links

Author: Haris Musa (community); Node alternative by negokaz (community)

Repo: github.com/haris-musa/excel-mcp-server ยท github.com/negokaz/excel-mcp-server

License: MIT (both)

Related skills

If the spreadsheet is really just a data table, loading it into the SQLite MCP server gives the agent proper SQL instead of cell juggling. And for the Excel-side fundamentals agents are automating, see our guides to pivot tables and Power Query basics.

โ† Back to MCP Servers