Microsoft Word

Crear, leer y manipular documentos de Microsoft Word.

Documentación

Office-Word-MCP-Server

smithery badge

Un servidor de Protocolo de Contexto de Modelo (MCP) para crear, leer y manipular documentos de Microsoft Word. Este servidor permite a los asistentes de IA trabajar con documentos de Word a través de una interfaz estandarizada, proporcionando capacidades avanzadas de edición de documentos.

Office Word Server MCP server

Descripción general

Office-Word-MCP-Server implementa el Protocolo de Contexto de Modelo para exponer operaciones de documentos de Word como herramientas y recursos. Sirve como puente entre los asistentes de IA y los documentos de Microsoft Word, permitiendo la creación de documentos, adición de contenido, formato y análisis.

El servidor cuenta con una arquitectura modular que separa las responsabilidades en funcionalidad principal, herramientas y utilidades, lo que lo hace altamente mantenible y extensible para futuras mejoras.

Ejemplo

Prompt

image

Salida

image

Características

Gestión de documentos

  • Crear nuevos documentos de Word con metadatos
  • Extraer texto y analizar la estructura del documento
  • Ver propiedades y estadísticas del documento
  • Listar documentos disponibles en un directorio
  • Crear copias de documentos existentes
  • Combinar múltiples documentos en un solo documento
  • Convertir documentos de Word a formato PDF

Creación de contenido

  • Añadir encabezados con diferentes niveles y formato directo (fuente, tamaño, negrita, cursiva, bordes)
  • Insertar párrafos con estilo opcional y formato directo (fuente, tamaño, negrita, cursiva, color)
  • Crear tablas con datos personalizados
  • Añadir imágenes con escalado proporcional
  • Insertar saltos de página
  • Insertar listas con viñetas y numeradas con formato XML adecuado
  • Añadir notas al pie y notas finales a los documentos
  • Convertir notas al pie en notas finales
  • Personalizar el estilo de notas al pie y notas finales
  • Crear diseños de tabla profesionales para documentación técnica
  • Diseñar cuadros de llamada y contenido formateado para materiales instructivos
  • Construir tablas de datos estructuradas para informes empresariales con estilo consistente
  • Insertar contenido relativo a texto existente o índices de párrafo

Formato de texto enriquecido

  • Formatear secciones de texto específicas (negrita, cursiva, subrayado)
  • Cambiar el color del texto y las propiedades de la fuente
  • Aplicar estilos personalizados a elementos de texto
  • Buscar y reemplazar texto en todo el documento
  • Formato de texto individual de celdas dentro de tablas
  • Múltiples combinaciones de formato para mayor atractivo visual
  • Personalización de fuentes con control de familia y tamaño
  • Formato directo durante la creación de contenido (párrafos y encabezados)
  • Reducir llamadas a funciones combinando la creación de contenido con el formato
  • Añadir bordes a los encabezados de sección para separación visual

Formato de tablas

  • Formatear tablas con bordes y estilos
  • Crear filas de encabezado con formato distintivo
  • Aplicar sombreado de celdas y bordes personalizados
  • Estructurar tablas para una mejor legibilidad
  • Sombreado de fondo individual de celdas con soporte de color
  • Colores alternos en filas para mejorar la legibilidad
  • Resaltado mejorado de filas de encabezado con colores personalizados
  • Formato de texto de celdas con negrita, cursiva, subrayado, color, tamaño de fuente y familia de fuente
  • Soporte integral de colores con colores nombrados y códigos de color hexadecimales
  • Gestión de relleno de celdas con control independiente de todos los lados
  • Alineación de celdas (posicionamiento horizontal y vertical)
  • Fusión de celdas (horizontal, vertical y áreas rectangulares)
  • Gestión del ancho de columnas con múltiples unidades (puntos, porcentaje, ajuste automático)
  • Capacidades de ajuste automático para dimensionamiento dinámico de columnas
  • Soporte de tablas de llamada profesionales con celdas de iconos y contenido con estilo

Manipulación avanzada de documentos

  • Eliminar párrafos
  • Insertar contenido relativo a texto específico o índices de párrafo
  • Insertar listas con viñetas y numeradas con estructura de numeración XML adecuada
  • Insertar encabezados y párrafos antes o después de ubicaciones objetivo
  • Crear estilos de documento personalizados
  • Aplicar formato consistente en todo el documento
  • Formatear rangos específicos de texto con control detallado
  • Unidades de relleno flexibles con soporte para medidas basadas en puntos y porcentajes
  • Presentación de tablas clara y legible con alineación y espaciado adecuados

Protección de documentos

  • Añadir protección con contraseña a los documentos
  • Implementar edición restringida con secciones editables
  • Añadir firmas digitales a los documentos
  • Verificar la autenticidad e integridad del documento

Extracción de comentarios

  • Extraer todos los comentarios de un documento
  • Filtrar comentarios por autor
  • Obtener comentarios para párrafos específicos
  • Acceder a los metadatos de los comentarios (autor, fecha, texto)

Instalación

Instalación mediante Smithery

Para instalar Office Word Document Server para Claude Desktop automáticamente mediante Smithery:

npx -y @smithery/cli install @GongRzhe/Office-Word-MCP-Server --client claude

Requisitos previos

  • Python 3.8 o superior
  • Gestor de paquetes pip

Instalación básica

# Clone the repository
git clone https://github.com/GongRzhe/Office-Word-MCP-Server.git
cd Office-Word-MCP-Server

# Install dependencies
pip install -r requirements.txt

Uso del script de configuración

Alternativamente, puede utilizar el script de configuración proporcionado, que se encarga de:

  • Verificar los requisitos previos
  • Configurar un entorno virtual
  • Instalar dependencias
  • Generar la configuración de MCP
python setup_mcp.py

Uso con Claude for Desktop

Configuración

Método 1: Después de la instalación local

  1. Después de la instalación, añada el servidor a su archivo de configuración de Claude for Desktop:
{
  "mcpServers": {
    "word-document-server": {
      "command": "python",
      "args": ["/path/to/word_mcp_server.py"]
    }
  }
}

Método 2: Sin instalación (usando uvx)

  1. También puede configurar Claude for Desktop para usar el servidor sin instalación local utilizando el gestor de paquetes uvx:
{
  "mcpServers": {
    "word-document-server": {
      "command": "uvx",
      "args": ["--from", "office-word-mcp-server", "word_mcp_server"]
    }
  }
}
  1. Ubicaciones de los archivos de configuración:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Reinicie Claude for Desktop para cargar la configuración.

Operaciones de ejemplo

Una vez configurado, puede pedir a Claude que realice operaciones como:

  • "Crear un nuevo documento llamado 'report.docx' con una portada"
  • "Añadir un encabezado y tres párrafos a mi documento"
  • "Añadir mi nombre en Helvetica 36pt en negrita en la parte superior del documento"
  • "Añadir un encabezado de sección 'Resumen' en Helvetica 14pt en negrita con borde inferior"
  • "Añadir un párrafo en Times New Roman 14pt con texto en cursiva azul"
  • "Insertar una lista con viñetas después del párrafo que contiene 'Introducción'"
  • "Insertar una lista numerada con los elementos: 'Primer paso', 'Segundo paso', 'Tercer paso'"
  • "Añadir viñetas después del encabezado 'Resumen'"
  • "Insertar una tabla de 4x4 con datos de ventas"
  • "Formatear la palabra 'importante' en el párrafo 2 para que esté en negrita y rojo"
  • "Buscar y reemplazar todas las instancias de 'término antiguo' con 'término nuevo'"
  • "Crear un estilo personalizado para los encabezados de sección"
  • "Aplicar formato a la tabla de mi documento"
  • "Extraer todos los comentarios de mi documento"
  • "Mostrarme todos los comentarios de Juan Pérez"
  • "Obtener comentarios para el párrafo 3"
  • "Hacer que el texto en la celda de la tabla (1,2) esté en negrita y azul con fuente de 14pt"
  • "Añadir 10 puntos de relleno a todos los lados de las celdas de encabezado"
  • "Crear una tabla de llamada con un icono de marca de verificación azul y texto blanco"
  • "Establecer el ancho de la primera columna a 50 puntos y ajustar automáticamente las columnas restantes"
  • "Aplicar colores alternos en las filas para que la tabla sea más legible"

Referencia de la API

Creación de documentos y propiedades

create_document(filename, title=None, author=None)
get_document_info(filename)
get_document_text(filename)
get_document_outline(filename)
list_available_documents(directory=".")
copy_document(source_filename, destination_filename=None)
convert_to_pdf(filename, output_filename=None)

Adición de contenido

add_heading(filename, text, level=1, font_name=None, font_size=None,
            bold=None, italic=None, border_bottom=False)
add_paragraph(filename, text, style=None, font_name=None, font_size=None,
              bold=None, italic=None, color=None)
add_table(filename, rows, cols, data=None)
add_picture(filename, image_path, width=None)
add_page_break(filename)

Manipulación avanzada de contenido

# Insert content relative to existing text or paragraph index
insert_header_near_text(filename, target_text=None, header_title=None,
                       position='after', header_style='Heading 1',
                       target_paragraph_index=None)

insert_line_or_paragraph_near_text(filename, target_text=None, line_text=None,
                                   position='after', line_style=None,
                                   target_paragraph_index=None)

# Insert bulleted or numbered lists with proper XML formatting
insert_numbered_list_near_text(filename, target_text=None, list_items=None,
                              position='after', target_paragraph_index=None,
                              bullet_type='bullet')
