
Excel MCP Server
Create, read, and modify Excel workbooks with your AI agent — no Microsoft Excel required.
Add to your client
Copy the config for your MCP client and paste it into its config file.
uvx excel-mcp-server stdioPaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"excel-mcp-server": {
"command": "uvx",
"args": [
"excel-mcp-server",
"stdio"
]
}
}
}Requires `uv` (the Python package runner). Install it from https://docs.astral.sh/uv/ if `uvx` is not found.
Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf
Before you start
- uv / uvx (to run via uvx excel-mcp-server)
- Python environment
- For SSE or Streamable HTTP transports: set EXCEL_FILES_PATH (defaults to ./excel_files); optionally set FASTMCP_PORT (default 8017)
About Excel MCP Server
Excel MCP Server is a Model Context Protocol server for Excel file manipulation that works without Microsoft Excel installed. It enables AI agents to create, read, and modify Excel workbooks — including data writes, formulas, formatting, charts, pivot tables, native Excel tables, data validation, and full worksheet/row/column management. It supports three transports: stdio for local use, SSE (deprecated), and streamable HTTP (recommended for remote connections).
Tools & capabilities (25)
create_workbookCreates a new Excel workbook at the given filepath.
create_worksheetCreates a new worksheet in an existing workbook.
get_workbook_metadataGet metadata about a workbook including sheets and ranges; optionally include range information.
write_data_to_excelWrite data (a list of dictionaries) to an Excel worksheet starting at a given cell.
read_data_from_excelRead data from an Excel worksheet over a cell range, with optional preview-only mode; includes validation metadata for cells when available.
format_rangeApply formatting to a range of cells: bold, italic, underline, font size/color, background color, borders, number format, alignment, wrap text, merge, protection, and conditional formatting.
merge_cellsMerge a range of cells.
unmerge_cellsUnmerge a previously merged range of cells.
get_merged_cellsGet the merged cell ranges in a worksheet.
apply_formulaApply an Excel formula to a target cell.
validate_formula_syntaxValidate Excel formula syntax without applying it.
create_chartCreate a chart in a worksheet (line, bar, pie, scatter, area) from a data range, with optional title and axis labels.
create_pivot_tableCreate a pivot table in a worksheet from a source data range, with row/column/value fields and an aggregation function (sum, count, average, max, min).
create_tableCreate a native Excel table from a specified range of data, with optional table name and visual style.
copy_worksheetCopy a worksheet within a workbook.
delete_worksheetDelete a worksheet from a workbook.
rename_worksheetRename a worksheet in a workbook.
copy_rangeCopy a range of cells to another location, optionally to a different target sheet.
delete_rangeDelete a range of cells and shift remaining cells up or left.
validate_excel_rangeValidate if a range exists and is properly formatted.
get_data_validation_infoGet data validation rules and metadata for a worksheet, including validation type, operator, allowed values, formula constraints, applicable ranges, and prompt/error messages.
insert_rowsInsert one or more rows starting at a specified row (1-based).
insert_columnsInsert one or more columns starting at a specified column (1-based).
delete_sheet_rowsDelete one or more rows starting at a specified row (1-based).
delete_sheet_columnsDelete one or more columns starting at a specified column (1-based).
What this server can do
Excel MCP Server provides tools for these capabilities — tap one to see every MCP server that does the same:
When to use it
- Generate Excel reports and workbooks programmatically from an AI agent without Microsoft Excel installed
- Read and extract data from existing spreadsheets for analysis
- Apply formatting, conditional formatting, and styling to cell ranges
- Build charts, pivot tables, and native Excel tables for data analysis
- Automate worksheet management — create, copy, rename, delete sheets and insert/delete rows and columns
- Run as a remote spreadsheet service over streamable HTTP for shared AI workflows
Security notes
When using SSE or Streamable HTTP transports, you must set the EXCEL_FILES_PATH environment variable on the server side (defaults to ./excel_files). With these transports, tool filepath values must be relative to that directory (e.g. reports/q1.xlsx); absolute paths and directory traversal are rejected. With stdio transport, the file path is provided with each tool call, so EXCEL_FILES_PATH is not needed.
Excel MCP Server FAQ
Do I need Microsoft Excel installed?
No. The server manipulates Excel files directly without requiring Microsoft Excel to be installed.
Which transports are supported?
Three: stdio (for local use), SSE (Server-Sent Events, deprecated), and streamable HTTP (recommended for remote connections).
How are file paths handled?
With stdio, the file path is sent with each tool call, so no server-side configuration is needed. With SSE or streamable HTTP, you must set EXCEL_FILES_PATH on the server (defaults to ./excel_files), and filepath values must be relative to that directory — absolute paths and directory traversal are rejected.
What port does the HTTP server use?
You can set the FASTMCP_PORT environment variable to control the listening port. The README notes the default is 8017.
Alternatives to Excel MCP Server
Compare all alternatives →Self-hosted MCP server for Jira and Confluence Cloud and Server/Data Center.
Official Notion server to read, search, create, and update pages and databases in your workspace.
Read, search, and edit your Obsidian vault through the Local REST API community plugin.