docx-mcp

Lee y edita documentos de Word (.docx) con control de cambios, comentarios, notas al pie y validación estructural. 18 herramientas con validación de paraId a nivel OOXML y auditoría de documentos.

Documentación

docx-mcp

PyPI Python License: MIT CI Coverage Sponsor SafeSkill 91/100

docx-mcp MCP server

Dale a tu agente de IA la capacidad de crear, leer y editar documentos de Word. Las ediciones aparecen como cambios controlados en Microsoft Word — tachado rojo para eliminaciones, subrayado verde para inserciones — y después de cualquier sesión de revisión, tu agente puede generar un registro de cambios listo para enviar por correo que enumera cada inserción, eliminación y reemplazo. O compara dos archivos separados para obtener el mismo resultado automáticamente.

Para Quién Es Esto

Profesionales que producen entregables en Word y quieren que su agente de IA maneje el trabajo documental directamente:

  • Legal — revisión de contratos con marcas de cambios, reemplazo de cláusulas por lotes en plantillas, anotaciones de comentarios que explican cada cambio, gestión de notas al pie
  • Seguridad y Pruebas de Penetración — generar informes de pentest a partir de hallazgos en markdown, fusionar apéndices de múltiples compromisos, añadir comentarios de resumen ejecutivo, eliminar marcas de agua DRAFT antes de la entrega
  • Consultoría — crear propuestas y SOW a partir de plantillas, convertir notas de reuniones en entregables formateados, actualizar términos de pago en masa en conjuntos de documentos
  • Cumplimiento y Auditoría — validación estructural de la integridad del documento, verificación de referencias cruzadas, auditorías de nivel de encabezados, aplicación de protección

Qué Puedes Pedirle a Tu Agente Que Haga

Revisar un contrato:

"Abre contract.docx, encuentra cada instancia de 'Net 30', cámbiala a 'Net 60', y añade un comentario en cada una explicando que se actualizó según la Enmienda 3. Guarda como contract_revised.docx."

Generar un informe desde markdown:

"Convierte mi pentest-findings.md a un documento de Word usando la plantilla de informe del cliente. Añade notas al pie para cada referencia CVE."

Editar por lotes una biblioteca de plantillas:

"Abre la plantilla MSA, reemplaza 'ACME Corp' con 'GlobalTech Inc' en todas partes, actualiza la fecha de vigencia en el encabezado, y establece la protección del documento solo para cambios controlados."

Auditar un documento antes de enviarlo:

"Abre el entregable final, ejecuta una auditoría estructural, verifica si hay marcadores DRAFT o TODO, valida todas las referencias cruzadas de notas al pie, y elimina cualquier marca de agua."

Tu agente maneja todo el flujo de trabajo — abrir el archivo, navegar la estructura, hacer ediciones precisas con historial de revisión completo, validar la integridad y guardar — mientras tú te concentras en el contenido.

Instalación

Claude Code (recomendado):

claude mcp add docx-mcp -- uvx docx-mcp-server

Eso es todo. Una skill complementaria se instala automáticamente la primera vez que se inicia el servidor, enseñando a Claude el flujo de trabajo de edición de documentos, las trampas de OOXML y la lista de verificación de auditoría. Se actualiza automáticamente en cada actualización.

Otras plataformas y métodos de instalación

Claude Desktop:

Añade a tu configuración de MCP:

{
  "mcpServers": {
    "docx-mcp": {
      "command": "uvx",
      "args": ["docx-mcp-server"]
    }
  }
}

Cursor / Windsurf / VS Code:

Añade a tu archivo de configuración de MCP:

{
  "mcpServers": {
    "docx-mcp": {
      "command": "uvx",
      "args": ["docx-mcp-server"]
    }
  }
}

OpenClaw:

mcpServers:
  docx-mcp:
    command: uvx
    args:
      - docx-mcp-server

Con pip:

pip install docx-mcp-server

Capacidades

