Microsoft Word
Crear, leer y manipular documentos de Microsoft Word.
Documentación
Office-Word-MCP-Server
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.
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
Salida
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
- 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)
- 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"]
}
}
}
-
Ubicaciones de los archivos de configuración:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
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
-
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
-
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_documentpara crear copias editables de documentos bloqueados - Verifique la propiedad y los permisos de los archivos si las operaciones fallan
-
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
-
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).
- Haga un fork del repositorio
- Cree su rama de características (
git checkout -b feature/amazing-feature) - Confirme sus cambios (
git commit -m 'Add some amazing feature') - Envíe a la rama (
git push origin feature/amazing-feature) - 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
- Protocolo de Contexto de Modelo por la especificación del protocolo
- python-docx por la manipulación de documentos de Word
- FastMCP por la implementación de MCP en Python
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.