- Home
- MCP servers
- PPTX
PPTX
- 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.