CapacidadLo que tu agente puede hacer
Crear documentosEmpezar en blanco, desde una plantilla .dotx, o desde markdown — encabezados, tablas, listas, imágenes, notas al pie, bloques de código, tipografía inteligente
Cambios controladosInsertar, eliminar y reemplazar texto como revisiones controladas — inserciones subrayadas, eliminaciones con tachado rojo. Pasa tracked=False a cualquier herramienta de edición para escribir el cambio directamente sin marcas de revisión. Aceptar o rechazar cambios por autor.
Registro de cambiosDespués de editar con cambios controlados, llama a generate_change_summary para obtener un .txt numerado que enumera cada inserción, eliminación y reemplazo. O usa diff_to_text para comparar dos archivos separados y obtener el mismo resultado automáticamente — útil para versiones de documentos que no editaste tú mismo.
ComentariosAñadir comentarios anclados a párrafos específicos, responder a hilos de comentarios
Buscar y reemplazarBuscar por texto o regex en cuerpo, notas al pie y comentarios — luego hacer ediciones específicas
TablasCrear tablas, modificar celdas, añadir o eliminar filas — todo con seguimiento de revisiones
Notas al pie y notas finalesAñadir, listar y validar referencias cruzadas
FormatoNegrita, cursiva, subrayado, color — con seguimiento de revisiones para que los cambios de formato sean visibles
Encabezados y pies de páginaLeer y editar contenido de encabezados/pies de página con cambios controlados
ImágenesListar imágenes incrustadas, insertar nuevas con dimensiones especificadas
Secciones y diseñoSaltos de página, saltos de sección, tamaño de página, orientación, márgenes
Referencias cruzadasHipervínculos internos entre párrafos con marcadores
Fusión de documentosCombinar contenido de múltiples archivos DOCX
ProtecciónBloquear documentos solo para cambios controlados, solo lectura o solo comentarios con contraseñas
Auditoría estructuralValidar notas al pie, encabezados, marcadores, imágenes y consistencia interna antes de la entrega
Eliminación de marcas de aguaDetectar y eliminar marcas de agua DRAFT de los encabezados
Limpieza de PII (experimental)Detectar nombres, correos electrónicos, números de teléfono, SSN y más usando Presidio + spaCy NER. Produce redacción XML real — el texto original se elimina permanentemente, reemplazado con un rectángulo negro sólido. No apto para uso en producción — ver limitaciones.

Ejemplo: Revisión de Contrato con Marcas de Cambios

1. open_document("services-agreement.docx")
2. get_headings()                              → see document structure
3. search_text("30 days")                      → find the payment clause
4. delete_text(para_id, "30 days")             → tracked deletion  (red strikethrough)
5. insert_text(para_id, "60 days")             → tracked insertion (green underline)
6. add_comment(para_id, "Extended per client request — see Amendment 3")
7. audit_document()                            → verify structural integrity
8. save_document("services-agreement_redlined.docx")

Abre el resultado en Word y verás exactamente lo que produciría un revisor humano — marcas de revisión, comentarios en el margen, estructura de documento limpia.

Ejemplo: Registro de Cambios Después de una Sesión de Revisión

1. open_document("contract.docx")
2. replace_text(para_id, "30 days", "60 days")           → tracked revision (del + ins)
3. add_comment(para_id, "Extended per Amendment 3")
4. save_document("contract_redlined.docx")
5. generate_change_summary("contract_changes.txt")

La salida de .txt se lee así:

1. REPLACEMENT by Claude on 2026-05-25
   Deleted:  "30 days"
   Inserted: "60 days"

Pégalo en un correo, una descripción de PR o una nota de traspaso.

Ejemplo: Comparar Dos Versiones Separadas de Documentos

No se requiere sesión de edición — apúntalo a dos archivos cualesquiera:

1. diff_to_text("proposal_v1.docx", "proposal_v2.docx")

