Hermes WPS MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Hermes WPS MCP在当前表格里新建一个叫“汇总”的工作表"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Hermes WPS MCP
上游 lc2panda/wps-skills 的离线部署适配版,
用于内网 aarch64 Linux(银河麒麟 V10 / 统信 UOS 20 / openEuler)上,
让 Hermes Agent 通过 MCP 直接操作正在运行的 WPS 文档。
上游 pin:
a82533662268b3245f93d8685bc45dffede048b6许可:MIT(与上游一致)
不是重写,是 clone + 环境适配。业务逻辑(243 个工具的实现)一行没动。
上游原始说明保留在
README.upstream.md
关于「为什么不直接在 GitHub 上 fork」:本仓库是独立仓库,但保留了完整上游历史
(首个提交的父提交就是上游 pin),并且配了 upstream remote。这样上游后续修复仍能合并:
git remote add upstream https://github.com/lc2panda/wps-skills.git # 已配置则跳过
git fetch upstream main
git merge upstream/main # 或 git diff upstream/main 只看我们改了什么GitHub 上的「Forked from」标识是没有的 —— 这是一个内网适配发布仓库, 需要打自己的 release 产物、写自己的 README,独立更清晰。
能力
243 个工具:231 个专业工具 + 12 个内置工具,覆盖 Excel 82 / Word 28 / PPT 112 / 通用 21。
能做到「实时」是因为加载项跑在 WPS 自己的 V8 引擎里,直接操作文档对象模型: 改动立刻上屏、格式自动继承、不与用户的 Ctrl+S 冲突。 MCP Server 不碰文件,只把命令排进队列,等加载项轮询取走。
Hermes Agent
│ MCP (stdio)
▼
wps-office-mcp (node dist/index.js)
│ HTTP 轮询,仅 127.0.0.1:58891
▼
WPS 加载项「WPS助手」(WPS 内嵌 V8)
│ WPS JS API
▼
你正在编辑的文档(内存对象)Related MCP server: office-mcp
三端
平台 | 通道 | 本仓库状态 |
Linux | 反向轮询(与 macOS 共用一套) | 适配目标,CI 覆盖 |
macOS | 反向轮询 | 上游支持,未验证 |
Windows | PowerShell + COM | 上游支持,未验证 |
相对上游改了什么
只有下面这些,逐条列出便于对照回滚。
# | 文件 | 改动 | 原因 |
1 |
|
| 原实现调 |
2 |
| 新增 | 上游 |
3 |
| 新增 | 上游零测试: |
4 |
| 新增 | 拦「编译绿了但产物不可用」 |
5 |
| 新增 | 内网无 npm,必须自带 |
6 |
| 新增 | CI 与本地同一份校验规则 |
7 |
| 新增 | 目标机是 aarch64,x86 上跑绿没意义 |
8 |
| 替换 | 说明来源、改动、部署 |
9 |
| 新增 |
|
10 |
| 新增 | 校验器自身的回归测试(符号链接判定),不依赖宿主符号链接权限 |
11 |
| 改名 + 去品牌 | 界面/文档不再出现第三方品牌:功能区显示「WPS助手」、注册 ID |
完全没动:tools/**、server/**、client/wps-client.ts。
加载项本体除 manifest.xml / ribbon.xml 的显示名与 id、main.js 里 3 处
console.log 文案外,业务实现零改动。
界面显示名是我方自定义的,与上游品牌无关;上游原文说明存档在
README.upstream.md,那份文件刻意未做替换,以保留可核对的原始出处。
产出离线包
联网机或 CI:
cd wps-office-mcp && npm ci && npx tsc -p tsconfig.json && cd ..
node build/verify_dist.mjs
node build/test_poll_protocol.mjs
bash build/package_offline.sh
# -> dist-pkg/wps-mcp-offline-aarch64.tar.gz + .sha256或直接取 CI artifact(workflow build-wps-mcp,runner ubuntu-24.04-arm):
wps-mcp-offline-aarch64.tar.gz 约 4.2 MiB / 约 5000 条目
wps-mcp-offline-aarch64.tar.gz.sha256字节数与 sha256 每次构建都会变,所以这里不写死:README 本身也打进了产物,
写死哈希会立刻变成自指的过期值。校验一律以 artifact 里那个 .sha256 为准:
sha256sum -c wps-mcp-offline-aarch64.tar.gz.sha256CI 会在两个 node 版本(22 / 24)上各跑一遍,只有 node 22 那路上传产物。
打包后立刻用 build/verify_package.py 校验(28 项),本地下载回来再跑同一份规则。
内网安装
tar -xzf wps-mcp-offline-aarch64.tar.gz -C wps-mcp
cd wps-mcp
bash install.sh --dry-run # 先看它要做什么
bash install.shinstall.sh 依次做:探测 node/WPS → 校验包完整性 → 部署服务与加载项 →
合并(非覆盖)publish.xml(改前备份)→ 重启 WPS → 打印 MCP 配置片段。
加载项要不要手动启用?
不需要。 注册进 publish.xml 之后,每次 WPS 启动都会自动扫描并加载,
功能区的 onLoad="OnAddinLoad" 自动触发,轮询随即开始,用户不用点任何按钮。
只有一个一次性动作:把所有 WPS 进程退干净再打开(托盘/后台残留也算)。
因为 publish.xml 只在进程启动时读一次。install.sh 会自动执行
quickstartoffice restart 代替你完成;探测不到该脚本时才需要手动重启。
publish.xml 里的 enable="enable_dev" 是让它默认启用、并跳过 md5 校验,
省掉在「加载项管理器」里手工勾选这一步。
功能区没出现「WPS助手」时,按顺序查:
装到了 root 名下 ——
sudo bash install.sh会把加载项写进/root/.local/share/Kingsoft/wps/jsaddons/,你用普通用户开 WPS 自然看不到。install.sh现在会对这种情况显式告警。用--jaddons指到正确用户目录。没真正重启 ——
ps -ef | grep -i wps还有残留就得全杀掉再开。没有图形会话 —— ssh 无 X11/Wayland 转发时加载项不会加载,无报错。
以上都对仍不出现,看
~/.local/share/Kingsoft/wps/jsaddons/publish.xml里有没有name="wps-assistant",以及目录是否叫wps-assistant_(尾部下划线)。
在 Hermes 注册 MCP
{
"wps-office": {
"command": "/path/to/node",
"args": ["/home/<user>/.local/share/hermes-wps-mcp/wps-office-mcp/dist/index.js"],
"env": { "WPS_MCP_PORT": "58891" }
}
}启动顺序(重要)
先起 Hermes(含 MCP),再开 WPS。
反之在麒麟上有已知问题:WPS 已运行后再起 MCP Server,WPS 进程可能异常退出 (上游 Issue #17)。Hermes 常驻这一点天然满足正确顺序。
验证
# 加载项是否注册成功
cat ~/.local/share/Kingsoft/wps/jsaddons/publish.xml
ls ~/.local/share/Kingsoft/wps/jsaddons/wps-assistant_/
# 服务是否在跑(需 Hermes 已拉起 MCP)
curl -s http://127.0.0.1:58891/status
# 端到端:重启 WPS,功能区应出现「WPS助手」
# 然后在 Hermes 里问「看看当前表格有哪些工作表」日志:~/.wps-office-mcp/logs/combined.log / error.log。
已知限制
必须有图形会话。加载项的宿主是运行中的 WPS 进程;无头服务器上整条链不成立。
只能操作活动文档。WPS JS API 是
ActiveWorkbook/ActiveDocument语义。同机。加载项与 MCP Server 必须同机,走
127.0.0.1。加载项注册机制脆弱。目录名尾部
_、publish.xml的url前缀、oem.ini的JsApiPlugin,任一不符就静默不加载,零报错。ARM64 的 WPS 无公开下载。需从统信/麒麟 OEM 渠道或已预装整机获取, 注意 OEM 授权与机器绑定。
测试覆盖有限。补的协议测试只覆盖轮询链路,不覆盖 243 个工具的语义。
卸载
bash install.sh --uninstall什么都不删,全部改名留备份:
安装目录 →
~/.local/share/hermes-wps-mcp.bak.<时间戳>加载项目录 →
jsaddons/wps-assistant_.bak.<时间戳>publish.xml改前先cp一份.bak.<时间戳>
卸载只做两件事:从 publish.xml 摘掉 name="wps-assistant" 那一条(别人的条目一条不碰),
以及把上面三个位置改名。想回滚:把两个 .bak 改回原名即可。
不用
rm -rf是有原因的:部分环境把rm劫持成回收站 shim, 会阻塞或直接失败;而且删了之后回滚只能重装。
本地快速跑测试
Windows / 无 node_modules 的环境也能跑安装语义测试:
WPS_TEST_STUB=1 python3 build/test_install.py # 桩包,秒级
python3 build/test_verify_package.py # 校验器回归测试CI 不设 WPS_TEST_STUB,始终用真包 —— 防止「桩包绿了真包红」。
This server cannot be deployed
Maintenance
Related MCP Connectors
Generate, edit, merge, translate and PDF-convert PowerPoint (.pptx) over MCP. 8 tools.
Real Word and Excel for agents: open your .docx/.xlsm, read, propose, apply, get it back intact.
An agent-first office suite Claude & ChatGPT read and write over one MCP URL.
Create, review and edit Word, PowerPoint, Excel and PDF documents from any AI agent.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to natively create and edit WPS Office documents, spreadsheets, and presentations via natural language commands.19MIT
- AlicenseAqualityDmaintenanceMCP server for reading, writing, editing, formatting, and exporting Microsoft Office documents (Word, Excel, PowerPoint) via stdio JSON-RPC, with 47 tools and cross-platform support.472MIT
- AlicenseNot gradedqualityCmaintenanceMCP server enabling AI to control WPS Office (Writer/Calc/Impress) for document creation, editing, export, and live typing.MIT
- AlicenseNot gradedqualityAmaintenanceUniversal MCP bridge and desktop manager for live, in-place manipulation of active WPS Office and Microsoft Office (Excel, Word, PowerPoint) documents without uploading files. Supports macOS & Windows.7MIT