draftly-wps
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 declaudeen esa máquina.
Related MCP server: wps-mcp-server
Instalación
git clone <this-repo>
cd wps-mcp
bash scripts/install.shEl script es idempotente; volver a ejecutarlo tras cambiar el código es el proceso de actualización. Hará lo siguiente:
npm installinstala las dependenciasGenera una clave compartida local (
.bridge-token, ver "Modelo de seguridad" más abajo)Copia los archivos del complemento al directorio de complementos de WPS (
~/Library/Containers/com.kingsoft.wpsoffice.mac/Data/.kingsoft/wps/jsaddons/wps-mcp_)Instala un LaunchAgent de
launchdpara 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:
Reinicia WPS Office por completo (es obligatorio reiniciar en la primera instalación o cuando
ribbon.xmltenga 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 detaskpane.html/main.jsse aplican en caliente automáticamente, sin necesidad de reiniciar)En WPS, busca la pestaña de cinta "WPS-MCP" y haz clic en el botón "Draftly" para abrir el panel lateral.
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 MCPserver/agent.js— maneja el WS/agentdel panel de chat; usaquery()del Claude Agent SDK para impulsar la conversaciónserver/tools.js+server/index.js— servidor MCP (stdio) que reenvía las llamadas a herramientaswps_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
claudepor 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.
This server cannot be installed
Maintenance
Related MCP Servers
- Alicense-qualityDmaintenanceEnables AI assistants to create, read, edit, and manipulate LibreOffice documents with support for track changes, comments, search/replace, and real-time document operations through a native extension or HTTP API.9MIT
- Alicense-qualityDmaintenanceEnables AI agents to natively create and edit WPS Office documents, spreadsheets, and presentations via natural language commands.14MIT
- Alicense-qualityAmaintenanceA 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
- Alicense-qualityCmaintenanceIntegrates AI assistants with WPS Office to automate operations across Writer, Spreadsheets, and Presentations via the MCP protocol.1MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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