rcarvalo/powerpoint-mcp-server
If you are the rightful owner of powerpoint-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
PowerPoint MCP Server - FastMCP Edition is a comprehensive server for PowerPoint manipulation using python-pptx, built with FastMCP.
PowerPoint MCP Server - FastMCP Edition
A comprehensive MCP server for PowerPoint manipulation using python-pptx, built with FastMCP.
Features
This server provides 32 specialized tools organized into 11 focused modules:
Presentation Management (7 tools)
- Create/open/save presentations
- Create from template files with layout preservation
- Get presentation info and properties
- Set core properties (title, author, etc.)
Content Management (6 tools)
- Add slides with custom layouts and backgrounds
- Manage text with advanced formatting
- Add and enhance images
- Extract text content
- Populate placeholders
- Add bullet points
Template Operations (7 tools)
- 31+ pre-built slide templates
- Auto-generate presentations from topics
- Apply templates to existing slides
- Optimize text for readability
- 8 color schemes & 5 typography styles
Structural Elements (4 tools)
- Add tables with custom styling
- 20+ shape types (basic, flowchart, polygons)
- Add lines and connectors
- Add text boxes
Professional Design (3 tools)
- Apply professional themes
- Add charts (column, bar, line, pie)
- Advanced text formatting
Specialized Features (5 tools)
- Hyperlink management
- Chart data updates
- Connector lines/arrows
- Slide master management
- Slide transitions
Transport Modes
This server supports two transport modes:
- STDIO (default): For Claude Desktop and MCP clients. Communication via stdin/stdout.
- HTTP: For web applications, APIs, and cloud deployment. RESTful endpoints with streaming support.
Quick Start
Option 1: Claude Desktop (STDIO mode) - Recommended
1. Install dependencies
cd powerpoint-mcp-server
# Install with uv (recommended)
uv sync
# Or manually install dependencies
uv pip install chuk-mcp-server python-pptx Pillow fonttools
2. Test the server
# Test that it works
uv run python server.py --help
3. Configure Claude Desktop
Add to your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"powerpoint": {
"command": "uv",
"args": [
"--directory",
"/Users/remicarvalot/project_pro/powerpoint-mcp-server",
"run",
"python",
"server.py"
]
}
}
}
Important: Replace /Users/remicarvalot/project_pro/powerpoint-mcp-server with the actual path to your installation.
4. Restart Claude Desktop
Your PowerPoint MCP server will now be available with all 32 tools!
Option 2: Web/API (HTTP mode)
Perfect for web applications and cloud deployment.
# Start HTTP server on port 8000
uv run python server.py --http
# Or specify custom port/host
uv run python server.py --port 8000 --host 0.0.0.0
Test with curl:
curl http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
Option 3: Docker (Production Deployment)
Docker automatically runs the server in HTTP mode, perfect for production deployments.
Using docker-compose (easiest)
docker-compose up
Or build manually
# Build the image
docker build -t powerpoint-mcp-server .
# Run the container
docker run -p 8000:8000 powerpoint-mcp-server
Usage Examples
Once connected to Claude Desktop, you can ask:
"Create a new PowerPoint presentation about AI"
"Add a title slide with the title 'Machine Learning 101'"
"Apply the modern_blue color scheme"
"Add a slide with a chart showing quarterly results"
"Create a presentation from the business template"
"Save the presentation as 'my-presentation.pptx'"
Available Tools (32 Total)
Presentation Management
create_presentation- Create new blank presentationcreate_presentation_from_template- Create from template fileopen_presentation- Open existing .pptxsave_presentation- Save to diskget_presentation_info- Get metadataget_template_file_info- Get template detailsset_core_properties- Set title, author, etc.
Content Management
add_slide- Add slides with layoutsget_slide_info- Get slide detailsextract_slide_text- Extract text from slideextract_presentation_text- Extract all textpopulate_placeholder- Fill placeholdersadd_bullet_points- Add formatted bulletsmanage_text- Unified text operationsmanage_image- Add and enhance images
Template Operations
list_slide_templates- List 31+ templatesapply_slide_template- Apply template to slidecreate_slide_from_template- Create from templatecreate_presentation_from_templates- Build from sequenceget_template_info- Get template detailsauto_generate_presentation- AI-style generationoptimize_slide_text- Optimize readability
Structural Elements
add_table- Add formatted tablesadd_shape- Add 20+ shape typesadd_line- Draw linesadd_textbox- Add text boxes
Professional Design
apply_professional_design- Apply themesadd_chart- Add professional chartsformat_text_advanced- Advanced formatting
Specialized Features
update_chart_data- Update chart datamanage_hyperlinks- Manage hyperlinksadd_connector- Add connector linesmanage_slide_masters- Access slide mastersmanage_slide_transitions- Set transitions
Utility Tools
list_presentations- List all loaded presentationsswitch_presentation- Switch between presentationsget_server_info- Get server capabilities
Template System
The server includes 31+ pre-built slide templates with:
Standard Templates:
- title_slide, agenda_slide, text_with_image
- two_column_text, key_metrics_dashboard
- chart_comparison, thank_you_slide
- data_table_slide, full_image_slide
- three_column_layout, quote_testimonial
- process_flow, and more...
Color Schemes (8):
- modern_blue
- corporate_gray
- elegant_green
- warm_red
- pastel_dream
- nature_earth
- neon_vibrant
- minimalist_mono
Typography Styles (5):
- modern_sans
- elegant_serif
- tech_modern
- organic_flow
- brutalist_bold
Environment Configuration
Set custom template directories:
# Unix/Mac
export PPT_TEMPLATE_PATH="/path/to/templates:/another/path"
# Windows
set PPT_TEMPLATE_PATH="C:\templates;D:\more-templates"
Development
Install dev dependencies
uv sync --dev
Run tests
uv run pytest
Type checking
uv run mypy server.py
Linting
uv run ruff check .
Command-Line Options
# Force STDIO mode (default)
python server.py --stdio
python server.py --transport=stdio
# Force HTTP mode
python server.py --http
python server.py --port 8000
python server.py --host 0.0.0.0
python server.py --transport=http
# Enable debug logging
python server.py --debug
python server.py --log-level debug
Architecture
This server combines:
- FastMCP - Lightweight and fast MCP framework
- Office-PowerPoint-MCP-Server - 32 specialized PowerPoint tools
- Modular Design - 11 tool modules + 7 utility modules (3,068 lines)
- Advanced Features - Templates, themes, auto-generation, optimization
Project Structure
powerpoint-mcp-server/
├── server.py # Main server file
├── pyproject.toml # Project configuration
├── tools/ # 11 tool modules
│ ├── presentation_tools.py # Presentation management
│ ├── content_tools.py # Content operations
│ ├── template_tools.py # Template system
│ ├── structural_tools.py # Shapes, tables, lines
│ ├── professional_tools.py # Design & themes
│ ├── chart_tools.py # Chart operations
│ ├── hyperlink_tools.py # Hyperlink management
│ ├── connector_tools.py # Connectors
│ ├── master_tools.py # Slide masters
│ └── transition_tools.py # Transitions
├── utils/ # 7 utility modules
│ ├── template_utils.py # Template system (1,142 lines)
│ ├── design_utils.py # Design tools (688 lines)
│ ├── content_utils.py # Content ops (578 lines)
│ ├── validation_utils.py # Validation (322 lines)
│ └── presentation_utils.py # Presentation ops (216 lines)
├── slide_layout_templates.json # 31+ template definitions
├── Dockerfile # Docker configuration
└── docker-compose.yml # Docker Compose setup
Contributing
This project combines:
- ChukMCPServer - MCP framework
- Office-PowerPoint-MCP-Server - PowerPoint tools
See individual repositories for contribution guidelines.
License
MIT License - See LICENSE file for details.
Version
2.3.0 - FastMCP Edition with full PowerPoint capabilities (Fixed tool schema issues)
Support
For issues:
- ChukMCPServer: https://github.com/chrishayuk/chuk-mcp-server/issues
- PowerPoint features: https://github.com/yourusername/Office-PowerPoint-MCP-Server/issues