用 AI 操控 Excel?四个基于 xlwings 的开源 MCP Server 推荐

快乐小子新
快乐小子新 Lv.2 潜力创作者

Lv.2潜力创作者

引言:随着 Model Context Protocol(MCP)的兴起,让 Claude、Cursor、VS Code 等 AI 客户端直接读写 Excel、执行 VBA 宏,已经成为现实。本文盘点 4 个基于 xlwings(Python-Excel 桥接库)的开源 MCP Server,帮你在选型时少走弯路。

⚠️ 说明:xlwings 通过 Excel COM / AppleScript 操控 Excel,要求本机安装 Microsoft Excel

一、为什么选 xlwings + MCP?

传统文件库(openpyxl、pandas)直接读写 .xlsx 文件,存在三个天然短板:

短板

文件库(openpyxl 等)

xlwings COM 方案

读 DRM / 权限保护文件

失败

Excel 能打开就能读

获取用户当前选中区域

不支持

实时感知活动工作簿

执行 VBA 宏 / 公式即时计算

不支持

完整支持

xlwings 通过 COM 自动化连接正在运行的 Excel 进程,因此凡是 Excel 本身能打开的文件它都能处理。MCP 则把这些能力封装成 AI 可调用的「工具」。两者结合,就是下面 4 个项目的核心思路。

二、四个项目横向对比

项目

定位

工具数

架构亮点

平台 / 许可

**geniuskey**

轻量、操控活动 Excel

11

默认活动工作簿、DRM 支持

Windows / MIT

**hyunjae-labs**

企业级、生产就绪

17

Session 会话、TTL/LRU 清理

Windows / MIT

**vohoailinh90**

COM 线程安全参考实现

12

专用 COM 线程 + 命令队列

Windows(设计)/ MIT

**prabodh-hyd**

最小可用、教学友好

11

跨平台 Mock 后端

Win / Mac / MIT

三、逐个详解

1️⃣ geniuskey/mcp-server-xlwings —— 轻量上手首选

🔗 仓库地址:

https://github.com/geniuskey/mcp-server-xlwings

核心卖点:所有工具在省略 workbook 参数时,默认操作「当前活动工作簿」——这让它特别适合「AI 帮你处理正在看的表格」这类交互。

11 个工具

  • 工作簿get_active_workbook(活动工作簿/Sheet/选中区域)、manage_workbooks(列出/打开/保存/关闭/重算)

  • 数据read_data / write_data(支持 merge_info、sheet="*" 批量、单单元格公式)

  • Sheetmanage_sheets(增删改查、插入/删除行列)、find_replace

  • 格式format_range(粗体、颜色、边框、对齐、数字格式)

  • VBArun_macro —— 执行 VBA 宏并获取返回值

  • 其他get_formulasget_cell_stylesget_objects(图表/图片/形状)

典型场景

  • 「总结我选中的数据」 → get_active_workbook() 直接返回选中区域

  • 「C10 写 SUM 公式」 → write_data(start_cell="C10", formula="=SUM(C2:C9)")

  • 「运行 UpdateReport 宏」 → run_macro(macro_name="UpdateReport")

安装uvx mcp-server-xlwingspip install mcp-server-xlwings,配 Claude Desktop 即可。

独特价值:DRM 支持、run_macro、活动工作簿感知——这些是另外两个项目缺失的。

2️⃣ hyunjae-labs/xlwings-mcp-server —— 企业级会话架构

https://github.com/hyunjae-labs/xlwings-mcp-server

最新版本:v1.0.0(2025-08-31,Production Ready),MIT 许可。

核心卖点:Session 会话架构——持久化工作簿会话,每个 Session 独立 Excel 实例,通过单例管理器统一调度,并支持 TTL 过期 + LRU 淘汰自动清理资源,避免 Excel 进程残留。

架构亮点:线程安全(每 Session 独立锁)、自动资源管理(僵尸进程防护)、日志轮转。

17 个工具覆盖:工作簿、Sheet、数据读写、公式校验、格式化、图表、透视表、数据表、数据验证、行列删除、命名范围等——工具最全

