Microsoft Office (PowerPoint & Excel)

Automatice Microsoft PowerPoint y Excel en Windows mediante automatización COM impulsada por IA.

Documentación

Servidores MCP de Microsoft Office

Este repositorio contiene servidores de Model Context Protocol (MCP) para interactuar con aplicaciones de Microsoft Office mediante asistencia de IA. Aplicaciones actualmente compatibles:

  • PowerPoint: Crear y manipular presentaciones
  • Excel: Interactuar con libros y hojas de cálculo

Ambos servidores utilizan pywin32 para automatización COM, lo que permite la interacción directa con aplicaciones de Office en ejecución.

Requisitos previos

  • Sistema operativo Windows
  • Microsoft Office instalado (PowerPoint y/o Excel)
  • Python 3.7+
  • Paquete pywin32

Instalación

  1. Clona el repositorio:
git clone https://github.com/jenstangen1/mcp-pptx.git
cd mcp-pptx
  1. Instala las dependencias usando uv:
uv pip install pywin32
  1. Ejecuta el script post-instalación de pywin32 con privilegios de administrador:
python C:\path\to\your\env\Scripts\pywin32_postinstall.py -install

Configuración con Claude

Para integrar estos servidores MCP con Claude, añade la siguiente configuración a la configuración de tu aplicación Claude Desktop:

{
    "mcpServers": {
        "powerpoint_mcp_win32": {
            "command": "uv",
            "args": [
                "run",
                "mcp_powerpoint_server_win32.py"
            ],
            "cwd": "C:\\path\\to\\your\\workspace"
        },
        "excel_mcp_win32": {
            "command": "uv",
            "args": [
                "run",
                "mcp_excel_server_win32.py"
            ],
            "cwd": "C:\\path\\to\\your\\workspace"
        }
    }
}

Nota: Reemplaza C:\\path\\to\\your\\workspace con la ruta real de tu espacio de trabajo.

Servidor MCP de PowerPoint

El servidor de PowerPoint proporciona una API completa para que los modelos de IA interactúen con presentaciones de PowerPoint, con soporte para formato avanzado, gráficos financieros e integración de datos.

Características

Gestión de presentaciones

  • Crear y modificar presentaciones de PowerPoint
  • Añadir, eliminar y modificar diapositivas
  • Guardar y cargar presentaciones desde el espacio de trabajo
  • Sistema de gestión de plantillas

Operaciones con elementos

  • Control detallado sobre elementos de diapositivas (texto, formas, imágenes, gráficos)
  • Creación y estilo avanzado de formas
  • Posicionamiento y agrupación de elementos
  • Líneas de conexión entre formas

Integración financiera

  • Crear gráficos financieros (líneas, barras, columnas, circulares, cascada, etc.)
  • Generar tablas comparativas
  • Soporte para diversas métricas financieras:
    • Ingresos
    • EBITDA
    • Beneficios
    • Activos
    • Patrimonio
    • Tasas de crecimiento
    • Márgenes
  • Actualmente utiliza datos simulados, con planes de integrar la API de Proff para datos de empresas noruegas
  • Adaptable a otros proveedores de datos financieros mediante personalización de la API

Estilo y formato

  • Formato de texto enriquecido
  • Estilo de formas (rellenos, degradados, contornos)
  • Personalización de gráficos
  • Colores de fondo y efectos

Nota: Es posible que necesites modificar la ruta del directorio para que coincida con tu ubicación de instalación.

Herramientas MCP disponibles

Gestión de presentaciones

  • list_presentations: Listar todos los archivos de PowerPoint en el espacio de trabajo
  • upload_presentation: Subir una nueva presentación al espacio de trabajo
  • save_presentation: Guardar la presentación actual

Operaciones con diapositivas

  • add_slide: Añadir una nueva diapositiva a la presentación
  • delete_slide: Eliminar una diapositiva de la presentación
  • get_slide_count: Obtener el número total de diapositivas en la presentación
  • analyze_slide: Analizar el contenido de una diapositiva
  • set_background_color: Establecer el color de fondo de una diapositiva

