trackmcp
Back to directory

Create Slides with a simple MCP server using Python PPTX library

24 stars PythonDeveloper Kits Updated Oct 24, 2025

Documentation

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)
  • python-dotenv (for development environment configuration)

Installation

1. Install Python dependencies:

bash
pip install .

*(Installs from `pyproject.toml` for dependencies)*

2. Optional: Install python-dotenv for development environment variables:

bash
pip install python-dotenv

3. Install LibreOffice (for image rendering):

    Usage

    Start the server:

    bash
    python server.py

    For development with environment variables:

    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:

    bash
    HOST=0.0.0.0 PORT=9000 python server.py

    OR

    Create/edit the `.env` file in the project root:

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

    code
    HOST=0.0.0.0
    PORT=9000

    Load the environment variables when starting the server:

    bash
    python server.py

    Or (for development with FastMCP):

    bash
    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.

    Frequently asked questions

    What is pptx-mcp?

    pptx-mcp is Create Slides with a simple MCP server using Python PPTX library

    How do I install pptx-mcp?

    Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

    Is pptx-mcp open source?

    Yes — it is hosted on GitHub at https://github.com/samos123/pptx-mcp and has 24 stars.

    Related MCP tools

    Run your own MCP server? See who uses it and what to fix.

    Measure it with TrackMCP