PPTX
STDIOFastMCP server for creating, editing, and rendering PowerPoint presentations programmatically.
FastMCP server for creating, editing, and rendering PowerPoint presentations programmatically.
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).
Install Python dependencies:
pip install .
(Installs from pyproject.toml for dependencies)
Optional: Install python-dotenv for development environment variables:
pip install python-dotenv
Install LibreOffice (for image rendering):
sudo pacman -S libreoffice-fresh or sudo apt install libreofficebrew install --cask libreofficeStart the server:
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:
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:
HOST=0.0.0.0
PORT=9000
Load the environment variables when starting the server:
python server.py
Or (for development with FastMCP):
fastmcp dev server.py
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/ directory.presentations/templates/.See LICENSE for details.