Home / MCP / Office PowerPoint MCP Server

Office PowerPoint MCP Server

Provides tools to create, edit, template, and design PowerPoint presentations via MCP API + Python backend.

python
Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
    "mcpServers": {
        "ppt": {
            "command": "python",
            "args": [
                "ppt_mcp_server.py"
            ]
        }
    }
}

You have a powerful MCP (Model Context Protocol) server for PowerPoint manipulation built in Python. Version 2.0 delivers 32 tools across 11 modules, enabling end-to-end PowerPoint creation, editing, styling, data visualization, and template-driven workflows with robust error handling and flexible parameterization.

How to use

You use an MCP client to talk to the PowerPoint MCP Server and perform actions such as creating presentations, adding slides, populating text, applying professional designs, inserting images and charts, and exporting final PPTX files. The server is designed to handle complete presentation lifecycles, templates, and advanced design features with consistent support for themes, layouts, and layout-preserving templates.

How to install

Prerequisites you need before installing: Python 3.6 or higher, the pip package manager, and optionally uvx for running packages without a local installation.

Step-by-step installation options you can follow to get the server up and running.

# Prerequisites
python --version
pip --version

# Option A: Setup script (recommended)
# Run the setup script to check prerequisites, install dependencies, and generate MCP configs
python setup_mcp.py

# Option B: Manual installation
# 1) Clone the repository
# 2) Install dependencies
# 3) Make the server executable

Starting the server in different modes allows you to integrate with clients as needed. You can run a standard stdio server or expose a streamable HTTP server for remote access. The following commands illustrate the common start patterns.

# Start the stdio server (local, interactive)
python ppt_mcp_server.py

# Start the streamable-Http server (port 8000)
python ppt_mcp_server.py --transport http --port 8000

# Run in Docker (example)
docker build -t ppt_mcp_server .
docker run -d --rm -p 8000:8000 ppt_mcp_server -t http

Additional sections

Configuration notes for templates and templates paths help you tailor how presentations are created and styled. You can browse, apply, and create from built-in templates, with 25+ templates available and fully dynamic features such as automatic text sizing, wrapping, and professional animations.

Security and environment considerations include managing templates paths and color schemes, plus ensuring access to your presentations is controlled when exposing HTTP endpoints. Use environment variables where appropriate to supply paths and keys without embedding them in code.

Examples demonstrate common workflows such as creating a new presentation, adding slides with a title, populating placeholders, saving to a file, and applying professional design to slides or entire presentations. You can also create and manage presentations from templates, add charts, images, and advanced text configurations.

Available tools

create_presentation

Create a new PowerPoint presentation and obtain a presentation_id for subsequent operations.

create_presentation_from_template

Create a presentation from a template while preserving the theme and layouts.

open_presentation

Open an existing presentation for reading or editing.

save_presentation

Save the current presentation state to a PPTX file.

get_presentation_info

Retrieve comprehensive information about a presentation, including properties and structure.

get_template_file_info

Analyze and report details about a template file, including layouts and masters.

set_core_properties

Set core document properties such as title, subject, author, keywords, and comments.

add_slide

Add a new slide with a chosen layout and optional background styling.

get_slide_info

Get detailed information about a specific slide.

extract_slide_text

NEW extract all text content from a specific slide, including titles and placeholders.

extract_presentation_text

NEW extract text content from all slides in a presentation along with statistics.

populate_placeholder

Fill placeholder shapes with text content.

add_bullet_points

Insert formatted bullet points into text shapes.

manage_text

Unified text tool to add, format, validate, and format runs within text shapes.

manage_image

Unified image tool to add and enhance images within slides.

list_slide_templates

List available slide templates with their features.

apply_slide_template

Apply a structured slide template to an existing slide.

create_slide_from_template

Create a new slide from a template with content mappings.

create_presentation_from_templates

Create a complete presentation from a sequence of templates.

get_template_info

Get detailed information about a specific template.

auto_generate_presentation

Automatically generate a presentation based on a topic.

optimize_slide_text

Optimize text elements for readability and fit within slides.

add_table

Create tables with enhanced formatting and cell styling.

format_table_cell

Format individual table cells.

add_shape

Add shapes with text and formatting options.

add_chart

Create charts with comprehensive customization.

apply_professional_design

Unified design tool to apply themes, slides, and enhancements.

apply_picture_effects

Unified picture effects tool combining multiple visual effects.

manage_fonts

Unified font tool to analyze, optimize, and recommend fonts.

manage_hyperlinks

Complete hyperlink management for text elements.

manage_slide_masters

Access and manage slide master properties and layouts.

add_connector

Add connector lines/arrows between slide elements.

update_chart_data

Replace existing chart data with new categories and series.

manage_slide_transitions

Basic slide transition management.