Office-PowerPoint-MCP-Server
Office-PowerPoint-MCP-Server is hosted online, so all tools can be tested directly either in theTools 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@mcpreview.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
- create_presentation: Create a new PowerPoint presentation.
- create_presentation_from_template: Create a new PowerPoint presentation from a template file.
- open_presentation: Open an existing PowerPoint presentation from a file.
- save_presentation: Save a presentation to a file.
- get_presentation_info: Get information about a presentation.
- get_template_file_info: Get information about a template file including layouts and properties.
- set_core_properties: Set core document properties.
- add_slide: Add a new slide to the presentation with optional background styling.
- get_slide_info: Get information about a specific slide.
- populate_placeholder: Populate a placeholder with text.
- add_bullet_points: Add bullet points to a placeholder.
- manage_text: Unified text management tool for adding, formatting, validating text, and formatting multiple text runs.
- manage_image: Unified image management tool for adding and enhancing images.
- add_table: Add a table to a slide with enhanced formatting options.
- format_table_cell: Format a specific table cell.
- add_shape: Add an auto shape to a slide with enhanced options.
- add_chart: Add a chart to a slide with comprehensive formatting options.
- apply_professional_design: Unified professional design tool for themes, slides, and visual enhancements. This applies professional styling and themes rather than structural layout changes.
- apply_picture_effects: Apply multiple picture effects in combination.
- manage_fonts: Unified font management tool for analysis, optimization, and recommendations.
- list_slide_templates: List all available slide layout templates.
- 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)
- 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)
- 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" } } ]
- get_template_info: Get detailed information about a specific template. Args: template_id: ID of the template to get information about
- 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)
- 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)
- 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
- 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
- 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
- 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
- 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
- list_presentations: List all loaded presentations.
- switch_presentation: Switch to a different loaded presentation.
- get_server_info: Get information about the MCP server.