development
location
documentation
public
PowerPoint
MCP
What is A comprehensive MCP server for PowerPoint manipulation using python-pptx.?
Version 2.0 provides 32 powerful tools organized into 11 specialized modules, offering complete PowerPoint creation, management, and professional design capabilities. The server features a modular architecture with enhanced parameter handling, intelligent operation selection, and comprehensive error handling.
Documentation
Office-PowerPoint-MCP-Server
A comprehensive MCP (Model Context Protocol) server for PowerPoint manipulation using python-pptx. Version 2.0 provides 32 powerful tools organized into 11 specialized modules, offering complete PowerPoint creation, management, and professional design capabilities. The server features a modular architecture with enhanced parameter handling, intelligent operation selection, and comprehensive error handling.
Not so ugly anymore with new slide_layout_templates
Example## Pormpt
Output
Demo's GIF -> (./public/demo.mp4)
Features# Core PowerPoint Operations
Round-trip support for any Open XML presentation (.pptx file) including all elements
Template support with automatic theme and layout preservation
Multi-presentation management with global state tracking
š Key Unified Tools# manage_text - All-in-One Text Management
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)
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
}
)
Creating a Presentation from Template
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
}
)
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
}
)
Reading Slide Content with New Text Extraction Tools (v2.1)
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
}
)
Template Support# Working with Templates
The PowerPoint MCP Server provides comprehensive template support for creating presentations from existing template files. This feature enables:
Corporate branding with predefined themes, layouts, and styles
Consistent presentations across teams and projects
Custom slide masters and specialized layouts
Pre-configured properties and document settings
Flexible template discovery with configurable search paths
Template File Requirements
Supported formats: .pptx and .potx files
Existing content: Templates can contain existing slides (preserved during creation)
Layout availability: All custom layouts and slide masters are accessible
Search locations: Configurable via PPT_TEMPLATE_PATH environment variable
Default search paths: Current directory, ./templates, ./assets, ./resources
Template Configuration
Set the PPT_TEMPLATE_PATH environment variable to specify custom template directories:
export PPT_TEMPLATE_PATH="/path/to/templates:/another/path"
# Windows
set PPT_TEMPLATE_PATH="C:\templates;C:\company_templates"
Template Workflow
Inspect Template: Use get_template_info to analyze available layouts and properties
Create from Template: Use create_presentation_from_template with automatic theme preservation
Use Template Layouts: Reference layout indices from template analysis when adding slides
Maintain Branding: Template themes, fonts, and colors are automatically applied to new content
Professional Color Schemes
The server includes 4 built-in professional color schemes:
Modern Blue: Microsoft-inspired blue theme with complementary colors
Corporate Gray: Professional grayscale theme with blue accents
Elegant Green: Forest green theme with cream and light green accents
Warm Red: Deep red theme with orange and yellow accents
Each scheme includes primary, secondary, accent, light, and text colors optimized for business presentations.
šØ Built-in Slide Templates (New in v2.0)
The PowerPoint MCP Server now includes 25 professional slide templates with advanced dynamic features. All templates support:
Dynamic Features
Automatic text sizing based on content length and container dimensions
Intelligent text wrapping to fit within specified areas
Visual effects including shadows, glows, and outlines
Gradient backgrounds with multi-layer compositions
Professional animations ready for presentation delivery
Interactive hover effects for enhanced user experience
Smart content overflow handling with automatic adjustments
Available Template Categories## Title & Introduction Slides
title_slide - Dynamic title slide with gradient background and text effects
chapter_intro - Section divider with chapter numbering and styling
thank_you_slide - Closing slide with contact information and effects
Content Layout Slides
text_with_image - Text content with stylized image and interactive elements
two_column_text - Two equal columns of text with dynamic sizing
two_column_text_images - Two columns with text and corresponding images
three_column_layout - Three equal columns with text and images
full_image_slide - Large background image with text overlay
Business & Analytics Slides
key_metrics_dashboard - Interactive metrics dashboard with animated counters
before_after_comparison - Dynamic comparison layout with visual dividers
chart_comparison - Two charts side by side for performance comparison
data_table_slide - Slide focused on tabular data with professional styling
timeline_slide - Horizontal timeline with milestones and effects
Process & Flow Slides
process_flow - Step-by-step process visualization with enhanced effects
agenda_slide - Table of contents or agenda overview with styling
quote_testimonial - Featured quote or customer testimonial with effects
Team & Organization Slides
team_introduction - Team member showcase with photos and roles