Operaciones con elementos

  • add_text: Añadir texto a una diapositiva
  • add_shape: Añadir una forma a una diapositiva
  • edit_element: Editar las propiedades de un elemento
  • style_element: Aplicar estilo a un elemento
  • connect_shapes: Conectar dos formas con un conector
  • find_element: Buscar elementos en una diapositiva según criterios

Herramientas financieras

  • get_company_financials: Obtener datos financieros de una empresa (actualmente devuelve datos simulados)
  • create_financial_chart: Crear un gráfico financiero en una diapositiva
  • create_comparison_table: Crear una tabla comparativa para empresas

Nota: Las herramientas financieras actualmente utilizan datos simulados. Las versiones futuras planean integrarse con la API de Proff para la obtención automática de datos de empresas noruegas. Los usuarios pueden modificar el código para conectarse con proveedores de datos financieros locales o preferidos.

Operaciones con plantillas

  • list_templates: Listar todas las plantillas disponibles
  • apply_template: Aplicar una plantilla a una presentación
  • create_slide_from_template: Crear una nueva diapositiva a partir de una plantilla
  • save_as_template: Guardar una diapositiva como plantilla

Herramientas de depuración

  • debug_element_mappings: Herramienta de depuración para inspeccionar las asignaciones de elementos de una diapositiva

Uso

Interactuar con Claude

Una vez que hayas configurado los servidores MCP en tu aplicación Claude Desktop, puedes interactuar con PowerPoint y Excel mediante comandos en lenguaje natural. Aquí tienes algunos ejemplos:

Ejemplos de PowerPoint

You: Create a new slide with a title "Market Analysis" and add a bar chart showing revenue growth.

Claude: I'll help you create that slide with the title and chart. I'll:
1. Add a new slide
2. Add the title text
3. Create a revenue chart

[Claude will then use the MCP tools in sequence:
- add_slide
- add_text
- create_financial_chart]

You: Make the title bigger and change its color to blue.

Claude: I'll modify the title's formatting.
[Claude will use:
- find_element (to locate the title)
- edit_element (to update the formatting)]

You: Add a comparison table below the chart comparing three companies.

Claude: I'll add a comparison table below the existing chart.
[Claude will use:
- create_comparison_table]

Ejemplos de Excel

You: Open the Q4 report and show me the revenue numbers from cells B2 to B5.

Claude: I'll help you retrieve those revenue figures.
[Claude will use:
- list_open_workbooks (to find the workbook)
- get_range_values (to read the specified cells)]

You: Calculate the sum of these numbers and put it in cell B6.

Claude: I'll calculate the sum and write it to B6.
[Claude will use:
- get_range_values (to get the numbers)
- set_cell_value (to write the sum)]

You: Create a new sheet called "Summary" and copy these values there.

Claude: I'll create a new sheet and copy the data.
[Claude will use:
- add_worksheet
- get_range_values (from source)
- set_range_values (to destination)]

Cómo funciona

  1. Comprensión del lenguaje natural

    • Claude interpreta tus solicitudes y las descompone en acciones específicas
    • Comprende el contexto de interacciones anteriores
    • Puede manejar operaciones complejas de varios pasos
  2. Selección de herramientas

    • Claude selecciona automáticamente las herramientas MCP adecuadas para cada tarea
    • Puede encadenar múltiples herramientas para operaciones complejas
    • Maneja casos de error y proporciona retroalimentación
  3. Gestión del contexto

    • Claude mantiene el contexto sobre:
      • Archivos abiertos actualmente
      • Operaciones recientes
      • Elementos seleccionados
      • Preferencias del usuario
  4. Manejo de errores

    • Si una operación falla, Claude:
      • Explicará qué salió mal
      • Sugerirá alternativas
      • Ayudará a solucionar problemas comunes

