Skip to main content
Glama

Draftly (wps-mcp)

Chino simplificado | Inglés

En WPS Office (Mac), ejecuta un panel lateral de chat de IA que realmente puede manipular el documento actual, basado en la API del modelo de objetos de complementos JS oficiales + Claude Agent SDK. No es una simulación de teclado/ratón; invoca directamente el modelo de objetos de WPS 文字 / 表格 / 演示 mediante herramientas MCP (como Application.CreateTaskPane).

Requisitos previos

  • macOS, con WPS Office (versión Mac) instalado y abierto completamente al menos una vez

  • Node.js 20 o superior

  • CLI de Claude Code instalada y con la sesión iniciada (claude login) — Draftly no gestiona su propia API Key; se apoya en la CLI de Claude Code ya iniciada en esta máquina para reutilizar el estado de autenticación de tu cuenta. Al cambiar de máquina o de usuario, primero hay que instalar e iniciar sesión en la CLI de claude en esa máquina.

Related MCP server: wps-mcp-server

Instalación

git clone <this-repo>
cd wps-mcp
bash scripts/install.sh

El script es idempotente; volver a ejecutarlo tras cambiar el código es el proceso de actualización. Hará lo siguiente:

  1. npm install instala las dependencias

  2. Genera una clave compartida local (.bridge-token, ver "Modelo de seguridad" más abajo)

  3. Copia los archivos del complemento al directorio de complementos de WPS (~/Library/Containers/com.kingsoft.wpsoffice.mac/Data/.kingsoft/wps/jsaddons/wps-mcp_)

  4. Instala un LaunchAgent de launchd para que el servicio puente se inicie automáticamente al iniciar sesión y se reinicie automáticamente si se bloquea.

Después de la instalación:

  1. Reinicia WPS Office por completo (es obligatorio reiniciar en la primera instalación o cuando ribbon.xml tenga cambios: la definición de los botones de la cinta solo se lee una vez al arrancar WPS y no admite actualización en caliente; las actualizaciones de taskpane.html/main.js se aplican en caliente automáticamente, sin necesidad de reiniciar)

  2. En WPS, busca la pestaña de cinta "WPS-MCP" y haz clic en el botón "Draftly" para abrir el panel lateral.

  3. Si no conecta, revisa los registros: tail -f ~/Library/Logs/wps-mcp.log

Desinstalación:

launchctl bootout gui/$(id -u)/com.wps-mcp.bridge
rm ~/Library/LaunchAgents/com.wps-mcp.bridge.plist
rm -rf ~/Library/Containers/com.kingsoft.wpsoffice.mac/Data/.kingsoft/wps/jsaddons/wps-mcp_

Modelo de seguridad

El servicio puente escucha en 127.0.0.1:58892 y gestiona solicitudes WebSocket y HTTP. Todos los puntos de entrada que producen efectos secundarios (los dos WebSocket, /tool, /mcp) requieren ?token= en la URL. Este token es una clave compartida local generada aleatoriamente durante la instalación y guardada en .bridge-token en la raíz del proyecto (no entra en el control de versiones); el mismo valor se incrusta en js/token.js, que se despliega en WPS. Sin esta validación, cualquier página web abierta en tu ordenador podría conectarse directamente a este puerto y hacerse pasar por el complemento o el panel, usando las herramientas MCP para modificar el documento que estás editando. No es un riesgo teórico: los navegadores no aplican restricciones de mismo origen a las conexiones WebSocket.

Resumen de la arquitectura

  • addin/ — complemento JS de WPS: ribbon.xml (cinta), main.js (puente del modelo de objetos), taskpane.html (UI del panel de chat)

  • server/bridge.js — puente local WebSocket/HTTP, el nexo entre el complemento y el servidor MCP

  • server/agent.js — maneja el WS /agent del panel de chat; usa query() del Claude Agent SDK para impulsar la conversación

  • server/tools.js + server/index.js — servidor MCP (stdio) que reenvía las llamadas a herramientas wps_word_*/wps_et_*/wps_wpp_* a la capa puente

server/index.js detecta automáticamente si el puerto está ocupado: si el 58892 ya está siendo usado por una instancia residente, se convierte en un relé stdio ligero y reenvía las llamadas a herramientas, en lugar de disputarse el puerto; así, los procesos hijo del servidor MCP que el propio Agent SDK lanza no entran en conflicto con el servicio residente.

Desarrollo

npm test   # node --test,全仓库单测

TDD estricto: antes de cambiar el comportamiento, escribe una prueba que falle. Toda la lógica pura (gestión de session/host, acumuladores de streaming, etc.) se ha extraído en módulos independientes de DOM/WS para facilitar las pruebas unitarias; el código de pegamento WS/DOM se mantiene delgado y se revisa manualmente.

Limitaciones conocidas

  • Por ahora solo se admite WPS Office para macOS, y se asume que está instalado en la ruta estándar de Container.

  • No se ha implementado el escenario multiusuario: cada usuario debe instalar e iniciar sesión en la CLI de claude por su cuenta; Draftly no ofrece autenticación/facturación centralizada.

  • El nombre de marca "Draftly" es un nombre provisional; antes de una publicación oficial se recomienda verificar la disponibilidad de la marca.

Licencia

GPL-3.0. Las versiones modificadas basadas en este proyecto también deben publicarse como código abierto bajo GPL-3.0 al redistribuirse.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    -
    quality
    A
    maintenance
    A local MCP server that lets Claude, Cursor, Codex, or any MCP client work with Office documents on your Mac: evaluate spreadsheet formulas, read/write XLSX and PPTX, extract structured DOCX content, and merge/split/protect PDFs. 100% local, no network calls, no account. 14 tools.
    MIT

View all related MCP servers

Related MCP Connectors

  • Generate PDFs from templates via AI chat. Works with Claude, ChatGPT, Cursor, and any MCP client.

  • AI document editing for agents: draft, edit, export .docx/PDF. 37 MCP tools; agent self-signup.

  • A personal RAG database you build from chat, so AI creates work that sounds like you.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Antares422/draftly-wps'

If you have feedback or need assistance with the MCP directory API, please join our Discord server