PPTX MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PPTX MCP Servercreate a 3-slide presentation about quarterly sales results"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
š PPTX MCP Server
A Model Context Protocol (MCP) server that enables AI assistants to create, edit, and manipulate PowerPoint presentations programmatically.
⨠Features
Full PowerPoint Control - Create, read, and modify
.pptxfiles without needing PowerPoint installedAI-Native Design - Built specifically for LLMs to generate and edit presentations through structured JSON
Rich Formatting Support - Text styling, colors, alignment, bullets, shapes, and backgrounds
Template Workflows - Extract content from existing presentations, modify, and regenerate
Visual Debugging - Generate thumbnail grids to preview slides programmatically
Office XML Access - Direct access to underlying OOXML for advanced customization
Related MCP server: Office-PowerPoint-MCP
š Quick Start
1. Install
# Clone the repository
git clone https://github.com/YOUR_USERNAME/pptx-mcp-server.git
cd pptx-mcp-server
# Install the package
pip install -e .2. Configure Your MCP Client
Add to your MCP settings:
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"pptx": {
"command": "python",
"args": ["-m", "pptx_mcp_server"]
}
}
}Add to your MCP configuration:
{
"mcpServers": {
"pptx": {
"command": "python",
"args": ["-m", "pptx_mcp_server"]
}
}
}Specify the full path to your Python interpreter:
{
"mcpServers": {
"pptx": {
"command": "/path/to/your/python",
"args": ["-m", "pptx_mcp_server"]
}
}
}Examples:
Conda:
/Users/username/miniconda3/bin/pythonvenv:
/path/to/project/.venv/bin/python
3. Restart Your MCP Client
Restart Claude Desktop, Cursor, or your MCP client to load the server.
š¦ Requirements
Python 3.10+
Dependencies (installed automatically):
mcp- Model Context Protocol SDKpython-pptx- PowerPoint file manipulationPillow- Image processinglxml- XML parsingdefusedxml- Secure XML parsing
Optional (for thumbnails)
# macOS
brew install --cask libreoffice
brew install poppler
# Ubuntu/Debian
sudo apt-get install libreoffice poppler-utilsš ļø Available Tools
Tool | Description |
| Create new presentations from scratch |
| Extract text content with positions and formatting |
| Replace text using JSON specifications |
| Duplicate, delete, and reorder slides |
| Generate visual thumbnail grids |
| Extract Office files to editable XML |
| Rebuild Office files from XML |
| Validate document structure |
š Usage Examples
Create a New Presentation
{
"output_path": "/path/to/presentation.pptx",
"layout": "16:9",
"slides": [
{
"background": "#0f172a",
"shapes": [
{
"type": "textbox",
"left": 0.5,
"top": 3,
"width": 12,
"height": 1.5,
"text": "Welcome to My Presentation",
"font_size": 54,
"bold": true,
"color": "#ffffff",
"alignment": "center"
},
{
"type": "textbox",
"left": 0.5,
"top": 5,
"width": 12,
"height": 1,
"text": "Subtitle goes here",
"font_size": 24,
"color": "#94a3b8",
"alignment": "center"
}
]
},
{
"shapes": [
{
"type": "textbox",
"left": 0.5,
"top": 0.5,
"width": 12,
"height": 1,
"text": "Key Points",
"font_size": 36,
"bold": true
},
{
"type": "textbox",
"left": 0.5,
"top": 1.8,
"width": 12,
"height": 5,
"paragraphs": [
{"text": "First important point", "font_size": 24, "bullet": true},
{"text": "Second important point", "font_size": 24, "bullet": true},
{"text": "Third important point", "font_size": 24, "bullet": true}
]
}
]
}
]
}Supported shape types:
textbox- Text contentrectangle- Rectangle (can contain text)rounded_rectangle- Rounded cornersoval- Circle/ellipseimage- Image file (usepathproperty)line- Line connector
Supported layouts: 16:9, 4:3, widescreen, standard
Extract Text Inventory
Get all text content from an existing presentation:
{
"pptx_path": "/path/to/presentation.pptx"
}Returns structured JSON:
{
"slide-0": {
"shape-0": {
"left": 0.5,
"top": 1.0,
"width": 12.0,
"height": 1.5,
"paragraphs": [
{"text": "Title Text", "font_size": 44.0, "bold": true}
]
}
}
}Replace Text Content
Modify text in an existing presentation:
{
"pptx_path": "/path/to/template.pptx",
"output_path": "/path/to/output.pptx",
"replacements_json": {
"slide-0": {
"shape-0": [
{"text": "New Title", "font_size": 44, "bold": true}
]
}
}
}Rearrange Slides
Reorder, duplicate, or remove slides:
{
"template_path": "/path/to/template.pptx",
"output_path": "/path/to/output.pptx",
"slide_sequence": "0,2,2,1,3"
}0,2,2,1,3ā Keep slide 0, duplicate slide 2, then slides 1 and 3Omit an index to delete that slide
Unpack/Pack for XML Editing
// Unpack to directory
{
"office_file": "/path/to/document.pptx",
"output_dir": "/path/to/unpacked"
}
// Pack back to file
{
"input_dir": "/path/to/unpacked",
"output_file": "/path/to/output.pptx"
}š§ Troubleshooting
Ensure you're using the correct Python environment:
# Check which Python pip uses
pip --version
# Install with specific Python
/path/to/python -m pip install -e .Verify the config file path is correct for your OS
Ensure JSON syntax is valid (no trailing commas)
Restart the MCP client completely
Check logs for errors
Install LibreOffice and poppler:
# macOS
brew install --cask libreoffice && brew install poppler
# Linux
sudo apt-get install libreoffice poppler-utilsEnsure the output paths are writable and parent directories exist.
š Project Structure
pptx-mcp-server/
āāā pyproject.toml # Package configuration
āāā README.md
āāā pptx_mcp_server/
āāā __init__.py
āāā server.py # MCP server implementation
āāā tools/
āāā __init__.py
āāā create.py # Create new presentations
āāā inventory.py # Extract text content
āāā replace.py # Text replacement
āāā rearrange.py # Slide manipulation
āāā thumbnail.py # Visual thumbnails
āāā ooxml.py # XML pack/unpack/validateš¤ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository
Create your feature branch (
git checkout -b feature/AmazingFeature)Commit your changes (
git commit -m 'Add some AmazingFeature')Push to the branch (
git push origin feature/AmazingFeature)Open a Pull Request
š Acknowledgments
Built with python-pptx
Uses the Model Context Protocol by Anthropic
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceCreates and manipulates PowerPoint presentations with capabilities for adding various slide types, generating images, and incorporating tables and charts through natural language commands.Last updated11144MIT
- Alicense-qualityCmaintenanceEnables AI assistants to programmatically create, manipulate, and analyze Microsoft PowerPoint presentations with advanced formatting and template management.Last updated4MIT
- Alicense-qualityDmaintenanceEnables AI assistants to create and manipulate PowerPoint presentations programmatically, including adding slides, exporting to PDF, and reading metadata.Last updated835MIT
- Flicense-qualityCmaintenanceEnables AI-powered generation of PowerPoint presentations with dynamic content, themes, and tones. Supports custom topics, audience, and slide count via the generate_ppt tool.Last updated
Related MCP Connectors
Generate, edit, and export AI presentations to PDF, PPTX, or a shareable link.
Deterministic, fully editable PowerPoint from typed slide intents. 150+ layouts, brand templates.
Presentations.AI MCP server ā create designed slide decks from a topic, text, or document.
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/shjanjua/pptx-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server