Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT and other tools is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AI Fire in da houseCheck it out free

pptx-mcp

MCP.Pizza Chef: samos123

pptx-mcp is a FastMCP-powered server enabling programmatic creation, editing, and rendering of PowerPoint presentations. It supports slide creation, text and shape insertion, image embedding, and slide rendering to PNG using LibreOffice. Built with Python 3.12+, it leverages python-pptx and Pillow libraries to manipulate PPTX files, making it ideal for automated slide generation and dynamic presentation workflows.

Use This MCP server To

Generate PowerPoint presentations programmatically from templates Insert custom text, shapes, and images into slides automatically Render slides as PNG images for previews or thumbnails Reset or clear existing presentations for reuse Download dynamically created PPTX files for sharing or editing Summarize slide contents with textual descriptions for validation

README

PPTX MCP Server

A FastMCP-powered server for programmatically creating, editing, and rendering PowerPoint (PPTX) presentations. Supports slide creation, text and shape insertion, image embedding, and slide rendering to PNG (with LibreOffice).

Features

  • Create/Clear Presentations: Start new or reset existing PPTX files.
  • Add Slides: Insert slides with customizable layouts.
  • Text & Content: Add titles, content, and custom textboxes to slides.
  • Shapes: Insert a wide variety of PowerPoint shapes (including flowchart elements).
  • Images: Embed images into slides.
  • Slide Description: Get a textual summary of slide contents for verification.
  • Slide Rendering: Render slides as PNG images (requires LibreOffice).
  • Download PPTX: Download the generated presentation file.

Requirements

  • Python 3.12+
  • python-pptx
  • Pillow
  • FastMCP
  • LibreOffice (for slide image rendering; must be installed separately and available in your system PATH)

Installation

  1. Install Python dependencies:

    pip install -r requirements.txt

    (Or see pyproject.toml for dependencies)

  2. Install LibreOffice (for image rendering):

    • Linux: sudo pacman -S libreoffice-fresh or sudo apt install libreoffice
    • macOS: brew install --cask libreoffice
    • Windows: Download from libreoffice.org

Usage

Start the server:

python server.py

You can set the server's host and port using environment variables:

  • HOST (default: 127.0.0.1)
  • PORT (default: 8000)

For example, to run on all interfaces and port 9000:

HOST=0.0.0.0 PORT=9000 python server.py

Or (for development with FastMCP):

fastmcp dev server.py

API Overview

The server exposes tools and resources via FastMCP, including:

  • create_or_clear_presentation(filename)
  • add_slide(filename, layout_index)
  • add_title_and_content(filename, slide_index, title, content)
  • add_textbox(filename, slide_index, text, left_inches, top_inches, width_inches, height_inches, font_size_pt, bold)
  • add_shape(filename, slide_index, shape_type_name, left_inches, top_inches, width_inches, height_inches, text)
  • add_picture(filename, slide_index, image, left_inches, top_inches, width_inches, height_inches)
  • get_slide_content_description(filename, slide_index)
  • get_slide_image(filename, slide_index) (requires LibreOffice)
  • get_pptx_file(filename)

See the code for full parameter details and available shape types.

Presentations & Templates

  • Presentations are saved in the presentations/ directory.
  • You can add your own templates in presentations/templates/.

License

See LICENSE for details.

pptx-mcp FAQ

What dependencies are required to run pptx-mcp?
pptx-mcp requires Python 3.12+, python-pptx for PPTX manipulation, Pillow for image processing, FastMCP for MCP protocol support, and LibreOffice for slide rendering to PNG.
How does pptx-mcp render slides to images?
It uses LibreOffice in headless mode to convert PPTX slides into PNG images for visual previews.
Can pptx-mcp create new presentations from scratch?
Yes, it can start new presentations or clear existing ones to reset the slide deck.
Is it possible to add custom shapes and flowchart elements?
Yes, pptx-mcp supports inserting a wide variety of PowerPoint shapes including flowchart elements.
How can I verify the content of slides created by pptx-mcp?
The server provides textual summaries of slide contents to help verify what has been added.
Can I download the generated PowerPoint file?
Yes, pptx-mcp allows downloading the dynamically created PPTX presentation files.
What Python version is required for pptx-mcp?
Python 3.12 or higher is required to run pptx-mcp.
Does pptx-mcp support adding images to slides?
Yes, you can embed images into slides programmatically using pptx-mcp.