Used for rendering PowerPoint slides as PNG images, enabling visual export of presentation content for preview or sharing purposes.
Leverages Python libraries like python-pptx for programmatically creating and manipulating PowerPoint presentations, enabling slide creation, content insertion, and presentation formatting.
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.
Related MCP server: PowerPoint MCP Server
Requirements
Python 3.12+
LibreOffice (for slide image rendering; must be installed separately and available in your system PATH)
python-dotenv (for development environment configuration)
Installation
Install Python dependencies:
pip install .(Installs from
Optional: Install python-dotenv for development environment variables:
pip install python-dotenvInstall LibreOffice (for image rendering):
Linux:
sudo pacman -S libreoffice-freshorsudo apt install libreofficemacOS:
brew install --cask libreofficeWindows: Download from libreoffice.org
Usage
Start the server:
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:
OR
Create/edit the .env file in the project root:
For example, to run on all interfaces and port 9000:
Load the environment variables when starting the server:
Or (for development with FastMCP):
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.