mcp-server-excel
sbroenne/mcp-server-excel加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有多少时间浪费在反复点击 Excel 上?每周做一次销售报表,要手动刷新 Power Query、更新数据透视表、再调整图表格式——这些机械操作占用大量时间,却毫无技术含量。现在,一个 MCP 服务器让 AI 直接操控你的 Excel:用自然语言告诉它"刷新本月所有 Power Query 并更新销售图表",它就会在真实的 Excel 引擎中完成这一切。这就是 ExcelMcp 做的事。
长期以来,AI 处理 Excel 的主流方案是文件解析——用 Python 库(如 pandas、openpyxl)读取 .xlsx 文件内容。这种方案有两个根本性局限:
第一,它无法处理动态生成的内容。 Power Query 的刷新结果、Dax 度量值的计算结果、VBA 宏的执行效果——这些只有 Excel 本身才能产出,文件解析工具永远只能读到"上一次保存时的快照"。当你需要 AI 帮你"刷新数据后再分析"时,文件解析方案无能为力。
第二,它会破坏文件结构。 用 openpyxl 保存一个含有数据透视表、VBA 宏、图表链接的复杂工作簿时,文件损坏或功能丢失是家常便饭。数据透视表没了、图表引用断了——这类问题折磨过无数 RPA 开发者。
ExcelMcp 的作者 sbroenne 正是被这些问题推动着走向了不同的技术路线:与其解析文件,不如直接操作 Excel 应用程序本身。他选择了 Windows COM(Component Object Model)接口——这是 Microsoft Office 官方提供的自动化技术,Excel 应用程序是唯一的真实执行引擎,所有操作都在真实的 Excel 进程中完成。
这个项目诞生于 2025 年 10 月,短短 9 个月内积累了 260 颗星,获得了 MCP 社区的广泛关注。配套的 VS Code 扩展已在 Visual Studio Marketplace 上架,提供了图形化的交互体验。
ExcelMcp 的代码仓库采用 .NET C# 构建,整体架构清晰分为三个核心模块:
1. ExcelMcp.Core(核心业务层)
这是项目的主体逻辑所在,体积最大(175个文件)。Core/Commands/ 目录下按功能领域划分出二十多个子模块,每个模块对应 Excel 的一项功能:PowerQuery(数据查询与 M 代码)、PivotTable(数据透视表)、Chart(图表)、Range(单元格区域)、Sheet(工作表)、VBA(宏)、DataModel(数据模型与 DAX)、Slicer(切片器)等。每个命令类都实现了明确的接口契约(如 IPivotTableCommands、IRangeCommands),便于独立测试和扩展。
**2. ExcelMcp.ComInterop(COM 互操作层)
负责与 Windows COM 接口的底层通信,包含:会话管理(Session/)、格式化工具(Formatting/)、进程间进度通知(Progress/)、OLE 消息过滤器(解决多线程环境下的 COM 调用卡顿问题)。这一层封装了所有与 Excel 进程交互的细节,上层业务代码无需直接面对 COM 的复杂性。
**3. ExcelMcp.CLI(命令行入口)
提供独立的命令行工具,支持服务守护进程模式(后台常驻 Excel 进程)、NuGet 版本检查、服务启停管理。与 MCP Server 形成互补——CLI 适合 RPA 和 CI/CD 流水线,MCP Server 适合 AI 助手对话式调用。
此外还有 vscode-extension/(VS Code 插件)、mcpb/(MCP Bundle 打包格式)、llm-tests/(LLM 行为测试套件)和 skills/(面向 Claude Code、Copilot 等 AI 编程助手的 Agent 技能定义)。
ExcelMcp 的工具集覆盖了 Excel 自动化中最有价值的所有场景,以下列举关键工具组:
Power Query & M 代码(12 种操作):创建、刷新、编辑 M 代码、配置加载目标。M 代码在创建和更新时默认保留精确格式,支持代码美化(自动格式化)。支持直接执行 M 代码片段并返回结果,无需创建持久查询。
数据模型 & DAX(19 种操作):列出 Data Model 表结构、读取/写入列值、创建 DAX 度量值(Measures)、关系管理(建立表间关联)。DAX 度量值是 Power Pivot 的核心,也是财务建模中最难自动化的部分。
数据透视表(30 种操作):创建透视表(支持从范围、表格或 Data Model 三种来源)、配置字段布局、聚合方式、分组、切片器筛选、计算字段/成员、布局调整。这是 Excel 高级用户最常用的功能之一,也是文件解析工具最容易破坏的结构。
图表(29 种操作):创建各类图表(柱状、折线、饼图、散点图等)、配置系列数据源、坐标轴、图例、数据标签、趋势线。
VBA(6 种操作):列出 VBA 模块、运行宏代码、管理模块版本(内置版本控制支持)。
Python in Excel(=PY()):直接在工作表中执行 Python 代码,利用 Excel 内置的 Python 引擎处理数据,返回 pandas/numpy 计算结果。
截图工具:将工作表范围或整张工作表截图导出为 PNG,供 AI 视觉验证——这是一个很实用的功能,让 AI 能"看见"操作后的效果。
窗口管理:显示/隐藏 Excel 窗口、调整窗口位置和大小、获取状态栏反馈。
ExcelMcp 支持多种 AI 集成路径,每种路径对应不同的使用场景:
GitHub Copilot:通过 ~/.copilot/skills/excel-mcp/ 或 ~/.copilot/skills/excel-cli/ 安装 AI 技能包,Copilot 就知道如何调用 ExcelMcp 工具。在 VS Code 中直接用自然语言描述需求,Copilot 会生成相应的工具调用序列。
Claude Code:在 .claude/skills/ 中安装对应技能定义文件,Claude Code 即可通过 MCP 协议与 ExcelMcp 通信,支持完整的对话式自动化流程。
Cursor / Windsurf:同样通过 MCP 协议连接,方式与 Claude Code 类似。
独立 MCP Client:直接通过 MCP 协议(STDIO 传输)连接 MCP Server,适合自行构建 AI Agent 系统的开发者。
CLI 脚本:适合 RPA 流程和 CI/CD 流水线,通过命令行参数调用 ExcelMcp CLI,支持守护进程模式(常驻 Excel 进程避免反复启动开销)。
必须满足的前提条件:Windows 操作系统 + Microsoft Excel 2016+(桌面版,非 Excel Online)。这是因为 COM 自动化本身就是 Windows 平台专有技术,macOS 和 Linux 用户无法使用。此外,AI 控制的是真实的 Excel 应用程序,需要在有桌面交互的环境中运行,不适合纯服务端自动化场景。
VBA 操作的额外设置:首次使用 VBA 功能需要在 Excel 中手动开启"信任 VBA 项目对象模型访问"(文件→选项→信任中心→宏设置),这是 Excel 的安全限制。
IRM/AIP 保护文件:ExcelMcp 能检测并以只读模式打开 IRM(信息权限管理)或 AIP(Azure Information Protection)保护的文件,配合 Excel 可见窗口进行身份验证后读取,但无法修改受保护内容。
文件损坏风险:虽然直接操作 Excel 进程比文件解析更安全,但频繁的自动化操作仍建议配合版本管理(如 Git)或备份策略。
ExcelMcp 代表了一种新兴的 AI Agent 工具设计思路:不解析文件,而是驱动真实应用。这与当前 AI 领域"让 Agent 使用工具"的主流趋势高度一致,只是工具从 API 变成了桌面应用程序的 COM 接口。
从 Star 增长曲线看,项目从 2025 年 10 月上线到 2026 年 7 月达到 260 星,增长势头稳健。配套的 PowerPoint MCP Server(powerpointmcpserver.dev)作为姐妹项目也在同步发展,作者似乎在构建一套"AI 操控 Office 全家桶"的工具矩阵。
对于需要频繁处理 Excel 报表的数据分析师、财务人员和 RPA 开发者而言,ExcelMcp 提供了一条将 AI 能力融入日常工作流的有效路径——你不再需要手动点击,只需要告诉 AI 你想要什么,它就在你的 Excel 里完成。