Excel
listing.by
Create, read and edit Excel workbooks, including formulas, tables and charts, without Microsoft Excel installed.
listing.install
listing.local.explain
listing.local.needs listing.local.note
listing.share.h
listing.share.p_local
mcp.tc/i/excellisting.about
Works with .xlsx, .xlsm, .xltx and .xltm files through openpyxl. You can read and write cells, formulas and dates, format ranges, manage sheets, rows and columns, add tables, charts, conditional formats and data validation, write static summary tables, and read VBA macro code (never run). Formulas are stored, not calculated, and real PivotTables cannot be created.
Runs locally over stdio with uvx: uvx excel-mcp-server stdio --allow-dir /path/to/workbooks. No sign-in or API key is needed. Access is limited to the folder you allow, formulas that reach the network or other programs are rejected, and a read-only mode is available. A Streamable HTTP mode and a Docker image also exist.
listing.can
- Create workbooks and list or describe sheets
- Read, write, copy, clear and search cell ranges
- Format fonts, fills, borders and number formats
- Add tables, charts and static summary tables
- Set conditional formatting and dropdown data validation
- Insert, delete, rename and copy sheets, rows and columns
- Read VBA macro code in .xlsm files
listing.tools 26
create_workbookCreate a new, empty Excel workbook.
describe_workbookList a workbook's sheets with used ranges and defined names.
list_workbooksList Excel files in a directory.
export_workbookReturn the workbook file as an embedded base64 resource.
import_workbookSave an uploaded workbook file on the server.
describe_sheetDescribe a sheet's used range, panes, merges, tables, charts, validation and formats.
create_sheetAdd an empty worksheet.
rename_sheetRename a worksheet; formulas using the old name are not updated.
copy_sheetDuplicate a worksheet within the workbook.
delete_sheetDelete a worksheet and everything on it.
insert_rows_or_columnsInsert empty rows or columns before a position.
delete_rows_or_columnsDelete rows or columns starting at a position.
listing.tools_more
read_rangeRead cell values as rows; dates come back as ISO 8601 strings.
write_rangeWrite values into cells, overwriting existing content.
clear_rangeClear values and/or formatting of a range without shifting cells.
copy_rangeCopy values and formatting to another place.
find_cellsFind cells whose value contains or equals a query.
format_rangeChange fonts, fill, borders, alignment or number format of a range.
merge_cellsMerge a range into one cell, or split a merged range.
set_sheet_layoutSet column widths, row heights, frozen panes, auto filter and tab color.
add_conditional_formatAdd a conditional format rule to a range.
add_data_validationRestrict what can be entered in a range, such as a dropdown list.
create_tableTurn a range with a header row into an Excel table.
create_chartAdd a chart that plots a block of data.
create_summary_tableGroup rows and aggregate columns, writing a static pivot-style result.
read_vbaShow VBA macro code in an .xlsm or .xltm workbook, module by module.
listing.prov.mcpb_on
listing.prompts
Create a budget.xlsx workbook with a sheet for each month
Read A1:F50 from the Sales sheet in q1.xlsx and summarize it
Add a bar chart of revenue by region to the Summary sheet
Add a dropdown list for Status in column D of the Tasks sheet
listing.setup.h
listing.setup.local
Claude Code
- Run this in a terminal, in your project folder:
claude mcp add --transport stdio excel -- uvx excel-mcp-server stdio --allow-dir /path/to/workbooks- Start Claude Code and type
/mcp. excel should show as connected.
Add --scope user to make it available in every project.
Claude Desktop
- Open Settings → Developer → Edit Config. It opens
claude_desktop_config.json. Add:
{
"mcpServers": {
"excel": {
"command": "uvx",
"args": [
"excel-mcp-server",
"stdio",
"--allow-dir",
"/path/to/workbooks"
]
}
}
}- Save the file and restart Claude Desktop.
Needs uv (Python) on your computer. The file lives in ~/Library/Application Support/Claude/ on macOS and %APPDATA%\Claude\ on Windows.
Cursor
Or add it by hand to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (this project):
{
"mcpServers": {
"excel": {
"command": "uvx",
"args": [
"excel-mcp-server",
"stdio",
"--allow-dir",
"/path/to/workbooks"
]
}
}
}Needs uv (Python) on your computer.
VS Code
Install in VS Code a11y.new_tab
Or from a terminal:
code --add-mcp '{"name":"excel","type":"stdio","command":"uvx","args":["excel-mcp-server","stdio","--allow-dir","/path/to/workbooks"]}'Or commit it to the repo in .vscode/mcp.json:
{
"servers": {
"excel": {
"type": "stdio",
"command": "uvx",
"args": [
"excel-mcp-server",
"stdio",
"--allow-dir",
"/path/to/workbooks"
]
}
}
}Needs uv (Python) on your computer.
Devin Desktop
- Add it to
~/.config/devin/mcp_config.json(macOS and Linux) or%APPDATA%\devin\mcp_config.json(Windows):
{
"mcpServers": {
"excel": {
"command": "uvx",
"args": [
"excel-mcp-server",
"stdio",
"--allow-dir",
"/path/to/workbooks"
]
}
}
}- Refresh the MCP server list in Cascade.
Devin Desktop is the new name for Windsurf.
Codex
codex mcp add excel -- uvx excel-mcp-server stdio --allow-dir /path/to/workbooksOr edit ~/.codex/config.toml directly:
[mcp_servers.excel]
command = "uvx"
args = ["excel-mcp-server", "stdio", "--allow-dir", "/path/to/workbooks"]Needs uv (Python) on your computer.
Gemini CLI
gemini mcp add excel uvx -- excel-mcp-server stdio --allow-dir /path/to/workbooksThis adds it to the current project. Add -s user to use it everywhere.
Any client
Most clients that start local servers accept this shape:
{
"mcpServers": {
"excel": {
"command": "uvx",
"args": [
"excel-mcp-server",
"stdio",
"--allow-dir",
"/path/to/workbooks"
]
}
}
}Zed puts servers under context_servers in its settings, with the same command, args and env fields.
Needs uv (Python) on your computer.
listing.faq
Can I paste mcp.tc/i/excel into my MCP client?
No. Excel runs on your own computer, started by your client, so it has no web address to connect to. The quick link is the page to share; the install command is uvx excel-mcp-server stdio --allow-dir /path/to/workbooks.
Does Excel need an API key?
No. It doesn't declare any keys or environment variables. It runs with your user account's permissions, so check what its tools can reach.
Is Excel a remote or a local server?
Local. Your client starts it as a process on your computer with uvx excel-mcp-server stdio --allow-dir /path/to/workbooks, which needs uv (Python).
What can Excel do?
It has 26 tools, including create_workbook, describe_workbook and list_workbooks. You can create workbooks and list or describe sheets, read, write, copy, clear and search cell ranges and format fonts, fills, borders and number formats.
Which clients can use it?
Any client that starts local servers: Claude Code, Claude Desktop, Cursor, VS Code, Devin Desktop, Codex, Gemini CLI, Zed and others. claude.ai and ChatGPT only connect to remote servers.
Who wrote this page?
mcp.tc's robot read Excel's public metadata (its package and repository pages), and an AI model drafted the text from it. A person reviews anything the checks can't confirm. The text can still be wrong, so if you spot a mistake, use Report this listing on this page.
listing.em.h
listing.em.lead_local listing.em.how
listing.em.badge
[](https://mcp.tc/i/excel)<a href="https://mcp.tc/i/excel"><img src="https://mcp.tc/i/excel/badge.svg" alt="Excel on mcp.tc" height="20"></a>listing.em.badge_note
listing.em.widget
<script src="https://mcp.tc/w/excel.js" async></script>listing.em.widget_note
iframe
<iframe src="https://mcp.tc/embed/excel" title="Excel on mcp.tc" width="420" height="200" loading="lazy" allow="clipboard-write" style="border:0;border-radius:8px;max-width:100%"></iframe>listing.em.iframe_note
listing.disclaimer_checked