关于 mcp-server-xlwings
mcp-server-xlwings 通过 xlwings COM 操作正在运行的 Excel,支持 DRM 保护或被锁定的文件。适用于需要访问实时工作簿数据、公式、格式或 VBA 宏的 Excel 用户。
主要功能
- 01读取活动工作簿和当前选区
- 02读取和写入单元格区域
- 03运行 VBA 宏
- 04查看公式及计算结果
- 05管理工作簿和工作表
- 06设置格式并查找文本
适用场景
- 01汇总当前选中的表格数据
- 02更新公式并读取计算结果
- 03运行已有的 VBA 宏
- 04编辑或设置 Excel 可打开的工作簿格式
MCP 相关
它向 MCP 客户端提供 Excel 自动化工具,可执行工作簿、单元格、工作表、公式、宏和格式操作。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-server-xlwings
通过 xlwings COM 自动化 Excel 的 MCP 服务。支持受 DRM 保护的文件。
为什么选择 xlwings?
openpyxl 或 pandas 等库会直接从磁盘读取 .xlsx 文件。以下情况会导致读取失败:
- 应用了 DRM / 文件级加密(在企业环境中很常见)
- 需要与 正在运行的 Excel 会话交互(公式、宏、加载项)
- 文件被其他进程锁定
mcp-server-xlwings 使用 COM 自动化与正在运行的 Excel 进程通信,因此可以读写 Excel 本身能够打开的任何文件,包括受 DRM 保护的文档。
xlwings 专属功能
使用 openpyxl 等基于文件的库时,以下功能 无法实现:
- 读取用户当前的选区——准确查看用户正在查看的内容
- 获取活动工作簿——无需指定文件路径
- 运行 VBA 宏——执行现有宏并获取其返回值
- 获取实时公式结果——设置公式后立即获取计算结果
- 强制重新计算——触发 Excel 重新计算所有公式
安装
使用 uvx(推荐)
uvx mcp-server-xlwings
使用 pip
pip install mcp-server-xlwings
配置
Claude Desktop
添加到 %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"xlwings": {
"command": "uvx",
"args": ["mcp-server-xlwings"]
}
}
}
Claude Code
claude mcp add xlwings -- uvx mcp-server-xlwings
Roo Code(VS Code)
添加到 Roo Code MCP 设置,或创建 <project-root>/.roo/mcp.json:
{
"mcpServers": {
"xlwings": {
"command": "uvx",
"args": ["mcp-server-xlwings"]
}
}
}
Cursor
添加到 %USERPROFILE%\.cursor\mcp.json:
{
"mcpServers": {
"xlwings": {
"command": "uvx",
"args": ["mcp-server-xlwings"]
}
}
}
Windsurf
添加到 %USERPROFILE%\.codeium\windsurf\mcp_config.json:
{
"mcpServers": {
"xlwings": {
"command": "uvx",
"args": ["mcp-server-xlwings"]
}
}
}
Continue(VS Code)
添加到 ~/.continue/config.yaml:
mcpServers:
- name: xlwings
command: uvx
args:
- mcp-server-xlwings
可用工具(11 个)
省略 workbook 时,所有工具默认使用 活动工作簿。
| 工具 | 描述 |
|---|---|
get_active_workbook | 获取活动工作簿信息、工作表和包含数据的当前选区 |
manage_workbooks | 列出、打开、保存、关闭或重新计算工作簿 |
read_data | 读取区域,支持 merge_info、header_row、sheet="*" 批量读取和 detail 模式 |
write_data | 写入二维数组(data)或单元格公式(formula) |
manage_sheets | 列出、添加、删除、重命名、复制和激活工作表;插入或删除行和列 |
find_replace | 搜索文本,并可选择替换 |
format_range | 应用格式(粗体、斜体、颜色、边框、对齐方式、数字格式等) |
run_macro | 执行 VBA 宏并获取其返回值 |
get_formulas | 获取区域中的所有公式,可选获取计算结果 |
get_cell_styles | 获取区域中单元格的格式/样式信息(粗体、颜色、边框等) |
get_objects | 列出工作表上的图表、图像和形状 |
示例
查看用户正在处理的内容
“打开的电子表格里有什么?”
Agent 调用 get_active_workbook() 获取工作簿名称、工作表和选区数据,然后调用 read_data() 获取整个工作表的数据。
汇总选中的数据
“汇总我选中的数据”
Agent 调用 get_active_workbook()——响应中会直接包含选区数据。
运行宏
“运行 UpdateReport 宏”
Agent 调用 run_macro(macro_name="UpdateReport") 并返回结果。
添加汇总行
“在 C10 中添加一个 SUM 公式,汇总 C2:C9”
Agent 调用 write_data(start_cell="C10", formula="=SUM(C2:C9)") 并获取计算结果。
设置标题行格式
“将第 1 行设为粗体、居中,并设置黄色背景”
Agent 调用 format_range(cell_range="A1:D1", bold=true, alignment="center", bg_color="#FFFF00")。
一次读取所有工作表
“总结每个工作表”
Agent 调用 read_data(sheet="*")——一次调用即可返回所有工作表的摘要。
正确读取合并单元格
“读取 B6:C20,并填入合并单元格的值”
Agent 调用 read_data(cell_range="B6:C20", merge_info=true)。合并单元格会返回其父单元格的值,而不是 null。
查找所有公式
“显示此工作表中的所有公式”
Agent 调用 get_formulas(cell_range="A1:Z100", values_too=true),获取每个公式及其计算结果。
插入行
“在第 5 行插入 3 个空白行”
Agent 调用 manage_sheets(action="insert_rows", position=5, count=3)。
要求
- Windows(Excel COM 自动化仅适用于 Windows)
- 已安装 Microsoft Excel
- Python 3.10+
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。