DOCX MCP Server
DOCX MCP Server
Servidor universal de procesamiento de DOCX que implementa el Protocolo de Contexto de Modelo (MCP) con soporte completo de OOXML.
Características
Soporte completo de OOXML: Lee/escribe todas las partes del documento DOCX (document.xml, estilos, numeración, encabezados/pies de página, etc.)
Operaciones de texto: Extrae, busca y reemplaza texto con modos literales o de expresiones regulares
Edición de tablas: Inserta/elimina filas y columnas, combina celdas, establece contenido de celdas
Etiquetas de datos estructurados (SDT): Obtiene/establece controles de contenido por etiqueta o alias
Imágenes: Lista imágenes, inserta imágenes en línea o ancladas con control de posición/tamaño
Comentarios y cambios: Lista comentarios, agrega/elimina comentarios, acepta todos los cambios controlados
Propiedades del documento: Lee/escribe metadatos (título, autor, asunto, etc.)
Caché LRU: Caché eficiente en memoria de las partes del documento
Transporte Stdio: Comunicación MCP a través de stdin/stdout
Instalación
npm install
npm run buildEjecución
Desarrollo
npm run devProducción
npm startCon Claude Code
claude mcp add --scope user --transport stdio docx -- node /path/to/dist/index.jsHerramientas
Gestión de documentos
docx.open
Abre un documento DOCX desde archivo o base64
{
"docId": "uuid",
"parts": ["word/document.xml", "word/styles.xml", ...],
"partCount": 42,
"props": { "core": {...}, "app": {...} }
}docx.close
Cierra y descarga un documento
docx.save
Guarda el documento en un archivo o lo devuelve como base64
Gestión de partes
docx.list_parts
Lista todas las partes del documento
docx.part_read
Lee el XML sin procesar de una parte específica
docx.part_write
Escribe/actualiza el contenido XML de una parte
Operaciones de texto
docx.get_text
Extrae todo el texto del documento
{
"docId": "uuid",
"scope": "document" | "headers" | "footers" | "all"
}docx.find
Busca texto con contexto
{
"docId": "uuid",
"query": "search term",
"mode": "literal" | "regex"
}docx.replace_text
Reemplaza texto en el documento
{
"docId": "uuid",
"match": "old text",
"replace": "new text",
"mode": "literal" | "regex"
}Tablas
docx.tables_list
Lista todas las tablas con dimensiones
{
"tables": [
{
"xpath": "/w:document/w:body/w:tbl[1]",
"rows": 3,
"colsApprox": 4
}
]
}docx.table_edit
Modifica la estructura y el contenido de la tabla
{
"docId": "uuid",
"tableXPath": "/w:document/w:body/w:tbl[1]",
"op": {
"kind": "setCellText",
"row": 0,
"col": 1,
"text": "new value"
}
}Operaciones:
setCellText(row, col, text)- Establece el contenido de la celdainsertRow(at)- Inserta una fila en la posicióndeleteRow(at)- Elimina una filainsertCol(at)- Inserta una columnadeleteCol(at)- Elimina una columna
Datos estructurados (SDT)
docx.sdt_get
Obtiene el contenido del control de contenido por etiqueta o alias
docx.sdt_put
Actualiza el control de contenido
Imágenes
docx.images_list
Lista todas las imágenes con metadatos
docx.image_add
Inserta una imagen en línea o anclada
Estilos y numeración
docx.styles_get / docx.styles_set
Lee/escribe styles.xml
docx.numbering_get / docx.numbering_set
Lee/escribe numbering.xml
Encabezados/Pies de página
docx.headers_footers_list
Lista todas las partes de encabezado/pie de página
Comentarios
docx.comments_list
Lista todos los comentarios
docx.comments_add
Agrega un nuevo comentario
docx.changes_accept_all
Acepta todos los cambios controlados en el documento
Metadatos
docx.metadata_get
Obtiene las propiedades del documento (título, autor, creado, modificado, etc.)
Escenarios de prueba
1. Lectura/Escritura básica
# Open document
docx.open: { "path": "/path/to/document.docx" }
# Get text
docx.get_text: { "docId": "returned-id" }
# Replace text
docx.replace_text: {
"docId": "returned-id",
"match": "old text",
"replace": "new text"
}
# Save
docx.save: { "docId": "returned-id", "returnBase64": true }2. Manipulación de tablas
# List tables
docx.tables_list: { "docId": "id" }
# Edit cell
docx.table_edit: {
"docId": "id",
"tableXPath": "/w:document/w:body/w:tbl[1]",
"op": { "kind": "setCellText", "row": 0, "col": 0, "text": "Hello" }
}3. Imágenes
# List images
docx.images_list: { "docId": "id" }4. Cambios controlados
# Accept all changes
docx.changes_accept_all: { "docId": "id" }Arquitectura
src/
index.ts # Entry point
errors.ts # Error definitions
logger.ts # Logging utilities
ooxml/
namespaces.ts # XML namespace definitions
emu.ts # EMU conversion utilities
dom.ts # XML DOM utilities (xmldom + fontoxpath)
xmlParser.ts # fast-xml-parser wrapper
parts.ts # DOCX ZIP part management
rels.ts # Relationships management
text.ts # Text extraction & replacement
tables.ts # Table operations
sdt.ts # Structured Data Tags
drawings.ts # Images & DrawingML
headersFooters.ts # Headers/Footers
styles.ts # Style operations
numbering.ts # Numbering operations
changes.ts # Track changes
comments.ts # Comments
store/
types.ts # Type definitions
docStore.ts # Document store + LRU cache
mcp/
schemas.ts # Tool input schemas
tools.ts # Tool implementations
server.ts # MCP server setupDependencias
@modelcontextprotocol/sdk- Implementación de MCPjszip- Manejo de archivos ZIPfast-xml-parser- Análisis XML sin pérdida@xmldom/xmldom- Implementación de DOMfontoxpath- Consultas XPathdiff-match-patch- Diferenciación de textolru-cache- Caché eficiente en memoriauuid- Generación de ID de documento
Notas de rendimiento
Se admiten documentos de hasta 10 MB
Caché LRU con límite de 100 partes y límite de memoria de 1 GB
Las partes se cargan bajo demanda, no completamente en memoria
Optimización de partes sucias: solo las partes modificadas se guardan en el ZIP
Sin copia profunda de estructuras XML
Limitaciones
Encabezados/pies de página: soporte básico (las estructuras de secciones complejas pueden requerir ajuste manual)
Comentarios: lista/agregar/eliminar básico (las cadenas de respuestas no se admiten completamente)
Cambios controlados: aceptar todo disponible; inspección detallada de cambios limitada
Estilos: obtener/establecer XML completo; sin fusión selectiva de estilos
EMU/tamaño: calculado pero la geometría renderizada depende del motor de diseño de Word
Licencia
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Use your own Word templates to convert Markdown → DOCX/PDF/HTML from any MCP-compatible AI.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
MCP-native collaborative markdown editor with real-time AI document editing
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/Mavline/docx-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server