MCP server: Office-PowerPoint-MCP-Server
Category: Visualization
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.

Tools:
ppt: tools: name: create_presentation
description: Create a new PowerPoint presentation.
name: create_presentation_from_template
description: Create a new PowerPoint presentation from a template file.
name: open_presentation
description: Open an existing PowerPoint presentation from a file.
name: save_presentation
description: Save a presentation to a file.
name: get_presentation_info
description: Get information about a presentation.
name: get_template_file_info
description: Get information about a template file including layouts and properties.
name: set_core_properties
description: Set core document properties.
name: add_slide
description: Add a new slide to the presentation with optional background styling.
name: get_slide_info
description: Get information about a specific slide.
name: populate_placeholder
description: Populate a placeholder with text.
name: add_bullet_points
description: Add bullet points to a placeholder.
name: manage_text
description: Unified text management tool for adding, formatting, validating text, and formatting multiple text runs.
name: manage_image
description: Unified image management tool for adding and enhancing images.
name: add_table
description: Add a table to a slide with enhanced formatting options.
name: format_table_cell
description: Format a specific table cell.
name: add_shape
description: Add an auto shape to a slide with enhanced options.
name: add_chart
description: Add a chart to a slide with comprehensive formatting options.
name: apply_professional_design
description: Unified professional design tool for themes, slides, and visual enhancements.
This applies professional styling and themes rather than structural layout changes.
name: apply_picture_effects
description: Apply multiple picture effects in combination.
name: manage_fonts
description: Unified font management tool for analysis, optimization, and recommendations.
name: list_slide_templates
description: List all available slide layout templates.
name: apply_slide_template
description: 
Apply a structured layout template to an existing slide.
This modifies slide layout and content structure using predefined templates.

Args:
    slide_index: Index of the slide to apply template to
    template_id: ID of the template to apply (e.g., 'title_slide', 'text_with_image')
    color_scheme: Color scheme to use ('modern_blue', 'corporate_gray', 'elegant_green', 'warm_red')
    content_mapping: Dictionary mapping element roles to custom content
    image_paths: Dictionary mapping image element roles to file paths
    presentation_id: Presentation ID (uses current if None)

name: create_slide_from_template
description: 
Create a new slide using a layout template.

Args:
    template_id: ID of the template to use (e.g., 'title_slide', 'text_with_image')
    color_scheme: Color scheme to use ('modern_blue', 'corporate_gray', 'elegant_green', 'warm_red')
    content_mapping: Dictionary mapping element roles to custom content
    image_paths: Dictionary mapping image element roles to file paths
    layout_index: PowerPoint layout index to use as base (default: 1)
    presentation_id: Presentation ID (uses current if None)

name: create_presentation_from_templates
description: 
Create a complete presentation from a sequence of templates.

Args:
    template_sequence: List of template configurations, each containing:
        - template_id: Template to use
        - content: Content mapping for the template
        - images: Image path mapping for the template
    color_scheme: Color scheme to apply to all slides
    presentation_title: Optional title for the presentation
    presentation_id: Presentation ID (uses current if None)

Example template_sequence:
[
    {
        "template_id": "title_slide",
        "content": {
            "title": "My Presentation",
            "subtitle": "Annual Report 2024",
            "author": "John Doe"
        }
    },
    {
        "template_id": "text_with_image",
        "content": {
            "title": "Key Results",
            "content": "• Achievement 1\n• Achievement 2"
        },
        "images": {
            "supporting": "/path/to/image.jpg"
        }
    }
]

name: get_template_info
description: 
Get detailed information about a specific template.

Args:
    template_id: ID of the template to get information about

name: auto_generate_presentation
description: 
Automatically generate a presentation based on topic and preferences.

Args:
    topic: Main topic/theme for the presentation
    slide_count: Number of slides to generate (3-20)
    presentation_type: Type of presentation ('business', 'academic', 'creative')
    color_scheme: Color scheme to use
    include_charts: Whether to include chart slides
    include_images: Whether to include image placeholders
    presentation_id: Presentation ID (uses current if None)

name: optimize_slide_text
description: 
Optimize text elements on a slide for better readability and fit.

Args:
    slide_index: Index of the slide to optimize
    auto_resize: Whether to automatically resize fonts to fit containers
    auto_wrap: Whether to apply intelligent text wrapping
    optimize_spacing: Whether to optimize line spacing
    min_font_size: Minimum allowed font size
    max_font_size: Maximum allowed font size
    presentation_id: Presentation ID (uses current if None)

name: manage_hyperlinks
description: 
Manage hyperlinks in text shapes and runs.

Args:
    operation: Operation type ("add", "remove", "list", "update")
    slide_index: Index of the slide (0-based)
    shape_index: Index of the shape on the slide (0-based)
    text: Text to make into hyperlink (for "add" operation)
    url: URL for the hyperlink
    run_index: Index of text run within the shape (0-based)
    presentation_id: Optional presentation ID (uses current if not provided)
    
Returns:
    Dictionary with operation results

name: update_chart_data
description: 
Replace existing chart data with new categories and series.

Args:
    slide_index: Index of the slide (0-based)
    shape_index: Index of the chart shape (0-based)
    categories: List of category names
    series_data: List of dictionaries with 'name' and 'values' keys
    presentation_id: Optional presentation ID (uses current if not provided)
    
Returns:
    Dictionary with operation results

name: add_connector
description: 
Add connector lines/arrows between points on a slide.

Args:
    slide_index: Index of the slide (0-based)
    connector_type: Type of connector ("straight", "elbow", "curved")
    start_x: Starting X coordinate in inches
    start_y: Starting Y coordinate in inches
    end_x: Ending X coordinate in inches  
    end_y: Ending Y coordinate in inches
    line_width: Width of the connector line in points
    color: RGB color as [r, g, b] list
    presentation_id: Optional presentation ID (uses current if not provided)
    
Returns:
    Dictionary with operation results

name: manage_slide_masters
description: 
Access and manage slide master properties and layouts.

Args:
    operation: Operation type ("list", "get_layouts", "get_info")
    master_index: Index of the slide master (0-based)
    layout_index: Index of specific layout within master (0-based)
    presentation_id: Optional presentation ID (uses current if not provided)
    
Returns:
    Dictionary with slide master information

name: manage_slide_transitions
description: 
Manage slide transitions and timing.

Args:
    slide_index: Index of the slide (0-based)
    operation: Operation type ("set", "remove", "get")
    transition_type: Type of transition (basic support)
    duration: Duration of transition in seconds
    presentation_id: Optional presentation ID (uses current if not provided)
    
Returns:
    Dictionary with transition information

name: list_presentations
description: List all loaded presentations.
name: switch_presentation
description: Switch to a different loaded presentation.
name: get_server_info
description: Get information about the MCP server.