安装pip install xlwings-mcp-server,环境变量可配会话 TTL、最大并发等。

适合:长时间运行、多文件并发、需要资源治理的生产环境。

3️⃣ vohoailinh90/Excel_MCP_Server —— COM 线程安全的最佳范本

https://github.com/vohoailinh90/Excel_MCP_Server

核心卖点:专为解决 Excel COM 的 STA(单线程套间)坑而设计。整体架构分为三层:

server.py (12 tools)

↓ 共享接口

backends/base.py (ABC,跨平台)

├─ windows_com.py (xlwings + pywin32) —— 真实 Excel + 真实 VBA

└─ mock_openpyxl.py (openpyxl,任意系统) —— 测试用,不跑真 VBA

COM 线程解决方案(精华所在):

Excel COM 是单线程公寓(STA)。Agent 异步并发调用时,多线程直接访问 COM 会崩溃或报 "Application is busy"。该项目用 一个后台线程持有 CoInitialize(),所有命令入队后在同一线程顺序执行——安全、简单。

自动按平台选后端:Windows → WindowsComBackend,否则降级 MockOpenpyxlBackend。

安全建议(值得所有项目借鉴):通过环境变量白名单限制 AI 可调用的宏,避免任意 VBA 代码执行:

$env:EXCEL_MCP_ALLOWED_MACROS = "GenerateSummary,RefreshPivot,ExportReport"

python server.py

价值:即使不用它做 Server,其 windows_com.py 的 COM 线程队列也值得作为「微配方」借鉴。

4️⃣ prabodh-hyd/excel-mcp —— 最小可用、教学与跨平台测试

https://github.com/prabodh-hyd/excel-mcp

核心卖点:结构简单、文档完整,适合学习与快速验证。 仓库虽新(2026-05-30 首次提交),但 README 对安装、配置、排错讲得很细。

11 个工具excel_open_workbookexcel_read_rangeexcel_write_rangeexcel_list_macrosexcel_run_macro(支持传参)、excel_save_workbook 等,全部可选 workbook_name(省略则用活动工作簿)。

Claude Desktop 配置

{

"mcpServers": {

"excel": {

"command": "/path/to/.venv/bin/python",

"args": ["/path/to/server.py"]

}

}

}

独特价值:明确支持 Mac(AppleScript)+ Windows(COM),Linux 不支持(无 Excel)。README 连 macOS 自动化权限、VBA 工程解锁、.xlsm vs .xlsx 都讲清楚了,新手友好。

适合:入门学习、快速原型、跨平台测试(无 Windows 时用 Mock 验证流程)。

四、选型建议

你的需求

推荐项目

快速上手、操控正在看的 Excel

**geniuskey**

企业级、会话管理、长时间运行

**hyunjae-labs**

学 COM 线程安全 / 需要宏白名单

**vohoailinh90**

学习、教学、快速原型

**prabodh-hyd**

组合策略(进阶):

  • 应用骨架:hyunjae-labs(会话架构)

  • 插件能力:geniuskey 的 run_macro + 活动工作簿感知

  • COM 线程:vohoailinh90 的微配方

五、小结

  • 4 个项目均为 MIT 开源许可,可自由使用。

  • 共同前提:本机装 Excel + Python 3.10+(WPS 兼容性见上)。

  • 核心差异在架构而非功能:轻量 vs 会话 vs 线程安全 vs 教学。

如果你正在构建「AI + Excel 」应用,希望这篇对比能帮你快速选型。也欢迎在评论区交流实战经验!

相关链接

  • 四个 MCP Server 仓库:见正文第三节各项目地址。

中国
浏览 202
收藏
6
分享
6 +1
2
+1
全部评论 2
 
快乐小子新
快乐小子新 Lv.2 潜力创作者

Lv.2潜力创作者

xlwings能不能操作WPS?我没尝试过。
举报
1
1
思
可以的,xlwings底层是com通信,和pywin32一样的只不过封装得更好,可以修改使用。
· 贵州省
举报
1
0