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.