Office-PowerPoint-MCP-Server

Office-PowerPoint-MCP-Server

4.3

Office-PowerPoint-MCP-Server is hosted online, so all tools can be tested directly either in theInspector tabor in theOnline Client.

If you are the rightful owner of Office-PowerPoint-MCP-Server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A MCP server for PowerPoint manipulation using python-pptx, providing tools for creating, editing, and manipulating PowerPoint presentations.

The Office-PowerPoint-MCP-Server is a Model Context Protocol server designed to facilitate the manipulation of PowerPoint presentations using the python-pptx library. It allows users to create, edit, and manage PowerPoint files programmatically through a set of defined tools and commands. This server is particularly useful for developers and automation scripts that need to handle PowerPoint presentations without manual intervention. It supports a wide range of features including adding slides, images, text, tables, shapes, and charts, as well as modifying document properties. The server can be installed via Smithery or manually, and it integrates seamlessly with platforms like Claude Desktop. It offers flexibility in installation and configuration, supporting both local and UVX-based setups.

Features

  • Round-trip any Open XML presentation (.pptx file) including all its elements
  • Add slides and populate text placeholders
  • Add images, textboxes, tables, and auto shapes to slides
  • Add and manipulate charts such as column, bar, line, and pie charts
  • Access and change core document properties like title and subject

Tools

  1. create_presentation

    Create a new PowerPoint presentation.

  2. create_presentation_from_template

    Create a new PowerPoint presentation from a template file.

  3. open_presentation

    Open an existing PowerPoint presentation from a file.

  4. save_presentation

    Save a presentation to a file.

  5. get_presentation_info

    Get information about a presentation.

  6. get_template_file_info

    Get information about a template file including layouts and properties.

  7. set_core_properties

    Set core document properties.

  8. add_slide

    Add a new slide to the presentation with optional background styling.

  9. get_slide_info

    Get information about a specific slide.

  10. populate_placeholder

    Populate a placeholder with text.

  11. add_bullet_points

    Add bullet points to a placeholder.

  12. manage_text

    Unified text management tool for adding, formatting, validating text, and formatting multiple text runs.

  13. manage_image

    Unified image management tool for adding and enhancing images.

  14. add_table

    Add a table to a slide with enhanced formatting options.

  15. format_table_cell

    Format a specific table cell.

  16. add_shape

    Add an auto shape to a slide with enhanced options.

  17. add_chart

    Add a chart to a slide with comprehensive formatting options.

  18. apply_professional_design

    Unified professional design tool for themes, slides, and visual enhancements. This applies professional styling and themes rather than structural layout changes.

  19. apply_picture_effects

    Apply multiple picture effects in combination.

  20. manage_fonts

    Unified font management tool for analysis, optimization, and recommendations.

  21. list_slide_templates

    List all available slide layout templates.

  22. apply_slide_template

        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)
        
    
  23. create_slide_from_template

        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)
        
    
  24. create_presentation_from_templates

        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"
                }
            }
        ]
        
    
  25. get_template_info

        Get detailed information about a specific template.
        
        Args:
            template_id: ID of the template to get information about
        
    
  26. auto_generate_presentation

        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)
        
    
  27. optimize_slide_text

        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)
        
    
  28. manage_hyperlinks

        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
        
    
  29. update_chart_data

        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
        
    
  30. add_connector

        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
        
    
  31. manage_slide_masters

        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
        
    
  32. manage_slide_transitions

        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
        
    
  33. list_presentations

    List all loaded presentations.

  34. switch_presentation

    Switch to a different loaded presentation.

  35. get_server_info

    Get information about the MCP server.