Office-PowerPoint-MCP-Server
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
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.