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:(Installs from
pyproject.toml
for dependencies) - Optional: Install python-dotenv for development environment variables:
- Install LibreOffice (for image rendering):
- Linux:
sudo pacman -S libreoffice-fresh
orsudo apt install libreoffice
- macOS:
brew install --cask libreoffice
- Windows: Download from libreoffice.org
- Linux:
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.
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
슬라이드 생성, 콘텐츠 삽입, PNG 렌더링 기능을 갖춘 PowerPoint(PPTX) 프레젠테이션을 프로그래밍 방식으로 생성, 편집, 렌더링하기 위한 FastMCP 기반 서버입니다.
Related MCP Servers
- AsecurityAlicenseAqualityCreates and manipulates PowerPoint presentations with capabilities for adding various slide types, generating images, and incorporating tables and charts through natural language commands.Last updated -11123PythonMIT License
- -securityFlicense-qualityA Model Context Protocol server that enables AI models to create and manipulate PowerPoint presentations with advanced features like financial charts, formatting, and template management.Last updated -19Python
- -securityAlicense-qualityA server that enables creating and editing PowerPoint presentations programmatically through the Model Context Protocol, supporting features like adding slides, images, textboxes, charts, and tables.Last updated -841PythonMIT License
- AsecurityAlicenseAqualityA server that enables AI assistants to create and edit PowerPoint presentations with features for adding various slide types, tables, charts, and AI-generated images through Stable Diffusion.Last updated -1139PythonMIT License