模型 / 数据集
haris-musa/excel-mcp-server avatar
haris-musa/excel-mcp-server

excel-mcp-server:让 AI 代理直接操作 Excel 文件的 MCP 服务

A Model Context Protocol server for Excel file manipulation

4,186 个 Star465 个 ForkPythonMIT

秒懂

它是什么?
excel-mcp-server 是一个基于 Python 的 Model Context Protocol 服务,允许 AI 代理创建、读取和修改 Excel 工作簿,而无需安装 Microsoft Excel。它支持 stdio、SSE 和 streamable HTTP 三种传输方式,适合本地与远程调用场景。
适合谁用?
excel-mcp-server 适合已经采用 MCP 架构、需要让 AI 代理直接读写 Excel 文件的团队,尤其是那些不想依赖 Microsoft Excel 安装环境的自动化场景。它不适合需要复杂格式保真或对工作簿内部结构有精细控制的用户,因为工具抽象层会隐藏底层细节。
能商用吗?
可以。MIT 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
还在维护吗?
在维护。仓库最近一次提交在 157 天前。
用什么语言写的?
主要是 Python(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

一个让 AI 代理直接改 Excel 的 MCP 服务

excel-mcp-server 解决的是一个具体问题:当 AI 代理需要读写 Excel 文件时,通常需要借助脚本或间接工具,而 MCP 协议提供了一种标准化的工具调用接口。这个项目把 Excel 操作封装成 MCP 工具,让 Claude、Cursor 等支持 MCP 的客户端可以直接调用。它面向的是那些想把 Excel 处理集成到自动化流程中的开发者,比如生成报表、批量更新数据或创建图表。根据 README,它不需要安装 Microsoft Excel,这意味着服务器可以跑在 Linux 容器里,而不是必须依赖 Windows 桌面环境。

三种传输方式,本地与远程的分界

项目支持三种传输方式,每一种对应不同的使用场景。stdio 模式用于本地,命令是 uvx excel-mcp-server stdio,此时客户端在每次工具调用时直接提供文件路径,服务器不需要预先知道文件位置。SSE 模式已经标记为 deprecated,但仍然可用。streamable HTTP 是推荐用于远程连接的方式,命令是 uvx excel-mcp-server streamable-http。值得注意的是,后两种模式下,服务器必须设置 EXCEL_FILES_PATH 环境变量,否则默认使用 ./excel_files 目录。这个设计直接影响了文件访问边界。

远程模式下的路径限制是安全关键

当使用 SSE 或 streamable HTTP 时,工具调用中的 filepath 值必须相对于 EXCEL_FILES_PATH 目录,比如 reports/q1.xlsx,绝对路径和目录遍历会被拒绝。这是一个明确的安全边界,防止远程客户端任意读写服务器文件系统。但这也意味着,如果你需要处理多个不同目录下的文件,必须把它们都放在这个根目录之下。相比之下,stdio 模式没有这个限制,因为客户端是本地进程,路径由客户端自行决定。这种差异值得注意:远程部署时,你实际上是在用路径隔离换取安全性。

工具集覆盖了哪些操作

根据 README,服务器提供了一系列工具,覆盖创建工作簿、读写工作表、公式、格式化、图表、数据透视表、Excel 表格、数据验证以及工作表管理(复制、重命名、删除)。具体工具列表在 TOOLS.md 文件中,README 没有列出全部名称。这意味着功能范围可能很广,但实际使用前需要查阅 TOOLS.md 来确认每个工具的参数和限制。数据验证是内置的,针对范围、公式和数据完整性,这有助于减少 AI 代理生成无效操作的概率,但验证的严格程度取决于实现,文档没有给出细节。

启动与配置:从 uvx 到环境变量

安装和启动非常简单,因为项目发布在 PyPI 上,可以用 uvx 直接运行,无需手动安装依赖。本地 stdio 的 MCP 配置示例是:在 mcpServers 中指定 command 为 uvx,args 为 ["excel-mcp-server", "stdio"]。远程 streamable HTTP 的配置则只需提供 url,例如 http://localhost:8000/mcp。端口可以通过 FASTMCP_PORT 环境变量控制,默认是 8017。如果你用 Windows PowerShell,设置环境变量的语法是 $env:EXCEL_FILES_PATH="E:\MyExcelFiles",然后运行 uvx excel-mcp-server streamable-http。整个过程只需要几条命令,没有复杂的依赖步骤。

一个明显的局限:远程模式下文件访问被限制在单一根目录

对于远程使用,EXCEL_FILES_PATH 是强制性的,但它同时也是一个约束。如果你有多个项目,每个项目需要不同的 Excel 文件目录,你只能把它们都放在同一个根目录下,或者为每个项目启动一个单独的服务器实例并设置不同的环境变量。这增加了运维成本。另外,stdio 模式下虽然路径自由,但无法远程调用,这限制了它的使用场景。如果你希望一个服务器同时服务多个客户端且每个客户端访问不同目录,这个设计可能不够灵活。文档没有提供多租户或路径映射的机制。

替代方案:直接使用 openpyxl 或 pandas

与 excel-mcp-server 相比,直接使用 Python 库如 openpyxl 或 pandas 是更底层的替代方案。openpyxl 允许你直接操作工作簿对象,没有 MCP 协议的开销,也没有路径限制,你可以完全控制文件读写逻辑。pandas 则擅长数据分析和批量处理,但它的 Excel 支持依赖于 openpyxl 或 xlrd。区别在于,这些库需要你编写代码,而 excel-mcp-server 把操作暴露为 MCP 工具,让 AI 代理能够通过自然语言调用。如果你不需要 AI 代理,或者你的自动化逻辑已经用 Python 脚本实现,那么直接使用这些库可能更简单、更可控。

维护与许可证

项目采用 MIT 许可证,这意味着你可以自由使用、修改和分发,甚至用于商业目的,只要保留版权声明。最近的发布记录显示 v0.1.8 在 2026 年 4 月,v0.1.7 在 2025 年 8 月,更新频率不算高,但项目没有标记为归档,说明仍在维护。SSE 被标记为 deprecated,这暗示未来版本可能会移除该支持,如果你正在使用 SSE,应该计划迁移到 streamable HTTP。升级成本方面,由于是 PyPI 包,更新 uvx 即可获得新版本,但需要关注 TOOLS.md 的变化,因为工具参数可能不兼容。

编辑结论

excel-mcp-server 适合已经采用 MCP 架构、需要让 AI 代理直接读写 Excel 文件的团队,尤其是那些不想依赖 Microsoft Excel 安装环境的自动化场景。它不适合需要复杂格式保真或对工作簿内部结构有精细控制的用户,因为工具抽象层会隐藏底层细节。如果你打算通过 streamable HTTP 远程部署,请先验证 EXCEL_FILES_PATH 目录的权限隔离是否满足你的安全要求,并确认客户端能否正确处理相对路径。MIT 许可证意味着你可以自由修改和商用,但需要保留版权声明。在采用前,建议检查 v0.1.8 的发布说明,确认你需要的图表或数据透视表功能是否已经稳定。

官方来源

  1. haris-musa/excel-mcp-server on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
社区笔记

社区笔记