A cross-platform PowerPoint automation server for Claude Desktop
π― Cross-Platform PowerPoint MCP Server
A cross-platform PowerPoint automation server that works with Claude Desktop via the Model Context Protocol (MCP). Create, edit, and manage PowerPoint presentations on Windows, macOS, and Linux using AI assistance.
β¨ Features
- π Cross-platform compatibility (Windows, macOS, Linux)
- π¨ Complete PowerPoint automation - Create, edit, save presentations
- π Intelligent adapter selection - COM API on Windows, python-pptx everywhere else
- π€ Claude Desktop integration - Control PowerPoint through natural language
- π Rich text manipulation - Add text boxes, update content, set titles
- π Advanced techniques support - Perfect for morph transitions and animations
- π¦ Easy installation - Available on PyPI
π Quick Start
Installation
pip install powerpoint-mcp-server
Platform-specific notes:
- Windows: Optionally install
pywin32for direct PowerPoint COM API access - macOS/Linux: Uses
python-pptxlibrary (installed automatically)
Claude Desktop Configuration
Add to your Claude Desktop configuration file:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/claude/claude_desktop_config.json
{
"mcpServers": {
"powerpoint": {
"command": "python",
"args": ["-m", "powerpoint_mcp_server"]
}
}
}
π¬ Usage Examples
Once configured, interact with PowerPoint through Claude Desktop:
π€ What platform am I running on and what PowerPoint adapter is available?
π€ Please create a new PowerPoint presentation with a title slide called "AI-Powered Presentations"
π€ Add a content slide explaining the benefits of cross-platform automation
π€ Save the presentation to ~/Documents/my-ai-presentation.pptx
π§ Available Functions
Core Operations
initialize_powerpoint()- Initialize PowerPoint connectionget_platform_info()- Get system and adapter informationcreate_presentation()- Create new presentationopen_presentation(path)- Open existing presentationsave_presentation(id, path)- Save presentationclose_presentation(id)- Close presentation
Slide Management
get_slides(presentation_id)- List all slidesadd_slide(presentation_id, layout_type)- Add new slideget_slide_text(presentation_id, slide_id)- Extract slide textset_slide_title(presentation_id, slide_id, title)- Set slide title
Content Editing
add_text_box(presentation_id, slide_id, text, ...)- Add text boxupdate_text(presentation_id, slide_id, shape_id, text)- Update text content
π₯οΈ Platform Support
| Feature | Windows + PowerPoint | Windows (python-pptx) | macOS | Linux |
|---|---|---|---|---|
| Create presentations | β | β | β | β |
| Edit presentations | β | β | β | β |
| Live PowerPoint control | β | β | β | β |
| File-based operations | β | β | β | β |
| Morph transitions* | β | β | β | β |
*Morph transitions require PowerPoint Desktop for playback
π Advanced Use Cases
This MCP server is perfect for:
- AI-assisted presentation creation
- Batch processing PowerPoint files
- Cross-platform presentation workflows
- Advanced animation techniques (liquid masks, morph effects)
- Automated content generation
- Educational presentation tools
ποΈ Architecture
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β Claude Desktop βββββΊβ MCP Protocol βββββΊβ This Server β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β
βΌ
βββββββββββββββββββ
β Platform Detect β
βββββββββββββββββββ
β
ββββββββββββββββββββββΌβββββββββββββββββββββ
βΌ βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Windows COM API β β python-pptx β β Fallback Handlerβ
Tools (12)
initialize_powerpointInitialize PowerPoint connectionget_platform_infoGet system and adapter informationcreate_presentationCreate new presentationopen_presentationOpen existing presentationsave_presentationSave presentationclose_presentationClose presentationget_slidesList all slidesadd_slideAdd new slideget_slide_textExtract slide textset_slide_titleSet slide titleadd_text_boxAdd text boxupdate_textUpdate text contentConfiguration
{"mcpServers": {"powerpoint": {"command": "python", "args": ["-m", "powerpoint_mcp_server"]}}}