Office PowerPoint MCP
Crea, edita y manipula presentaciones de PowerPoint usando python-pptx.
Documentación
Office-PowerPoint-MCP-Server
Un servidor MCP (Model Context Protocol) integral para la manipulación de PowerPoint utilizando python-pptx. Versión 2.0 ofrece 32 potentes herramientas organizadas en 11 módulos especializados, que brindan capacidades completas de creación, gestión y diseño profesional de presentaciones. El servidor cuenta con una arquitectura modular con manejo mejorado de parámetros, selección inteligente de operaciones y manejo integral de errores.
Ya no es tan feo con las nuevas plantillas de diseño de diapositivas
Ejemplo
Prompt
Salida
GIF de demostración -> (./public/demo.mp4)

Características
Operaciones principales de PowerPoint
- Soporte de ida y vuelta para cualquier presentación Open XML (archivo .pptx) incluyendo todos los elementos
- Soporte de plantillas con preservación automática de temas y diseños
- Gestión de múltiples presentaciones con seguimiento de estado global
- Gestión de propiedades básicas del documento (título, asunto, autor, palabras clave, comentarios)
Creación y gestión de contenido
- Gestión de diapositivas con selección flexible de diseños
- Manipulación de texto con relleno de marcadores de posición y creación de viñetas
- Formato de texto avanzado con controles de fuente, color, alineación y estilo
- Validación de texto con verificación automática de ajuste y sugerencias de optimización
Elementos visuales
- Manejo de imágenes con soporte de entrada de archivos y base64
- Mejora de imágenes usando Pillow con controles de brillo, contraste, saturación y filtros
- Efectos de imagen profesionales incluyendo sombras, reflejos, brillos y bordes suaves
- Creación de formas con más de 20 tipos de autoformas (rectángulos, óvalos, elementos de diagramas de flujo, etc.)
- Creación de tablas con formato y estilo avanzado de celdas
Gráficos y visualización de datos
- Soporte de gráficos para gráficos de columnas, barras, líneas y circulares
- Gestión de series de datos con soporte de categorías y múltiples series
- Formato de gráficos con leyendas, etiquetas de datos y títulos
Funciones de diseño profesional
- 4 esquemas de color profesionales (Azul Moderno, Gris Corporativo, Verde Elegante, Rojo Cálido)
- Tipografía profesional con la familia de fuentes Segoe UI y ajustes de tamaño predefinidos
- Aplicación de temas con estilo automático en todas las presentaciones
- Fondos degradados con direcciones y esquemas de color personalizables
- Herramientas de mejora de diapositivas para contenido existente
- 25 plantillas de diapositivas integradas con tamaño dinámico y efectos visuales
- Funciones avanzadas de plantillas que incluyen ajuste automático de texto, tamaño de fuente dinámico y animaciones profesionales
Funciones avanzadas
- Análisis y optimización de fuentes usando FontTools
- Efectos de imagen con 9 efectos visuales diferentes (sombra, reflejo, brillo, bisel, etc.)
- Validación integral con corrección automática de errores
- Búsqueda de plantillas con rutas de directorio configurables
- Cálculos de diseño profesionales con gestión de márgenes y espaciado
Instalación
Instalación mediante Smithery
Para instalar el Servidor de Manipulación de PowerPoint para Claude Desktop automáticamente mediante Smithery:
npx -y @smithery/cli install @GongRzhe/Office-PowerPoint-MCP-Server --client claude
Requisitos previos
- Python 3.6 o superior (según se especifica en pyproject.toml)
- Gestor de paquetes pip
- Opcional: uvx para la ejecución de paquetes sin instalación local
Opciones de instalación
Opción 1: Usando el script de configuración (Recomendado)
La forma más sencilla de configurar el Servidor MCP de PowerPoint es usando el script de configuración proporcionado, que automatiza el proceso de instalación:
python setup_mcp.py
Este script:
- Verificará los requisitos previos
- Ofrecerá opciones de instalación:
- Instalar desde PyPI (recomendado para la mayoría de usuarios)
- Configurar un entorno de desarrollo local
- Instalará las dependencias requeridas
- Generará el archivo de configuración MCP apropiado
- Proporcionará instrucciones para la integración con Claude Desktop
El script ofrece diferentes rutas según su entorno:
- Si tiene
uvxinstalado, se configurará usando UVX (recomendado) - Si el servidor ya está instalado, proporciona opciones de configuración
- Si el servidor no está instalado, ofrece métodos de instalación
Opción 2: Instalación manual
-
Clone el repositorio:
git clone https://github.com/GongRzhe/Office-PowerPoint-MCP-Server.git cd Office-PowerPoint-MCP-Server -
Instale las dependencias:
pip install -r requirements.txt -
Haga ejecutable el servidor:
chmod +x ppt_mcp_server.py
Uso
Mostrar texto de ayuda:
python ppt_mcp_server.py -h
Iniciar el servidor Stdio
Ejecute el servidor stdio:
python ppt_mcp_server.py
Iniciar el servidor Streamable-Http
Ejecute el servidor streamable-http en el puerto 8000:
python ppt_mcp_server.py --transport http --port 8000
Ejecutar en Docker
docker build -t ppt_mcp_server .
docker run -d --rm -p 8000:8000 ppt_mcp_server -t http
Configuración MCP
Opción 1: Servidor Python local
Agregue el servidor a su archivo de configuración de ajustes MCP:
{
"mcpServers": {
"ppt": {
"command": "python",
"args": ["/path/to/ppt_mcp_server.py"],
"env": {}
}
}
}
Opción 2: Usando UVX (sin instalación local requerida)
Si tiene uvx instalado, puede ejecutar el servidor directamente desde PyPI sin instalación local:
{
"mcpServers": {
"ppt": {
"command": "uvx",
"args": [
"--from", "office-powerpoint-mcp-server", "ppt_mcp_server"
],
"env": {}
}
}
}
🚀 Novedades en v2.0
Conjunto integral de herramientas (32 herramientas)
- Manipulación completa de PowerPoint con 34 herramientas especializadas
- 11 módulos organizados que cubren todos los aspectos de la creación de presentaciones
- Manejo mejorado de parámetros con validación integral
- Valores predeterminados inteligentes e interfaces basadas en operaciones
Plantillas de diapositivas integradas
- Más de 25 plantillas de diapositivas profesionales con funciones dinámicas integradas
- Sistema de plantillas avanzado con capacidades de generación automática
- Texto con tamaño automático que se adapta a la longitud del contenido y al tamaño del contenedor
- Efectos visuales profesionales incluyendo sombras, brillos y degradados
- Generación completa de presentaciones a partir de secuencias de plantillas
Arquitectura modular
- 11 módulos especializados: herramientas de presentación, contenido, estructurales, profesionales, plantillas, hipervínculos, gráficos, conectores, maestro y transiciones
- Mejor mantenibilidad con responsabilidades separadas
- Mayor facilidad de extensión para agregar nuevas funciones
- Estructura de código más limpia con utilidades compartidas
Herramientas disponibles
El servidor proporciona 34 herramientas especializadas organizadas en las siguientes categorías:
Gestión de presentaciones (7 herramientas)
- create_presentation - Crear nuevas presentaciones
- create_presentation_from_template - Crear desde plantillas con preservación de temas
- open_presentation - Abrir presentaciones existentes
- save_presentation - Guardar presentaciones en archivos
- get_presentation_info - Obtener información integral de la presentación
- get_template_file_info - Analizar archivos de plantilla y diseños
- set_core_properties - Configurar propiedades del documento
Gestión de contenido (8 herramientas)
- add_slide - Agregar diapositivas con estilo de fondo opcional
- get_slide_info - Obtener información detallada de las diapositivas
- extract_slide_text - ✨ NUEVO Extraer todo el contenido de texto de una diapositiva específica
- extract_presentation_text - ✨ NUEVO Extraer contenido de texto de todas las diapositivas de la presentación
- populate_placeholder - Rellenar marcadores de posición con texto
- add_bullet_points - Agregar viñetas con formato
- manage_text - ✨ Herramienta de texto unificada (agregar/formatear/validar/format_runs)
- manage_image - ✨ Herramienta de imagen unificada (agregar/mejorar)
Operaciones con plantillas (7 herramientas)
- list_slide_templates - Explorar las plantillas de diseño de diapositivas disponibles
- apply_slide_template - Aplicar plantillas de diseño estructuradas a diapositivas existentes
- create_slide_from_template - Crear nuevas diapositivas usando plantillas de diseño
- create_presentation_from_templates - Crear presentaciones completas a partir de secuencias de plantillas
- get_template_info - Obtener información detallada sobre plantillas específicas
- auto_generate_presentation - Generar presentaciones automáticamente según un tema
- optimize_slide_text - Optimizar elementos de texto para una mejor legibilidad y ajuste
Elementos estructurales (4 herramientas)
- add_table - Crear tablas con formato mejorado
- format_table_cell - Formatear celdas individuales de tabla
- add_shape - Agregar formas con opciones de texto y formato
- add_chart - Crear gráficos con personalización integral
Diseño profesional (3 herramientas)
- apply_professional_design - ✨ Herramienta de diseño unificada (temas/diapositivas/mejoras)
- apply_picture_effects - ✨ Herramienta de efectos unificada (más de 9 efectos combinados)
- manage_fonts - ✨ Herramienta de fuentes unificada (analizar/optimizar/recomendar)
Funciones especializadas (5 herramientas)
- manage_hyperlinks - Gestión completa de hipervínculos (agregar/eliminar/listar/actualizar)
- manage_slide_masters - Acceder y gestionar las propiedades y diseños de los patrones de diapositivas
- add_connector - Agregar líneas/flechas de conexión entre puntos en las diapositivas
- update_chart_data - Reemplazar datos de gráficos existentes con nuevas categorías y series
- manage_slide_transitions - Gestión básica de transiciones de diapositivas
🌟 Herramientas unificadas clave
manage_text - Gestión de texto todo en uno
# Add text box
manage_text(slide_index=0, operation="add", text="Hello World", font_size=24)
# Format existing text
manage_text(slide_index=0, operation="format", shape_index=0, bold=True, color=[255,0,0])
# Validate text fit with auto-fix
manage_text(slide_index=0, operation="validate", shape_index=0, validation_only=False)
manage_image - Manejo completo de imágenes
# Add image with enhancement
manage_image(slide_index=0, operation="add", image_source="logo.png",
enhancement_style="presentation")
# Enhance existing image
manage_image(slide_index=0, operation="enhance", image_source="photo.jpg",
brightness=1.2, contrast=1.1, saturation=1.3)
apply_picture_effects - Múltiples efectos en una sola llamada
# Apply combined effects
apply_picture_effects(slide_index=0, shape_index=0, effects={
"shadow": {"blur_radius": 4.0, "color": [128,128,128]},
"glow": {"size": 5.0, "color": [0,176,240]},
"rotation": {"rotation": 15.0}
})
apply_professional_design - Gestión de temas y diseño
# Add professional slide
apply_professional_design(operation="slide", slide_type="title_content",
color_scheme="modern_blue", title="My Presentation")
# Apply theme to entire presentation
apply_professional_design(operation="theme", color_scheme="corporate_gray")
# Enhance existing slide
apply_professional_design(operation="enhance", slide_index=0, color_scheme="elegant_green")
Ejemplos
Crear una nueva presentación
# Create a new presentation
result = use_mcp_tool(
server_name="ppt",
tool_name="create_presentation",
arguments={}
)
presentation_id = result["presentation_id"]
# Add a title slide
result = use_mcp_tool(
server_name="ppt",
tool_name="add_slide",
arguments={
"layout_index": 0, # Title slide layout
"title": "My Presentation",
"presentation_id": presentation_id
}
)
slide_index = result["slide_index"]
# Populate subtitle placeholder
result = use_mcp_tool(
server_name="ppt",
tool_name="populate_placeholder",
arguments={
"slide_index": slide_index,
"placeholder_idx": 1, # Subtitle placeholder
"text": "Created with PowerPoint MCP Server",
"presentation_id": presentation_id
}
)
# Save the presentation
result = use_mcp_tool(
server_name="ppt",
tool_name="save_presentation",
arguments={
"file_path": "my_presentation.pptx",
"presentation_id": presentation_id
}
)
Crear una presentación profesional con v2.0
# Create a professional slide with modern styling - CONSOLIDATED TOOL
result = use_mcp_tool(
server_name="ppt",
tool_name="apply_professional_design",
arguments={
"operation": "slide",
"slide_type": "title_content",
"color_scheme": "modern_blue",
"title": "Quarterly Business Review",
"content": [
"Revenue increased by 15% compared to last quarter",
"Customer satisfaction scores reached all-time high of 94%",
"Successfully launched 3 new product features",
"Expanded team by 12 new talented professionals"
]
}
)
# Apply professional theme to entire presentation - SAME TOOL, DIFFERENT OPERATION
result = use_mcp_tool(
server_name="ppt",
tool_name="apply_professional_design",
arguments={
"operation": "theme",
"color_scheme": "modern_blue",
"apply_to_existing": True
}
)
# Add slide with gradient background - ENHANCED ADD_SLIDE
result = use_mcp_tool(
server_name="ppt",
tool_name="add_slide",
arguments={
"layout_index": 0,
"background_type": "professional_gradient",
"color_scheme": "modern_blue",
"gradient_direction": "diagonal"
}
)
Trabajar con plantillas de diapositivas integradas (Nuevo en v2.0)
# List all available slide templates with their features
result = use_mcp_tool(
server_name="ppt",
tool_name="list_slide_templates",
arguments={}
)
# Apply a professional template to an existing slide
result = use_mcp_tool(
server_name="ppt",
tool_name="apply_slide_template",
arguments={
"slide_index": 0,
"template_id": "title_slide",
"color_scheme": "modern_blue",
"content_mapping": {
"title": "Quarterly Business Review",
"subtitle": "Q4 2024 Results",
"author": "Leadership Team"
}
}
)
# Create a new slide using a template
result = use_mcp_tool(
server_name="ppt",
tool_name="create_slide_from_template",
arguments={
"template_id": "text_with_image",
"color_scheme": "elegant_green",
"content_mapping": {
"title": "Our Revolutionary Solution",
"content": "• 250% increase in efficiency\n• 98% customer satisfaction\n• Industry-leading performance"
},
"image_paths": {
"supporting": "path/to/product_image.jpg"
}
}
)
# Generate a complete presentation from multiple templates
result = use_mcp_tool(
server_name="ppt",
tool_name="create_presentation_from_templates",
arguments={
"template_sequence": [
{
"template_id": "title_slide",
"content": {
"title": "2024 Annual Report",
"subtitle": "Growth and Innovation",
"author": "Executive Team"
}
},
{
"template_id": "key_metrics_dashboard",
"content": {
"metric_1_value": "94%",
"metric_2_value": "$2.4M",
"metric_3_value": "247"
}
},
{
"template_id": "before_after_comparison",
"content": {
"content_left": "Manual processes taking hours",
"content_right": "Automated workflows in minutes"
}
}
],
"color_scheme": "modern_blue"
}
)
Gestión mejorada de imágenes con v2.0
# Add image with automatic enhancement - CONSOLIDATED TOOL
result = use_mcp_tool(
server_name="ppt",
tool_name="manage_image",
arguments={
"slide_index": 1,
"operation": "add",
"image_source": "company_logo.png",
"left": 1.0,
"top": 1.0,
"width": 3.0,
"height": 2.0,
"enhancement_style": "presentation"
}
)
# Apply multiple picture effects at once - CONSOLIDATED TOOL
result = use_mcp_tool(
server_name="ppt",
tool_name="apply_picture_effects",
arguments={
"slide_index": 1,
"shape_index": 0,
"effects": {
"shadow": {
"shadow_type": "outer",
"blur_radius": 4.0,
"distance": 3.0,
"direction": 315.0,
"color": [128, 128, 128],
"transparency": 0.6
},
"glow": {
"size": 5.0,
"color": [0, 176, 240],
"transparency": 0.4
}
}
}
)
Gestión avanzada de texto con v2.0
# Add and format text in one operation - CONSOLIDATED TOOL
result = use_mcp_tool(
server_name="ppt",
tool_name="manage_text",
arguments={
"slide_index": 0,
"operation": "add",
"left": 1.0,
"top": 2.0,
"width": 8.0,
"height": 1.5,
"text": "Welcome to Our Quarterly Review",
"font_size": 32,
"font_name": "Segoe UI",
"bold": True,
"color": [0, 120, 215],
"alignment": "center",
"auto_fit": True
}
)
# Validate and fix text fit issues - SAME TOOL, DIFFERENT OPERATION
result = use_mcp_tool(
server_name="ppt",
tool_name="manage_text",
arguments={
"slide_index": 0,
"operation": "validate",
"shape_index": 0,
"validation_only": False, # Auto-fix enabled
"min_font_size": 10,
"max_font_size": 48
}
)
Crear una presentación a partir de una plantilla
# First, inspect a template to see its layouts and properties
result = use_mcp_tool(
server_name="ppt",
tool_name="get_template_info",
arguments={
"template_path": "company_template.pptx"
}
)
template_info = result
# Create a new presentation from the template
result = use_mcp_tool(
server_name="ppt",
tool_name="create_presentation_from_template",
arguments={
"template_path": "company_template.pptx"
}
)
presentation_id = result["presentation_id"]
# Add a slide using one of the template's layouts
result = use_mcp_tool(
server_name="ppt",
tool_name="add_slide",
arguments={
"layout_index": 1, # Use layout from template
"title": "Quarterly Report",
"presentation_id": presentation_id
}
)
# Save the presentation
result = use_mcp_tool(
server_name="ppt",
tool_name="save_presentation",
arguments={
"file_path": "quarterly_report.pptx",
"presentation_id": presentation_id
}
)
Agregar gráficos avanzados y visualización de datos
# Add a chart slide
result = use_mcp_tool(
server_name="ppt",
tool_name="add_slide",
arguments={
"layout_index": 1, # Content slide layout
"title": "Sales Data",
"presentation_id": presentation_id
}
)
slide_index = result["slide_index"]
# Add a column chart with comprehensive customization
result = use_mcp_tool(
server_name="ppt",
tool_name="add_chart",
arguments={
"slide_index": slide_index,
"chart_type": "column",
"left": 1.0,
"top": 2.0,
"width": 8.0,
"height": 4.5,
"categories": ["Q1", "Q2", "Q3", "Q4"],
"series_names": ["2023", "2024"],
"series_values": [
[100, 120, 140, 160],
[110, 130, 150, 170]
],
"has_legend": True,
"legend_position": "bottom",
"has_data_labels": True,
"title": "Quarterly Sales Performance",
"presentation_id": presentation_id
}
)
Validación y optimización de texto con v2.0
# Validate text fit and get optimization suggestions - USING CONSOLIDATED TOOL
result = use_mcp_tool(
server_name="ppt",
tool_name="manage_text",
arguments={
"slide_index": 0,
"operation": "validate",
"shape_index": 0,
"text": "This is a very long title that might not fit properly in the designated text box area",
"font_size": 24,
"validation_only": True
}
)
# Comprehensive slide validation with automatic fixes - SAME TOOL, AUTO-FIX ENABLED
result = use_mcp_tool(
server_name="ppt",
tool_name="manage_text",
arguments={
"slide_index": 0,
"operation": "validate",
"shape_index": 0,
"validation_only": False, # Auto-fix enabled
"min_font_size": 10,
"max_font_size": 48
}
)
Lectura de contenido de diapositivas con las nuevas herramientas de extracción de texto (v2.1)
# Extract text content from a specific slide - NEW TOOL
result = use_mcp_tool(
server_name="ppt",
tool_name="extract_slide_text",
arguments={
"slide_index": 0,
"presentation_id": presentation_id
}
)
# The result includes:
{
"success": True,
"slide_index": 0,
"text_content": {
"slide_title": "Quarterly Business Review",
"placeholders": [
{
"shape_index": 1,
"shape_name": "Subtitle Placeholder 2",
"text": "Q4 2024 Results",
"placeholder_type": "SUBTITLE",
"placeholder_idx": 1
}
],
"text_shapes": [
{
"shape_index": 3,
"shape_name": "TextBox 4",
"text": "Revenue increased by 15%"
}
],
"table_text": [],
"all_text_combined": "Quarterly Business Review\nQ4 2024 Results\nRevenue increased by 15%"
},
"total_text_shapes": 2,
"has_title": True,
"has_tables": False
}
# Extract text from all slides in the presentation - NEW TOOL
result = use_mcp_tool(
server_name="ppt",
tool_name="extract_presentation_text",
arguments={
"presentation_id": presentation_id,
"include_slide_info": True
}
)
# The result includes comprehensive text extraction:
{
"success": True,
"presentation_id": "pres_123",
"total_slides": 5,
"slides_with_text": 4,
"total_text_shapes": 12,
"slides_with_titles": 3,
"slides_with_tables": 1,
"slides_text": [...], # Detailed per-slide text content
"all_presentation_text_combined": "=== SLIDE 1 ===\nTitle Here\nContent here..."
}
# Extract text without additional slide metadata for cleaner output
result = use_mcp_tool(
server_name="ppt",
tool_name="extract_presentation_text",
arguments={
"presentation_id": presentation_id,
"include_slide_info": False
}
)
Soporte de plantillas
Trabajar con plantillas
El Servidor MCP de PowerPoint proporciona soporte integral de plantillas para crear presentaciones a partir de archivos de plantilla existentes. Esta función permite:
- Imagen corporativa con temas, diseños y estilos predefinidos
- Presentaciones coherentes entre equipos y proyectos
- Patrones de diapositivas personalizados y diseños especializados
- Propiedades preconfiguradas y ajustes de documento
- Descubrimiento flexible de plantillas con rutas de búsqueda configurables
Requisitos de archivos de plantilla
- Formatos admitidos: archivos
.pptxy.potx - Contenido existente: Las plantillas pueden contener diapositivas existentes (se conservan durante la creación)
- Disponibilidad de diseños: Todos los diseños personalizados y patrones de diapositivas son accesibles
- Ubicaciones de búsqueda: Configurable mediante la variable de entorno
PPT_TEMPLATE_PATH - Rutas de búsqueda predeterminadas: Directorio actual,
./templates,./assets,./resources
Configuración de plantillas
Configure la variable de entorno PPT_TEMPLATE_PATH para especificar directorios de plantillas personalizados:
# Unix/Linux/macOS
export PPT_TEMPLATE_PATH="/path/to/templates:/another/path"
# Windows
set PPT_TEMPLATE_PATH="C:\templates;C:\company_templates"
Flujo de trabajo con plantillas
- Inspeccionar la plantilla: Use
get_template_infopara analizar los diseños y propiedades disponibles - Crear desde la plantilla: Use
create_presentation_from_templatecon preservación automática de temas - Usar diseños de plantilla: Haga referencia a los índices de diseño del análisis de la plantilla al agregar diapositivas
- Mantener la imagen corporativa: Los temas, fuentes y colores de la plantilla se aplican automáticamente al contenido nuevo
Esquemas de color profesionales
El servidor incluye 4 esquemas de color profesionales integrados:
- Azul Moderno: Tema azul inspirado en Microsoft con colores complementarios
- Gris Corporativo: Tema profesional en escala de grises con acentos azules
- Verde Elegante: Tema verde bosque con acentos crema y verde claro
- Rojo Cálido: Tema rojo profundo con acentos naranja y amarillo
Cada esquema incluye colores primarios, secundarios, de acento, claros y de texto optimizados para presentaciones de negocios.
🎨 Plantillas de diapositivas integradas (Nuevo en v2.0)
El Servidor MCP de PowerPoint ahora incluye 25 plantillas de diapositivas profesionales con funciones dinámicas avanzadas. Todas las plantillas admiten:
Características dinámicas
- Ajuste automático del tamaño del texto según la longitud del contenido y las dimensiones del contenedor
- Ajuste inteligente de texto para adaptarse a áreas especificadas
- Efectos visuales que incluyen sombras, resplandores y contornos
- Fondos degradados con composiciones multicapa
- Animaciones profesionales listas para la entrega de presentaciones
- Efectos de desplazamiento interactivos para una mejor experiencia de usuario
- Manejo inteligente de desbordamiento de contenido con ajustes automáticos
Categorías de plantillas disponibles
Diapositivas de título e introducción
title_slide- Diapositiva de título dinámica con fondo degradado y efectos de textochapter_intro- Divisor de sección con numeración de capítulos y estilosthank_you_slide- Diapositiva de cierre con información de contacto y efectos
Diapositivas de diseño de contenido
text_with_image- Contenido de texto con imagen estilizada y elementos interactivostwo_column_text- Dos columnas iguales de texto con tamaño dinámicotwo_column_text_images- Dos columnas con texto e imágenes correspondientesthree_column_layout- Tres columnas iguales con texto e imágenesfull_image_slide- Imagen de fondo grande con superposición de texto
Diapositivas de negocios y análisis
key_metrics_dashboard- Panel de métricas interactivo con contadores animadosbefore_after_comparison- Diseño de comparación dinámica con divisores visualeschart_comparison- Dos gráficos lado a lado para comparación de rendimientodata_table_slide- Diapositiva centrada en datos tabulares con estilo profesionaltimeline_slide- Línea de tiempo horizontal con hitos y efectos
Diapositivas de procesos y flujos
process_flow- Visualización de procesos paso a paso con efectos mejoradosagenda_slide- Tabla de contenido o resumen de agenda con estilosquote_testimonial- Cita destacada o testimonio de cliente con efectos
Diapositivas de equipo y organización
team_introduction- Presentación de miembros del equipo con fotos y roles
Ejemplos de uso de plantillas
# Browse all available templates
templates = use_mcp_tool("ppt", "list_slide_templates", {})
# Key templates with their features:
{
"title_slide": {
"features": ["Dynamic text sizing", "Gradient backgrounds", "Text effects"],
"elements": ["title", "subtitle", "author", "decorative_accent"]
},
"key_metrics_dashboard": {
"features": ["Animated counters", "Gradient containers", "Trend visualization"],
"elements": ["3 metric containers", "trend chart", "insights callout"]
},
"before_after_comparison": {
"features": ["Split gradient background", "VS divider", "Improvement arrow"],
"elements": ["before/after headers", "comparison content", "improvement metrics"]
}
}
Integración de esquemas de color
Todas las plantillas funcionan perfectamente con los 4 esquemas de color profesionales:
- modern_blue: Tema inspirado en Microsoft con degradados dinámicos
- corporate_gray: Escala de grises profesional con acentos azules
- elegant_green: Verde bosque con acentos crema y claros
- warm_red: Rojo profundo con resaltados naranja y amarillo
Adaptación dinámica del contenido
Las plantillas se ajustan automáticamente al contenido:
- Tamaños de fuente escalan según la longitud del texto (rango de 8pt a 44pt)
- Interlineado se ajusta para legibilidad (1.0x - 1.4x)
- Ajuste de texto rompe líneas inteligentemente en puntos óptimos
- Tamaño del contenedor se adapta al desbordamiento de contenido
- Efectos visuales escalan apropiadamente con los tamaños de los elementos
📁 Estructura de archivos
Office-PowerPoint-MCP-Server/
├── ppt_mcp_server.py # Main consolidated server (v2.0)
├── slide_layout_templates.json # 25+ professional slide templates with dynamic features
├── tools/ # 11 specialized tool modules (32 tools total)
│ ├── __init__.py
│ ├── presentation_tools.py # Presentation management (7 tools)
│ ├── content_tools.py # Content & slides (6 tools)
│ ├── template_tools.py # Template operations (7 tools)
│ ├── structural_tools.py # Tables, shapes, charts (4 tools)
│ ├── professional_tools.py # Themes, effects, fonts (3 tools)
│ ├── hyperlink_tools.py # Hyperlink management (1 tool)
│ ├── chart_tools.py # Advanced chart operations (1 tool)
│ ├── connector_tools.py # Connector lines/arrows (1 tool)
│ ├── master_tools.py # Slide master management (1 tool)
│ └── transition_tools.py # Slide transitions (1 tool)
├── utils/ # 7 organized utility modules (68+ functions)
│ ├── __init__.py
│ ├── core_utils.py # Error handling & safe operations
│ ├── presentation_utils.py # Presentation management utilities
│ ├── content_utils.py # Content & slide operations
│ ├── design_utils.py # Themes, colors, effects & fonts
│ ├── template_utils.py # Template management & dynamic features
│ └── validation_utils.py # Text & layout validation
├── setup_mcp.py # Interactive setup script
├── pyproject.toml # Updated for v2.0
└── README.md # This documentation
🏗️ Beneficios de la arquitectura
Diseño modular
- 7 módulos de utilidades enfocados con responsabilidades claras
- 11 módulos de herramientas organizados para una cobertura integral
- Más de 68 funciones de utilidad organizadas por funcionalidad
- 32 herramientas MCP que cubren todas las necesidades de manipulación de PowerPoint
- Separación clara de responsabilidades para un desarrollo más fácil
Organización del código
- Agrupación lógica de funcionalidades relacionadas en todos los módulos
- Mejor descubrimiento con categorías de herramientas organizadas
- Mejor capacidad de prueba con módulos aislados
- Extensibilidad futura mediante una estructura modular
Cobertura integral
- Ciclo de vida completo de PowerPoint desde la creación hasta la presentación
- Sistema de plantillas avanzado con capacidades de generación automática
- Herramientas de diseño profesional con múltiples efectos y opciones de estilo
- Características especializadas que incluyen hipervínculos, conectores y patrones de diapositivas
Experiencia del desarrollador
- Límites de responsabilidad claros entre módulos
- Depuración más fácil con archivos más pequeños y enfocados
- Pruebas más simples con funcionalidad aislada
- Mantenibilidad mejorada mediante la separación de responsabilidades
🔄 Novedades en la versión 2.0
Funcionalidad mejorada con cobertura integral de herramientas. El servidor actualizado proporciona:
Nuevas herramientas especializadas añadidas:
manage_hyperlinks- Gestión completa de hipervínculos para elementos de textoupdate_chart_data- Reemplazo y actualización avanzada de datos de gráficosadd_connector- Líneas de conexión y flechas entre elementos de diapositivasmanage_slide_masters- Acceso a propiedades y diseños de patrones de diapositivasmanage_slide_transitions- Gestión básica de transiciones de diapositivasauto_generate_presentation- Generación de presentaciones impulsada por IAoptimize_slide_text- Optimización de texto para una mejor legibilidad
Herramientas existentes mejoradas:
manage_text- Ahora admite formato de ejecución de texto con la operaciónformat_runscreate_presentation_from_templates- Procesamiento mejorado de secuencias de plantillasapply_picture_effects- Combinaciones y opciones de efectos ampliadas
🔄 Novedades en la versión 2.1
¡Se añadieron capacidades de extracción de texto! Ahora puedes leer contenido de presentaciones existentes:
Nuevas herramientas de extracción de texto añadidas:
extract_slide_text- Extrae todo el contenido de texto de una diapositiva específica, incluidos títulos, marcadores de posición, formas de texto y tablasextract_presentation_text- Extrae contenido de texto de todas las diapositivas de una presentación con estadísticas completas y salida combinada
Características clave de la extracción de texto:
- Cobertura completa de texto - Extrae de títulos, marcadores de posición, cuadros de texto y celdas de tabla
- Salida estructurada - Organizada por tipo de contenido (títulos, marcadores de posición, formas, tablas)
- Análisis de toda la presentación - Estadísticas sobre la distribución de texto en las diapositivas
- Opciones de salida flexibles - Contenido de diapositiva individual o texto combinado de la presentación
- Manejo de errores - Manejo elegante de diapositivas que no se pueden procesar
Licencia
MIT