# bullet_type options:
#   'bullet' - Creates bulleted list with bullets (•)
#   'number' - Creates numbered list (1, 2, 3, ...)

Extracción de contenido

get_document_text(filename)
get_paragraph_text_from_document(filename, paragraph_index)
find_text_in_document(filename, text_to_find, match_case=True, whole_word=False)

Formato de texto

format_text(filename, paragraph_index, start_pos, end_pos, bold=None,
            italic=None, underline=None, color=None, font_size=None, font_name=None)
search_and_replace(filename, find_text, replace_text)
delete_paragraph(filename, paragraph_index)
create_custom_style(filename, style_name, bold=None, italic=None,
                    font_size=None, font_name=None, color=None, base_style=None)

Formato de tablas

format_table(filename, table_index, has_header_row=None,
             border_style=None, shading=None)
set_table_cell_shading(filename, table_index, row_index, col_index, 
                      fill_color, pattern="clear")
apply_table_alternating_rows(filename, table_index, 
                            color1="FFFFFF", color2="F2F2F2")
highlight_table_header(filename, table_index, 
                      header_color="4472C4", text_color="FFFFFF")

# Cell merging tools
merge_table_cells(filename, table_index, start_row, start_col, end_row, end_col)
merge_table_cells_horizontal(filename, table_index, row_index, start_col, end_col)
merge_table_cells_vertical(filename, table_index, col_index, start_row, end_row)

# Cell alignment tools
set_table_cell_alignment(filename, table_index, row_index, col_index,
                        horizontal="left", vertical="top")
set_table_alignment_all(filename, table_index, 
                       horizontal="left", vertical="top")

# Cell text formatting tools
format_table_cell_text(filename, table_index, row_index, col_index,
                      text_content=None, bold=None, italic=None, underline=None,
                      color=None, font_size=None, font_name=None)

# Cell padding tools
set_table_cell_padding(filename, table_index, row_index, col_index,
                      top=None, bottom=None, left=None, right=None, unit="points")

# Column width management
set_table_column_width(filename, table_index, col_index, width, width_type="points")
set_table_column_widths(filename, table_index, widths, width_type="points")
set_table_width(filename, table_index, width, width_type="points")
auto_fit_table_columns(filename, table_index)

Extracción de comentarios

get_all_comments(filename)
get_comments_by_author(filename, author)
get_comments_for_paragraph(filename, paragraph_index)

Solución de problemas

Problemas comunes

  1. Estilos faltantes

    • Algunos documentos pueden carecer de los estilos necesarios para operaciones de encabezados y tablas
    • El servidor intentará crear los estilos faltantes o utilizar formato directo
    • Para mejores resultados, utilice plantillas con estilos estándar de Word
  2. Problemas de permisos

    • Asegúrese de que el servidor tenga permiso para leer/escribir en las rutas de los documentos
    • Utilice la función copy_document para crear copias editables de documentos bloqueados
    • Verifique la propiedad y los permisos de los archivos si las operaciones fallan
  3. Problemas de inserción de imágenes

    • Utilice rutas absolutas para los archivos de imagen
    • Verifique la compatibilidad del formato de imagen (se recomiendan JPEG, PNG)
    • Compruebe el tamaño del archivo de imagen y los permisos
  4. Problemas de formato de tablas

    • Errores de índice de celda: Asegúrese de que los índices de fila y columna estén dentro de los límites de la tabla (indexación basada en 0)
    • Problemas de formato de color: Utilice colores hexadecimales sin el prefijo '#' (por ejemplo, "FF0000" para rojo) o nombres de colores estándar
    • Confusión de unidades de relleno: Especifique "points" o "percent" explícitamente al establecer el relleno de celdas
    • Conflictos de ancho de columna: El ajuste automático puede anular la configuración manual del ancho de columna
    • Persistencia del formato de texto: Aplique el formato de texto de celda después de establecer el contenido de la celda para obtener mejores resultados

Depuración

Habilite el registro detallado estableciendo la variable de entorno:

export MCP_DEBUG=1  # Linux/macOS
set MCP_DEBUG=1     # Windows

Contribuciones

¡Las contribuciones son bienvenidas! No dude en enviar una Solicitud de Extracción (Pull Request).

  1. Haga un fork del repositorio
  2. Cree su rama de características (git checkout -b feature/amazing-feature)
  3. Confirme sus cambios (git commit -m 'Add some amazing feature')
  4. Envíe a la rama (git push origin feature/amazing-feature)
  5. Abra una Solicitud de Extracción

Licencia

Este proyecto está licenciado bajo la Licencia MIT: consulte el archivo LICENSE para obtener más detalles.

Agradecimientos


Nota: Este servidor interactúa con archivos de documentos en su sistema. Verifique siempre que las operaciones solicitadas sean apropiadas antes de confirmarlas en Claude for Desktop u otros clientes MCP.