mcp-server-excel
通过 MCP 协议让 AI 用自然语言操控真实 Excel,支持 Power Query、DAX、数据透视表等 232 种操作
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
通过 MCP 协议让 AI 用自然语言操控真实 Excel,支持 Power Query、DAX、数据透视表等 232 种操作
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有多少时间浪费在反复点击 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 里完成。