mcp-excel
mcp-excel
一个 Model Context Protocol 服务器,为 Claude Code(或任何 MCP 客户端)提供对 Excel 工作簿的完整读写访问:工作表、单元格区域、结构化表格、公式、格式以及跨工作簿引用。它使用 ExcelJS 读写磁盘上的真实 .xlsx 文件;无需安装 Excel、无需 Microsoft 账户,也无需云服务。
它作为 stdio 子进程在本地运行,或作为 HTTP/SSE 服务运行(方便通过 Docker 在局域网内与桌面客户端共享一个实例)。
状态: 11 个工具,stdio + SSE 传输,除 npm 外零外部依赖。许可证:MIT。
工具
工具 | 功能 |
| 列出工作簿中的所有工作表,并显示行/列计数 |
| 读取单元格区域;返回值、公式和类型 |
| 向特定单元格写入值或公式(如果文件/工作表不存在则创建) |
| 从起始单元格写入多行数据(批量构建数据集) |
| 创建带标题、数据和可选列公式的结构化 Excel 表格(ListObject) |
| 创建一个新的空工作簿,包含一个或多个命名工作表 |
| 向现有工作簿添加新工作表 |
| 从工作簿中删除工作表 |
| 对区域应用字体、填充、数字格式、对齐和边框 |
| 从一个工作簿读取数据,并将值(或链接公式)写入另一个工作簿 |
| 列出工作簿中的命名区域和表格名称 |
所有文件路径参数都通过 path.resolve() 相对于服务器的工作目录进行解析,因此绝对路径最安全。在 Docker(SSE)模式下,路径在容器内相对于挂载的 /data 卷解析(见下文)。
Related MCP server: mcp-xlsx-server
要求
设置:Claude Code(stdio,本地)
克隆并安装:
git clone https://bitbucket.org/corvalon/mcp-excel.git
cd mcp-excel
npm ci注册服务器。可以通过 CLI 添加:
claude mcp add excel -- node /absolute/path/to/mcp-excel/index.js或手动添加到你的 Claude Code 配置(~/.claude.json):
{
"mcpServers": {
"excel": {
"command": "node",
"args": ["/absolute/path/to/mcp-excel/index.js"]
}
}
}重启 Claude Code。工具将出现在 mcp__excel__* 前缀下。
设置:Claude Desktop(stdio,本地)
将相同的块添加到 Claude Desktop 的配置中(Settings > Developer > Edit Config,这会打开 claude_desktop_config.json):
{
"mcpServers": {
"excel": {
"command": "node",
"args": ["/absolute/path/to/mcp-excel/index.js"]
}
}
}保存并重启。当出现锤子/工具图标时,服务器已连接。
设置:Docker(SSE,共享实例)
运行一个容器,使网络上的任何 MCP 客户端都可以通过 SSE 访问它。这对于在没有 Node.js 的机器上驱动 Excel 文件非常有用。
将容器指向存放工作簿的文件夹并启动它:
MCP_EXCEL_DATA_DIR=/path/to/your/spreadsheets docker compose up -d --buildcompose 文件将该文件夹挂载为容器内的
/data,并监听端口3001。将 SSE 端点添加到你的客户端配置中(如果客户端在另一台机器上,请将主机替换为容器主机的局域网 IP):
{ "mcpServers": { "excel": { "url": "http://localhost:3001/sse" } } }由于路径在容器内解析,请相对于
/data挂载点来指定文件。如果MCP_EXCEL_DATA_DIR是~/spreadsheets,那么在工具调用中~/spreadsheets/2025/Budget.xlsx就是/data/2025/Budget.xlsx。
当不同主机上的客户端通过 SSE 连接时,请设置 MCP_ALLOWED_HOSTS,以便服务器接受请求。在 docker-compose.yml 旁边创建一个 .env 文件:
MCP_ALLOWED_HOSTS='localhost,127.0.0.1,::1,192.168.1.50,my-host.local'容器管理:
docker compose up -d --build # start / rebuild after code changes
docker compose down # stop
docker compose logs -f # tail logs健康检查可在 http://<host>:3001/health 使用。
配置
变量 | 默认值 | 用途 |
|
|
|
|
| SSE 模式的端口(Docker compose 文件使用 |
|
| SSE 模式的逗号分隔的 Host 头允许列表 |
|
| 在 Docker 容器中挂载为 |
安全
此服务器读写真实文件,并且在 SSE 模式下会打开网络端口。请将其视为受信任的本地工具,而不是面向互联网的服务。
文件访问。 工具调用可以读取或写入服务器进程能够访问的任何
.xlsx路径。在 stdio 模式下,这是你的整个文件系统;在 Docker(SSE)模式下,它仅限于挂载的/data卷,因此 Docker 是限制访问的更安全方式。SSE 没有身份验证。 HTTP/SSE 端点监听在
0.0.0.0上,并且不验证调用者身份。仅在受信任的局域网中运行,并通过MCP_ALLOWED_HOSTS(Host 头允许列表)以及你自己的防火墙来限制访问。不要将端口3001暴露到公共互联网。公式是数据,不是代码。 ExcelJS 写入公式字符串;它不执行宏或 VBA,因此打开生成的工作簿不会运行来自此服务器的任何代码。
示例提示
"创建一个新的预算工作簿,包含列 Category、Budget、Actual 和 Difference。"
"读取
Sales.xlsx中的数据,并按区域汇总总计。""在 Q1 工作表的 B 列底部添加一个 SUM 公式。"
"根据这些数据构建一个带总计行的格式化表格。"
"将
Budget.xlsx中的月度总计提取到Report.xlsx的 Summary 工作表中。"
注意事项和陷阱
权限。 一个通配符即可覆盖所有 11 个工具:允许 mcp__<key>__*,其中 <key> 是你注册服务器时使用的名称。如果注册为 excel,那就是 mcp__excel__*。你永远不需要单独枚举工具。
未知参数会被拒绝(自 1.1.0 起)。拼写错误的参数名会以 -32602 unrecognized_keys 失败,并指出该键,每个工具都发布 additionalProperties: false。早期版本会静默丢弃拼写错误并使用默认值运行,从而返回看似正确但实际错误的数据。
公式被存储,而不被计算。 此服务器写入公式文本;它不计算结果。读取公式单元格会返回 =SUM(A1:A2) (result: not calculated),直到文件在 Excel 或 LibreOffice 中打开并保存,才会填充缓存的结果。当你需要计算后的总计时,要么自己读取源单元格并求和,要么先将文件通过电子表格应用程序往返一次。
限制
目前没有任何工具支持:
在工作表中间插入或删除行/列
创建或编辑定义名称
区分表格和定义名称
对于这些需求,请直接使用电子表格库来操作文件。在 Python 中,openpyxl 可以覆盖以上三种情况;使用 load_workbook(path, data_only=False) 加载以保留公式,因为 data_only=True 会返回缓存值,而这些值可能因上述原因而为 None。
许可证
MIT (c) 2026 Corvalon.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Excel analytics: inspect, query (JSON rows), charts, and JSON-to-xlsx workbook writing.
Formula-backed WorkPaper tools for workbook readback, input edits, and JSON persistence.
GrapeCity Software MCP for GcExcel docs, examples, and product assistance.
Query, browse, and automate OmegaAI workspaces from any MCP client. Streamable HTTP with OAuth 2.0.
Related MCP Servers
- AlicenseCqualityCmaintenanceAutomates Microsoft Excel spreadsheet creation and editing via MCP tools for any MCP-compatible client.37MIT
- AlicenseAqualityDmaintenanceMCP server for reading and writing Excel (xlsx) files using SheetJS, providing tools to list sheets, read data, create files, add sheets, and update cells.516MIT
- FlicenseNot gradedqualityDmaintenanceFast, multi-sheet Excel retrieval and writing via MCP, supporting efficient data access with patch-based navigation and formula support.
- AlicenseAqualityDmaintenanceEnables reading and writing Excel workbooks (.xlsx) through MCP. Supports listing sheets, tables, pivot tables, reading cell data, exporting to CSV/text/Markdown, and creating/modifying Excel files.14GPL 3.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Corvalon/mcp-excel'
If you have feedback or need assistance with the MCP directory API, please join our Discord server