Integrations
Requires Node.js runtime (v18 or later) to execute the MCP server that interfaces with Microsoft Word.
Uses npm for dependency management and running scripts to build and start the Word integration server.
Server built with TypeScript to provide programmatic interaction with Microsoft Word documents through MCP tools.
Servidor de Word de interoperabilidad de MCP Office
Este proyecto implementa un servidor de Protocolo de Contexto de Modelo (MCP) que permite la interacción con documentos de Microsoft Word utilizando interoperabilidad COM en Windows.
Proporciona herramientas MCP para realizar tareas comunes de procesamiento de textos mediante programación.
Características
- Envuelve operaciones comunes de Microsoft Word a través de interoperabilidad COM (
winax
). - Expone la funcionalidad como herramientas MCP.
- Admite transportes
stdio
ysse
para la comunicación MCP. - Creado con TypeScript y utiliza
@modelcontextprotocol/sdk
.
Prerrequisitos
- Node.js (se recomienda v18 o posterior)
- npm
- Microsoft Word instalado en una máquina Windows.
Instalación
- Clonar el repositorio o descargar el código fuente.
- Navegue hasta el directorio del proyecto en su terminal.
- Instalar dependencias:Copy
Edificio
Para compilar el código TypeScript en JavaScript:
Esto enviará los archivos compilados al directorio dist
.
Ejecución del servidor
El servidor puede ejecutarse utilizando dos transportes MCP diferentes: stdio
o sse
.
Transporte de stdio
Este es el modo predeterminado. Es adecuado para clientes locales que se comunican mediante entrada/salida estándar.
o
Conecte su cliente MCP (por ejemplo, MCP Inspector) utilizando el método stdio, apuntando al comando node dist/index.js
.
Transporte SSE (eventos enviados por el servidor)
Este modo utiliza HTTP y eventos enviados por el servidor, adecuados para clientes remotos o basados en la web.
Potencia Shell:
Bash / Cmd:
El servidor iniciará un servidor HTTP, normalmente en el puerto 3001 (o el puerto especificado por la variable de entorno PORT
).
- Punto final de SSE:
http://localhost:3001/sse
- Punto final del mensaje (para POST del cliente):
http://localhost:3001/messages
Conecte su cliente MCP utilizando el método SSE, proporcionando la URL del punto final SSE.
Herramientas disponibles
El servidor expone las siguientes herramientas (los nombres de las herramientas tienen el prefijo word_
):
Operaciones de documentos:
word_createDocument
: crea un nuevo documento de Word en blanco.word_openDocument
: abre un documento existente.filePath
(cadena): ruta absoluta al documento.
word_saveActiveDocument
: guarda el documento actualmente activo.word_saveActiveDocumentAs
: guarda el documento activo en una nueva ruta/formato.filePath
(cadena): ruta absoluta donde guardar.fileFormat
(número, opcional): valor numéricoWdSaveFormat
(por ejemplo, 16 para docx, 17 para pdf).
word_closeActiveDocument
: Cierra el documento activo.saveChanges
(número, opcional): valor deWdSaveOptions
(0=No, -1=Sí, -2=Preguntar). Valor predeterminado: 0.
Manipulación de texto:
word_insertText
: Inserta texto en la selección.text
(cadena): Texto a insertar.
word_deleteText
: elimina el texto relativo a la selección.count
(número, opcional): Número de unidades a eliminar (predeterminado: 1). Positivo=hacia adelante, negativo=hacia atrás.unit
(número, opcional): valor deWdUnits
(1=carácter, 2=palabra, etc.). Valor predeterminado: 1.
word_findAndReplace
: busca y reemplaza texto.findText
(cadena): Texto a buscar.replaceText
(cadena): Texto de reemplazo.matchCase
(booleano, opcional): Predeterminado: falso.matchWholeWord
(booleano, opcional): predeterminado: falso.replaceAll
(booleano, opcional): Predeterminado: verdadero.
word_toggleBold
: alterna el formato de negrita para la selección.word_toggleItalic
: alterna el formato de cursiva para la selección.word_toggleUnderline
: alterna el formato de subrayado para la selección.underlineStyle
(número, opcional): valorWdUnderline
(predeterminado: 1=Único).
Formato de párrafo:
word_setParagraphAlignment
: establece la alineación del párrafo.alignment
(número): valor deWdParagraphAlignment
(0=Izquierda, 1=Centro, 2=Derecha, 3=Justificar).
word_setParagraphLeftIndent
: Establece sangría izquierda.indentPoints
(número): valor de sangría en puntos.
word_setParagraphRightIndent
: Establece sangría derecha.indentPoints
(número): valor de sangría en puntos.
word_setParagraphFirstLineIndent
: Establece la sangría de primera línea/colgante.indentPoints
(número): valor de sangría en puntos (positivo=sangría, negativo=colgante).
word_setParagraphSpaceBefore
: establece el espacio antes de los párrafos.spacePoints
(número): Valor de espacio en puntos.
word_setParagraphSpaceAfter
: Establece espacio después de los párrafos.spacePoints
(número): Valor de espacio en puntos.
word_setParagraphLineSpacing
: Establece el espacio entre líneas.lineSpacingRule
(número): valor deWdLineSpacing
(0=Simple, 1=1,5, 2=Doble, 3=Al menos, 4=Exactamente, 5=Múltiple).lineSpacingValue
(número, opcional): valor necesario para las reglas 3, 4, 5.
Operaciones de tabla:
word_addTable
: Agrega una tabla en la selección.numRows
(número): Número de filas.numCols
(número): Número de columnas.
word_setTableCellText
: establece texto en una celda de la tabla.tableIndex
(número): índice de tabla basado en 1.rowIndex
(número): índice de fila basado en 1.colIndex
(número): índice de columna basado en 1.text
(cadena): Texto a establecer.
word_insertTableRow
: Inserta una fila en una tabla.tableIndex
(número): índice de tabla basado en 1.beforeRowIndex
(número, opcional): insertar antes de este índice de fila basado en 1 (o al final si se omite).
word_insertTableColumn
: inserta una columna en una tabla.tableIndex
(número): índice de tabla basado en 1.beforeColIndex
(número, opcional): insertar antes de este índice de columna basado en 1 (o en el extremo derecho si se omite).
word_applyTableAutoFormat
: aplica un estilo a una tabla.tableIndex
(número): índice de tabla basado en 1.formatName
(cadena | número): Nombre de estilo o valor deWdTableFormat
.
Operaciones de imagen:
word_insertPicture
: inserta una imagen en línea.filePath
(cadena): ruta absoluta al archivo de imagen.linkToFile
(booleano, opcional): Predeterminado: falso.saveWithDocument
(booleano, opcional): Predeterminado: verdadero.
word_setInlinePictureSize
: cambia el tamaño de una imagen en línea.shapeIndex
(número): índice basado en 1 de la forma en línea.heightPoints
(número): Altura en puntos (-1 o 0 para ajustar el tamaño automáticamente).widthPoints
(número): Ancho en puntos (-1 o 0 para ajustar el tamaño automáticamente).lockAspectRatio
(booleano, opcional): Predeterminado: verdadero.
Operaciones de encabezado/pie de página:
word_setHeaderFooterText
: Establece texto en un encabezado o pie de página.text
(cadena): Contenido del texto.isHeader
(booleano): Verdadero para el encabezado, falso para el pie de página.sectionIndex
(número, opcional): índice de sección basado en 1 (predeterminado: 1).headerFooterType
(número, opcional): valor deWdHeaderFooterIndex
(1=Principal, 2=Primera página, 3=Páginas pares). Valor predeterminado: 1.
Operaciones de configuración de página:
word_setPageMargins
: establece los márgenes de la página.topPoints
(número): Margen superior en puntos.bottomPoints
(número): Margen inferior en puntos.leftPoints
(número): Margen izquierdo en puntos.rightPoints
(número): Margen derecho en puntos.
word_setPageOrientation
: establece la orientación de la página.orientation
(número): valor deWdOrientation
(0=Vertical, 1=Horizontal).
word_setPaperSize
: Establece el tamaño del papel.paperSize
(número): valor deWdPaperSize
(por ejemplo, 1=Carta, 8=A4).
Notas
- Este servidor requiere que Microsoft Word esté instalado y sea accesible a través de COM Interop en la máquina donde se ejecuta el servidor.
- La gestión de errores en operaciones COM es básica. Un uso robusto en producción podría requerir una comprobación y recuperación de errores más detallada.
- Las constantes del modelo de objetos de Word (como
WdSaveFormat
,WdUnits
, etc.) se representan mediante sus valores numéricos en los argumentos de la herramienta. Puede que necesite consultar la documentación de VBA de Word para obtener valores específicos.
This server cannot be installed
Un servidor MCP que permite la interacción programática con documentos de Microsoft Word en Windows a través de interoperabilidad COM, lo que permite operaciones como creación de documentos, manipulación de texto, formato y gestión de tablas.