Devuelve dos archivos:

  • proposal_v1_diff.docx — ábrelo en Word para ver los cambios controlados en línea
  • proposal_v1_diff.txt — resumen en texto plano, listo para pegar en cualquier lugar

Ejemplo: Informe de Pentest desde Markdown

1. create_from_markdown("pentest-report.docx",
       md_path="findings.md",
       template_path="client-template.dotx")
2. audit_document()                            → verify integrity
3. save_document()                             → ready for delivery

Tus hallazgos en markdown — encabezados, tablas de hosts afectados, bloques de código con salida de prueba de concepto, clasificaciones de severidad — se convierten en un documento de Word formateado que coincide con la plantilla del cliente. La tipografía inteligente se aplica automáticamente (comillas curvas, guiones largos, elipsis correctas).

Limpieza de PII (Experimental)

Esta función es experimental y NO es adecuada para uso en producción ni como único control para documentos privilegiados, regulados o legalmente sensibles.

scrub_pii usa Microsoft Presidio con un modelo NER de spaCy (en_core_web_lg, ~560 MB, descargado en la primera llamada) para detectar y redactar permanentemente información personal. Los tramos redactados se reemplazan con rectángulos DrawingML negros sólidos — el texto original se elimina del XML, no solo se oculta.

Lo que detecta de forma fiable (mediante coincidencia de patrones/regex, alta confianza):

  • Direcciones de correo electrónico, números de teléfono, números de tarjetas de crédito, SSN, IBAN, direcciones IP, números de pasaporte de EE. UU.

Lo que detecta estadísticamente (mediante NER, tendrá fallos):

  • Nombres de personas, nombres de organizaciones, ubicaciones, fechas

Brechas conocidas de NER — estos se omitirán:

  • Nombres en MAYÚSCULAS (común en libros de contabilidad, encabezados de tablas, designaciones de partes legales)
  • Nombres de un solo token sin contexto circundante
  • Nombres no ingleses (los patrones de nombres árabes, CJK y africanos tienen baja recuperación en este modelo inglés)
  • Nombres incrustados en texto legal estándar (Lender: Jane Doe, Authorized Signatory: John Smith)

Flujo de trabajo recomendado:

1. open_document("sensitive.docx")
2. scrub_pii(dry_run=True)             → review detected entities — check for misses
3. scrub_pii("sensitive_redacted.docx") → produce redacted copy
4. open the output in Word and verify manually before sharing

Trata siempre la salida como un primer paso que requiere revisión humana, no como una redacción terminada.

Cómo Funciona

Un archivo .docx es un archivo ZIP de archivos XML. Este servidor desempaqueta el archivo, edita el XML directamente y lo vuelve a empaquetar. Esto es lo que le da la capacidad de producir cambios controlados reales, comentarios y notas al pie — cosas que las bibliotecas de documentos de nivel superior no pueden hacer.

Cada edición se valida contra la especificación OOXML antes de guardar, detectando problemas como notas al pie huérfanas, IDs internos duplicados y referencias cruzadas rotas que de otro modo harían que Word "repare" (y reescriba silenciosamente) tu documento.

Inventario completo de herramientas (más de 200 herramientas)

Ciclo de Vida del Documento

HerramientaDescripción
open_documentAbrir un archivo .docx para lectura y edición
create_documentCrear un nuevo .docx en blanco (o desde una plantilla .dotx)
create_from_markdownCrear un .docx desde Markdown con sabor GitHub
close_documentCerrar el documento actual y limpiar
get_document_infoObtener estadísticas generales (párrafos, encabezados, notas al pie, comentarios)
save_documentGuardar cambios de vuelta a .docx (puede sobrescribir o guardar en una nueva ruta)

Lectura

HerramientaDescripción
get_headingsObtener estructura de encabezados con niveles y texto
search_textBuscar en cuerpo, notas al pie y comentarios (texto o regex)
get_paragraphObtener texto completo y estilo de un párrafo

Cambios Controlados

