About this project
Excel MCP Server is a Model Context Protocol server that gives AI assistants the ability to create, read and edit Excel workbooks. It does not require a Microsoft Excel installation. It works with .xlsx, .xlsm (macros preserved), .xltx and .xltm files.
Capabilities
- Read and write cells, formulas and dates, with paging for large sheets and cell search.
- Format fonts, fills, borders, number formats, column widths and frozen panes.
- Manage structure: sheets, rows and columns, merged cells, tables, charts and summary tables.
- Apply rules: conditional formatting and data validation such as dropdowns and number limits.
- Read VBA code in .xlsm files module by module (read-only, never executed).
Safety features
- Optional folder confinement via --allow-dir or EXCEL_FILES_PATH; relative paths resolve inside allowed folders.
- Formula safety check rejects functions that reach the network, other programs or host information (for example WEBSERVICE, HYPERLINK, IMAGE, RTD, CALL, INFO, INDIRECT), DDE links and external workbook references.
- Read-only mode, a maximum file size (default 100 MB), a 100,000-cell limit per call, and atomic saves.
- HTTP mode listens on localhost by default; remote access requires a bearer token and a TLS-terminating reverse proxy is recommended.
Setup
Clients typically run the server with uvx excel-mcp-server stdio, optionally with --allow-dir. Documented integrations include Claude Desktop (including an .mcpb bundle), Claude Code, Cursor, VS Code with GitHub Copilot, OpenAI Codex, Gemini CLI and Devin Desktop. A Streamable HTTP mode is available, with Docker support.
Tool areas include workbooks (create, describe, list, export, import), sheets (describe, create, rename, copy, delete, insert/delete rows or columns), cells (read_range, write_range, clear_range, copy_range, find_cells), formatting (format_range, merge_cells, set_sheet_layout, add_conditional_format, add_data_validation), objects (create_table, create_chart, create_summary_table) and macros (read_vba).
Limitations
- Formulas are stored, not calculated; values mode returns results Excel last saved, so newly written formulas read as empty until opened and saved in Excel or LibreOffice.
- Legacy .xls and .csv files are not supported.
- create_summary_table writes a static summary; real PivotTables are not created.
- Inserting or deleting rows and columns does not update formulas, charts or tables referring to moved cells.
- Features openpyxl does not understand, such as shapes, slicers and some embedded objects, may be lost on edit; pictures, charts, tables and macros in .xlsm files are kept.
Version 1.0 renamed and redesigned tools, removed the SSE transport and requires Python 3.11 or newer. Licensed under MIT.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.