Bundle
dsh-wps
WPS / 金山文档 cloud-docs integration for DeepSeek Harness: official SkillHub MCP (https://mcp-center.wps.cn/skill_hub/mcp), custom browser authorization (auth-guide + exchange-poll token), WPS cloud-doc tools under mcp__wps__*, wps_status/wps_oauth_start/wps_test helper tools, and a web settings panel
- Source
- zhengjy01
- License
- MIT
- Updated
- Updated 2 days ago
Readme
> **English** | [**中文**](README.zh.md)
# dsh-wps
WPS / 金山文档 (WPS Cloud Docs) integration for DeepSeek Harness (DSH).
Talk to your **WPS cloud drive** in the DSH conversation: list / search / read / create /
upload-download cloud documents, and read / write their text / spreadsheet /
presentation / PDF content. It connects to the **official Kingsoft SkillHub MCP**
(`https://mcp-center.wps.cn/skill_hub/mcp`) and registers its tools as `mcp__wps__*`.
- Custom browser authorization (auth-guide + exchange-poll token), no standard OAuth.
- Access token stored at `~/.dsh/dsh-wps.json` (mode 0600).
- **558 tools** discovered dynamically from the official SkillHub (drive / wps / sheet /
wpp / dbsheet / pdf / form / aippt).
- Auto-registers `mcp__wps__<name>` tools + 4 helper tools (`wps_status` /
`wps_oauth_start` / `wps_test` / `wps_clear`) + a web settings panel "WPS".
## Install (from npm)
```bash
dsh plugin --profile web add dsh-wps
# or from Git:
# dsh plugin --profile web add github.com/zhengjy01/dsh-wps
```
Restart, then trigger authorization (browser opens the WPS login page, use a
**personal** WPS account — enterprise accounts are rejected). After that you can just
say things like "列一下我的 WPS 云文档根目录".
## Usage (examples)
| You say | Tool |
| --- | --- |
| "看看我最近的 WPS 文件" | `mcp__wps__list_latest_items` |
| "列我的云文档根目录" | `mcp__wps__list_my_files` |
| "搜含『周报』的文件" | `mcp__wps__search_files` |
| "读这个文档/表/演示" | `read_file` / `sheet.get_range_data` / `read_slide` |
| "新建一个 docx,内容是……" | `create_file_with_content` |
| "把这个演示导出 PDF" | `wpp.export.export.pdf` |
Full tool list = whatever `wps_test` reports (558 tools).
## Auth (implementation note)
`mcp-center.wps.cn/.well-known/oauth-authorization-server` returns 404, so WPS uses a
**custom** flow, not MCP OAuth discovery: generate `auth_code` → open
`https://mcp-center.wps.cn/kdocs-auth/auth-guide?auth_code=<uuid>` → user logs in →
poll `POST https://api.wps.cn/office/v5/ai/skill_hub/wps_auth/exchange` (body `{code}`)
every second until `{code:200, token}`. 403 = enterprise account rejected, 409 = cancelled.
The token is then the Bearer credential on every JSON-RPC call to the SkillHub MCP.
## Directory
```
dsh-wps/
├── src/
│ ├── index.ts # cordis plugin entry (apply + helper tools + announcement)
│ ├── store.ts # token store (~/.dsh/dsh-wps.json, 0600)
│ ├── auth.ts # browser authorization (auth-guide + exchange poll)
│ ├── mcp.ts # JSON-RPC-over-HTTP MCP client + dynamic mcp__wps__* registration
│ ├── routes.ts # /api/dsh-wps/* (settings panel)
│ └── client/ # web settings panel "WPS"
├── cordis.patch.yml # bundle patch (insert wps row)
├── tsdown.config.ts # host + client bundle build
└── package.json # dsh.bundle.patch declaration
```
## License
MIT
Install
dsh plugin --profile web add github:zhengjy01/dsh-wps#612d92be9c09b84d3833a397f975001f182d63ed
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-wps from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.