Excel MCP Server - xlwings
使用说明内容(Markdown格式)
-
项目简介
- 该仓库实现了一个基于 MCP 的后端服务器,用于通过 JSON-RPC 风格的接口向 LLM 客户端提供对 Excel 文件的管理、数据操作、VBA 执行、图表/透视表/表格等功能的能力。核心通过 xlwings 实现对本地 Excel 的操作,并提供多种传输模式(stdio、SSE、可流式 HTTP)以适配本地或远程场景。
-
主要功能点
- 资源管理(Resources)
- 管理 Excel 工作簿、工作表、数据范围等资源,支持创建、获取元数据、保存等操作。
- 工具(Tools)
- 提供对工作簿/工作表/数据操作、VBA 执行、格式化、图表、透视表、表格等的统一入口,允许 LLM 客户端通过 MCP 调用外部功能。
- Prompt 模板(Prompts)
- 该实现侧重资源与工具,Prompts 相关的定义在代码中通过工具组合暴露,便于结合 LLM 对话进行上下文渲染。
- JSON-RPC 通信
- 通过 MCP 框架实现请求与响应的封装,服务端对外暴露的工具以装饰器形式注册,自动处理输入/输出。
- 会话与安全
- 包含 VBA 安全扫描、VBA 备份、锁机制、错误处理等安全与健壮性特性,确保对 Excel 的操作可追溯且相对安全。
- 多传输模式
- 支持 stdio(本地使用,直接通过进程 IO 通信)、SSE(服务器推送,已标注为可弃用)以及可流式 HTTP 传输,适应本地或远程场景。
- 资源管理(Resources)
-
安装步骤(在支持的环境中执行)
- 确保环境
- Windows 或 macOS 的 Microsoft Excel 已安装,并且能通过 xlwings 访问(Windows 需 COM,macOS 需 AppleScript/对应能力)
- Python 版本 ≥ 3.10
- 安装方式
- 通过 Python 包管理工具安装本 MCP 服务器实现(通常方式为 pip 安装,或从源码安装)。
- 依赖与配置
- 安装 xlwings、mcp 框架等依赖,确保 Excel 可以通过 COM/AppleScript 访问。
- 根据环境配置 Excel 文件读写路径(对 SSE/可流式传输模式影响较大)。
- 确保环境
-
服务器配置(MCP 客户端需要的配置示例) 说明:MCP 客户端需通过 serverName、command、args 等字段来启动并连接 MCP 服务器。以下为基于仓库信息的示例配置,实际名称请以安装后提供的可执行入口为准。
- server name: excel-mcp
- command: uvx
- args: ["excel-mcp-server-xlwings", "stdio"] 说明:上述命令会以 stdio 传输方式启动服务器,适合本地快速集成和测试;若需要远程/流式传输,请按需调整为 sse 或 streamable-http,并在运行前设置环境变量如 FASTMCP_PORT、EXCEL_FILES_PATH 等。
备注
- MCP 客户端配置为 JSON 格式并放在客户端环境中,示例结构为:{"mcpServers": {"excel": {"command": "uvx", "args": ["excel-mcp-server-xlwings", "stdio"]}}}。在客户端无需了解服务器实现的内部细节,仅需要知道如何启动并连接即可。
- 服务器会暴露与 Excel 文件相关的多种工具,客户端通过 MCP 调用即可触发服务器端对 Excel 的操作。
-
基本使用方法
- 启动服务器
- 在支持的环境中使用标准命令启动(如 stdio、SSE、流式 HTTP 等模式,根据客户端需求选择)。
- 通过 MCP 客户端调用工具
- 客户端发起 JSON-RPC 请求,服务器根据请求执行相应的工具(如创建工作簿、写数据、执行 VBA、生成图表等),返回 JSON-RPC 响应或通知。
- 常见场景
-
- 创建并打开一个 Excel 文件作为资源,进行数据写入与读取测试。
-
- 通过 VBA 安全检查与备份机制,执行受控的 VBA 代码。
-
- 使用格式化、图表、透视表等工具对数据进行分析与可视化。
-
- 启动服务器
-
其他注意
- 运行时需要确保 Excel 可访问且 Excel 安装未被阻止(某些企业环境可能需要信任设置)。
- 脚本对 Windows/macOS 的差异做了处理(Windows 通过 COM,macOS 通过 xlwings 的适配能力)。