wps-dsh-plugin:DeepSeek Harness 中操作WPS的插件
Lv.2潜力创作者
一、项目简介
此前,我曾介绍过【开源项目简介】lc2panda / wps-skills。现在,开源项目https://github.com/CatNebulaaaa/wps-dsh-plugin 通过 DSH 自带的 MCP Client 机制,启动wps-office-mcp 服务,将上游 lc2panda/wps-skills 项目提供的 200 余个专业工具接入了 DSH 生态。
二、功能概述
2.1 MCP 服务挂载
将 wps-office-mcp 的 stdio 服务挂载进 DSH 运行时,使 DSH Agent 能够通过 MCP协议调用 WPS Office 的自动化能力。该插件利用 DSH 对 MCP 的原生支持,将上游 MCP Server 作为受信任的本机子进程启动。
2.2 工具命名空间隔离
为避免与其他 MCP Server 产生命名冲突,插件将上游工具名称统一转换为 mcp__wps-office__<上游工具名> 的格式。以下为几个典型的工具名称映射示例:
上游工具名 | DSH 工具名 |
wps_common_ping | mcp__wps-office__wps_common_ping |
wps_excel_read_range | mcp__wps-office__wps_excel_read_range |
wps_word_get_document_text | mcp__wps-office__wps_word_get_document_text |
wps_ppt_get_slide_count | mcp__wps-office__wps_ppt_get_slide_count |
Agent 从实时工具目录中获取完整的工具 Schema,插件本身不需要复制上游工具定义。
2.3 Skill 注册
插件注册 wps-office-dsh Skill,提供 DSH 专用的路由规则、安全策略和错误处理逻辑。该 Skill 帮助 Agent 理解如何高效地使用 WPS 工具,包括工具选择策略、调用顺序优化和异常情况处理等。
2.4 环境检查脚本
插件提供只读的环境检查脚本 scripts/doctor.mjs,能够明确报告以下组件的状态:
Node.js 版本
DSH 安装状态
WPS MCP 服务状态
Windows 加载项状态
检查结果使用 OK / WARN / ERROR 三级标记,存在 ERROR 时返回非零退出码,帮助用户快速定位环境问题。
三、上游能力:lc2panda/wps-skills 工具集
wps-dsh-plugin 本身不提供 WPS 操作工具,所有工具能力均来自上游项目 lc2panda/wps-skills。该上游项目共注册 243 个工具(231 个专业工具 + 12 个内置工具),覆盖 Excel、Word、PPT 三大应用场景。
具体能力请参考开源项目:https://github.com/lc2panda/wps-skills/tree/main,以及我此前写的介绍帖:【开源项目简介】lc2panda / wps-skills。
四、安装与使用
4.1 前提条件
安装 wps-dsh-plugin 之前,需要确保以下条件均已满足:
WPS Office 已安装(Windows 版本)
按上游 lc2panda/wps-skills 说明安装 WPS 加载项
已构建上游仓库的 wps-office-mcp 模块
Node.js 版本 22.19+ 或 24+
DeepSeek Harness 0.1.0-rc.5 或兼容版本
4.2 安装步骤
第一步:构建上游 MCP
git clone https://github.com/lc2panda/wps-skills.git
cd wps-skills/wps-office-mcp
npm install
npm run build
WPS 加载项的安装和 WPS 重启步骤以上游安装文档为准。
第二步:设置环境变量
推荐设置 WPS_SKILLS_ROOT 为上游仓库的绝对路径:
$env:WPS_SKILLS_ROOT = (Resolve-Path 'C:\path\to\wps-skills').Path
也可以只设置编译入口:
$env:WPS_OFFICE_MCP_ENTRY = (Resolve-Path 'C:\path\to\wps-skills\wps-office-mcp\dist\index.js').Path
DSH 会从启动目录的 .env 和 $DSH_HOME/.env 加载环境变量。需要跨项目使用时,可将不含密钥的路径配置写入 $DSH_HOME/.env。
第三步:安装插件
已全局安装 DSH 时:
dsh plugin --profile web add .
dsh --profile web --dump-config
dsh web
安装 GitHub 版本时建议固定 commit:
dsh plugin --profile web add github:CatNebulaaaa/wps-dsh-plugin#COMMIT_SHA
第四步:运行环境检查
node scripts/doctor.mjs --wps-skills-root 'C:\path\to\wps-skills' --dsh-source-root 'C:\path\to\deepseek-harness'
4.3 卸载
dsh plugin --profile web remove dsh-plugin-wps-office
卸载本插件不会删除 WPS Office、上游 wps-skills 项目或 WPS 加载项。
4.4 使用方式
安装完成后,在 DSH 会话中通过自然语言即可操控 WPS Office。例如:
"读取当前表格 A1 到 D20 的数据"
"将当前文档标题设为黑体二号加粗,居中对齐"
"在当前演示文稿末尾添加一张新的幻灯片,标题为'总结与展望'"
"将当前文档另存为 PDF 格式,输出到桌面"
Agent 会自动调用对应的 MCP 工具完成操作,所有工具的输入输出均为结构化 JSON,Agent 能够准确解析执行结果并据此做出后续决策。
五、技术原理
5.1 整体架构
wps-dsh-plugin 的整体架构分为四个层次,自顶向下依次为:
DSH Agent 层:用户通过自然语言与 DSH Agent 交互,Agent 根据任务语义自动选择并调用工具
适配层(wps-dsh-plugin):通过 DSH 的 MCP Client 机制,与上游 MCP Server 建立 stdio 连接,提供工具命名空间隔离和 Skill 路由
MCP Server 层(wps-office-mcp):使用 @modelcontextprotocol/sdk 库实现,通过 stdio 传输层与 AI 助手建立连接,处理 tools/list 和 tools/call 两类请求
执行层:在 Windows 平台上通过 PowerShell 脚本调用 WPS COM 接口实现客户端操控
5.2 MCP 协议桥接
MCP(Model Context Protocol)是 Anthropic 推出的开放协议标准,旨在为 AI 模型提供与外部工具交互的标准化接口。该协议定义了三种核心请求类型:
tools/list:获取当前可用的工具列表及其 JSON Schema
tools/call:调用指定工具并传入参数
notifications:服务器主动推送事件通知
wps-dsh-plugin 利用 DSH 对 MCP 的原生 Client 支持,自动完成与上游 wps-office-mcp 服务的握手和通信。DSH 将 stdio MCP Server 作为受信任的本机子进程启动,Agent 通过标准的 MCP 协议调用工具,无需关注底层通信细节。
5.3 Windows 执行链路
在 Windows 平台上,完整的调用链路如下:
DSH Agent 通过 MCP 协议发起 tools/call 请求
wps-office-mcp 根据工具名称从注册表中查找对应的 ToolDefinition 和 ToolHandler,执行 JSON Schema 参数校验
WpsClient 模块通过 os.platform() 检测当前平台为 Windows 后,使用 Node.js 的 child_process.spawn 启动 PowerShell 进程,传入 -ExecutionPolicy Bypass -File wps-com.ps1 -Action <动作名> -Params <JSON参数>
PowerShell 脚本通过 .NET 运行时互操作服务 [System.Runtime.InteropServices.Marshal]::GetActiveObject() 从 Windows 运行对象表(Running Object Table, ROT)中获取已运行的 WPS 应用程序 COM 对象
获取 COM 对象后,脚本通过 switch 语句(涵盖 230 余个分支)将 Action 路由到对应的处理逻辑
操作结果被统一封装为 {success: bool, data: object, error: string} 结构的 JSON 对象,通过 PowerShell 的 ConvertTo-Json 输出到 stdout,由 Node.js 进程捕获并解析
结果经由 MCP 协议返回给 DSH Agent
5.4 严格的启动验证
插件设置了 failOnStartupError: true 配置项。当 WPS MCP 路径错误、服务启动失败或工具发现失败时,DSH 会明确报错,而不是加载一个没有 WPS 工具的空壳。这种设计避免了用户在无感知的情况下使用一个功能残缺的插件,确保了用户体验的可靠性。
5.5 安全与权限说明
DSH 会把 stdio MCP Server 作为受信任的本机子进程启动,它不运行在 Agent 文件系统沙箱内
上游 MCP 会写入 ~/.wps-office-mcp/logs 目录,可通过 WPS_MCP_HOME 环境变量改变日志根目录
WPS 工具能够修改真实文档,因此执行批量或覆盖操作前应确认范围并保留备份
六、结语
wps-dsh-plugin 为 DeepSeek Harness 用户提供了一条将 WPS Office 文档处理能力接入 AI Agent 工作流的标准化通道。其独特之处在于它不重复实现任何工具逻辑,而是通过 MCP 协议桥接上游 wps-skills 项目已有的 200 余个专业工具,实现了适配层与工具层的清晰分离。
对于已经使用 WPS Office 作为主要办公工具、并希望借助 DSH Agent 实现办公自动化的用户而言,wps-dsh-plugin 是一个值得关注的方案。它让用户能够通过自然语言直接操控本机 WPS Office 中的活动文档,涵盖了从数据读写、格式设置到图表创建、演示文稿美化的完整办公场景。
Lv.2潜力创作者