HerramientaDescripción
insert_textInsertar texto como revisión controlada (subrayado en Word) — o directamente con tracked=False
delete_textMarcar texto como eliminado (tachado rojo en Word) — o eliminar directamente con tracked=False
replace_textReemplazar texto como par del+ins controlado — o directamente con tracked=False
modify_cellModificar una celda de tabla — controlado por defecto, tracked=False para escrituras directas
edit_header_footerEditar texto de encabezado/pie de página — controlado por defecto, tracked=False para escrituras directas
set_formattingAplicar negrita/cursiva/subrayado/color con marcado de cambios controlados
set_track_changesActivar o desactivar la bandera de grabación de cambios controlados integrada de Word
get_tracked_changesListar todos los cambios controlados pendientes (autor, fecha, tipo, texto)
accept_changesAceptar cambios controlados, opcionalmente filtrados por autor
reject_changesRechazar cambios controlados, opcionalmente filtrados por autor

Registro de Cambios

HerramientaDescripción
generate_change_summaryExportar todos los cambios controlados en el documento abierto como un archivo .txt numerado — inserciones, eliminaciones y pares del+ins adyacentes agrupados como reemplazos
compare_documentsComparar dos archivos DOCX y producir un DOCX con cambios controlados (abrible en Word)
diff_to_textComparar dos archivos DOCX y producir tanto un DOCX con cambios controlados como un resumen .txt en texto plano

Tablas

HerramientaDescripción
get_tablesObtener todas las tablas con recuentos de filas/columnas y contenido de celdas
add_tableInsertar una nueva tabla después de un párrafo
modify_cellModificar una celda de tabla con cambios controlados
add_table_rowAñadir una fila a una tabla
delete_table_rowEliminar una fila de tabla con cambios controlados

Listas

HerramientaDescripción
add_listAplicar formato de lista con viñetas o numerada a párrafos

Comentarios

HerramientaDescripción
get_commentsListar todos los comentarios con ID, autor, fecha y texto
add_commentAñadir un comentario anclado a un párrafo
reply_to_commentResponder a un comentario existente (en hilo)

Notas al Pie y Notas Finales

HerramientaDescripción
get_footnotesListar todas las notas al pie con ID y texto
add_footnoteAñadir una nota al pie con referencia en superíndice
validate_footnotesValidar referencias cruzadas de notas al pie
get_endnotesListar todas las notas finales con ID y texto
add_endnoteAñadir una nota final con referencia en superíndice
validate_endnotesValidar referencias cruzadas de notas finales

Encabezados, Pies de Página y Estilos

HerramientaDescripción
get_headers_footersObtener todos los encabezados y pies de página con contenido de texto
edit_header_footerEditar texto de encabezado/pie de página con cambios controlados
get_stylesObtener todos los estilos definidos

Propiedades e Imágenes

HerramientaDescripción
get_propertiesObtener propiedades principales del documento (título, creador, fechas)
set_propertiesEstablecer propiedades principales del documento
get_imagesObtener todas las imágenes incrustadas con dimensiones
insert_imageInsertar una imagen después de un párrafo

Secciones y referencias cruzadas

HerramientaDescripción
add_page_breakInsertar un salto de página después de un párrafo
add_section_breakAgregar un salto de sección (nextPage, continuous, evenPage, oddPage)
set_section_propertiesEstablecer tamaño de página, orientación y márgenes
add_cross_referenceAgregar un enlace de referencia cruzada entre párrafos

Protección y combinación

HerramientaDescripción
set_document_protectionEstablecer protección del documento con contraseña opcional
merge_documentsCombinar contenido de otro DOCX

Validación y auditoría

HerramientaDescripción
validate_paraidsVerificar unicidad de ID internos en todas las partes del documento
remove_watermarkEliminar marcas de agua VML de los encabezados del documento
audit_documentAuditoría estructural integral

Requisitos

  • Python 3.10+
  • Funciona en macOS, Linux y Windows

Política de privacidad · Términos de servicio · © 2026 Security Ronin Ltd