PPTX

Create Slides with a simple MCP server using Python PPTX library
  • python

32

GitHub Stars

python

Language

6 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "samos123-pptx-mcp": {
      "command": "python",
      "args": [
        "server.py"
      ],
      "env": {
        "HOST": "127.0.0.1",
        "PORT": "8000"
      }
    }
  }
}

You can create, edit, and render PowerPoint (PPTX) presentations programmatically with this FastMCP-powered server. It lets you start new presentations, add slides, insert text, shapes, and images, describe slides, and render slides to PNG files using LibreOffice, all through MCP endpoints you can call from your client applications.

How to use

You interact with the PPTX MCP Server by calling its MCP endpoints from your client. You can create or reset a presentation file, add slides with specific layouts, insert titles, content, and custom text boxes, place shapes, embed images, and request a textual description of a slide. When you need a rendered image of a slide, you can request a PNG after LibreOffice is available on the system. The server saves generated presentations in a dedicated directory so you can download and reuse them later.

How to install

Prerequisites you need on your machine before starting are Python 3.12 or newer, the Python packages for PPTX handling and image processing, and LibreOffice for rendering slides to images.

Install Python dependencies from your project directory using the Python packaging tool.

pip install .

Optional for development, bring in environment configuration utilities to manage variables.

pip install python-dotenv

Install LibreOffice on your platform to enable slide rendering to PNGs. Use your system package manager or download from the official site and ensure the binary is in your PATH.

# Linux (example)
sudo apt install libreoffice

# macOS (example)
brew install --cask libreoffice

# Windows
# Download from https://www.libreoffice.org/download/download/

Start the server with Python when you are ready to begin creating presentations.

python server.py

For development with environment variables you can specify the host and port directly in your shell.

HOST=127.0.0.1 PORT=8000 python server.py

Alternatively, you can create a development wrapper with FastMCP for live development.

fastmcp dev server.py

Additional notes

Presentation files are stored under a presentations directory. You can place custom PPTX templates in presentations/templates to reuse layouts and styles across new presentations.

The server exposes a set of MCP tools you can call to perform common tasks. Each tool corresponds to an action you would perform in a PPTX editor, but happens programmatically through the MCP interface.

Available tools

create_or_clear_presentation

Create a new PPTX file or clear an existing one to start fresh.

add_slide

Insert a slide with a specified layout index into the presentation.

add_title_and_content

Add a slide with a title and content block for quick composition.

add_textbox

Insert a custom textbox with specific position, size, font size, and styling.

add_shape

Insert a shape on a slide with optional text and positioning.

add_picture

Embed an image into a slide at a specified location and size.

get_slide_content_description

Retrieve a textual description of a slide’s content for verification.

get_slide_image

Render and retrieve a PNG image of a slide (requires LibreOffice).

get_pptx_file

Download or retrieve the generated PPTX file.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational