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
-
Install Python dependencies:
pip install .
(Installs from
pyproject.tomlfor dependencies) -
Optional: Install python-dotenv for development environment variables:
pip install python-dotenv
-
Install LibreOffice (for image rendering):
- Linux:
sudo pacman -S libreoffice-freshorsudo apt install libreoffice - macOS:
brew install --cask libreoffice - Windows: Download from libreoffice.org
- Linux:
Usage
Start 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
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.
Metadata
Release files for iflow-mcp_pptx-mcp-server 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_pptx_mcp_server-0.1.0.tar.gz | 11.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_pptx_mcp_server-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.1 kB
Release files / iflow_mcp_pptx_mcp_server-0.1.0.tar.gz
| Download URL | iflow_mcp_pptx_mcp_server-0.1.0.tar.gz |
|---|---|
| Size | 11.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c0c5db6196725a619636c6197673c85c98fc5aaf83ef789c5440db44fee05fff
|
|
BLAKE2b-256 checksum How to use checksums |
49f28f8d313edef30a36956d20f5559802929a1a616682632e372e220dfe22ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / iflow_mcp_pptx_mcp_server-0.1.0-py3-none-any.whl
| Download URL | iflow_mcp_pptx_mcp_server-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fcaffee0fc70f8217fc4a529066867bd11cfa7d01d41436b7032ead620b50bbe
|
|
BLAKE2b-256 checksum How to use checksums |
2b0773382f71ea873b1bbd49da996e7eae19cb7d874c3f7977bbff269abe6be4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|