Mejores prácticas

  1. Sé específico

    • Menciona los números de diapositiva cuando sea relevante
    • Especifica rangos exactos de celdas en Excel
    • Describe claramente el formato deseado
  2. Operaciones complejas

    • Divide solicitudes complejas en pasos
    • Confirma resultados intermedios
    • Solicita ajustes según sea necesario
  3. Solución de problemas

    • Asegúrate de que PowerPoint/Excel esté en ejecución
    • Verifica los permisos de archivos
    • Confirma que la automatización COM esté funcionando
    • Ejecuta pywin32_postinstall.py si es necesario

Flujos de trabajo de ejemplo

Crear una presentación financiera

You: Create a new presentation about Q4 financial results.
Claude: I'll create a new presentation with a title slide.

You: Add revenue charts for the last 4 quarters.
Claude: I'll create a new slide with a chart showing quarterly revenue.

You: Now add a comparison with our competitors.
Claude: I'll add a comparison table with key metrics for you and competitors.

Analizar datos de Excel

You: Show me all sheets in the Q4 analysis workbook.
Claude: I'll list all worksheets in that workbook.

You: Find the highest revenue value in column B.
Claude: I'll scan column B and find the maximum value.

You: Create a summary of the top 5 values.
Claude: I'll create a new sheet with the top 5 revenue figures.

Estructura de directorios

pptx-mcp/
├── mcp_powerpoint_server.py  # Main server implementation
├── requirements.txt          # Python dependencies
├── presentations/           # Workspace for presentations
│   └── templates/          # Template storage
└── README.md               # This file

Dependencias

  • python-pptx: Manipulación de archivos de PowerPoint
  • Pillow: Procesamiento de imágenes
  • numpy: Operaciones numéricas
  • MCP SDK: Implementación del Model Context Protocol

Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar una solicitud de extracción (Pull Request).

Licencia

Este proyecto está licenciado bajo la Licencia MIT; consulta el archivo LICENSE para más detalles.

Servidor MCP de Excel

El servidor de Excel proporciona herramientas para interactuar con libros de Excel, hojas de cálculo y datos de celdas mediante asistencia de IA.

Características

Gestión de libros

  • Conectarse a instancias de Excel en ejecución
  • Listar libros abiertos
  • Guardar libros en varios formatos (.xlsx, .xlsm, .xlsb, .xls)

Operaciones con hojas de cálculo

  • Listar hojas de cálculo en un libro
  • Añadir nuevas hojas de cálculo
  • Acceder a hojas de cálculo por nombre o índice

Operaciones con celdas y rangos

  • Leer y escribir valores de celdas individuales
  • Obtener y establecer valores para rangos de celdas
  • Manejar varios tipos de datos (texto, números, fechas, moneda)
  • Conversión automática de tipos para fechas y valores de moneda

Herramientas MCP disponibles

Gestión de libros

  • list_open_workbooks: Listar todos los libros de Excel actualmente abiertos
  • save_workbook: Guardar un libro en disco con selección opcional de formato

Operaciones con hojas de cálculo

  • list_worksheets: Listar todas las hojas de cálculo en un libro
  • add_worksheet: Añadir una nueva hoja de cálculo a un libro
  • get_worksheet: Obtener una hoja de cálculo por nombre o índice

Operaciones con celdas y rangos

  • get_cell_value: Leer el valor de una celda individual
  • set_cell_value: Establecer el valor de una celda individual
  • get_range_values: Leer valores de un rango de celdas
  • set_range_values: Establecer valores para un rango de celdas

Notas

  • Ambos servidores requieren Windows y sus respectivas aplicaciones de Microsoft Office instaladas
  • Los servidores interactúan con instancias en ejecución de las aplicaciones
  • La automatización COM requiere una inicialización adecuada; ejecuta el script post-instalación si encuentras errores relacionados con COM
  • Para un mejor manejo de constantes, considera usar makepy para generar constantes de Office