ppt-mcp
Allows searching and inserting Google Material Symbols icons as SVG into PowerPoint slides using theme colors.
Click on "Deploy 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., "@ppt-mcpcreate a new presentation with a title slide"
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.
An MCP (Model Context Protocol) server that gives AI agents full control over a live Microsoft PowerPoint instance via COM automation. Unlike file-based libraries like python-pptx, this server interacts directly with a running PowerPoint application.
๐ฌ Demo
An agent building a deck in a live PowerPoint window (15x speed):
https://github.com/user-attachments/assets/178b9b5b-624d-4de0-a1dd-619dc13d4bd7
Related MCP server: google-slides-mcp
โจ Key Features
Real-time control โ Directly manipulates a running PowerPoint instance; changes appear instantly on screen
156 tools across 26 categories โ Slides, shapes, text, tables, charts, animations, SmartArt, media, freeform paths, and more
Safe for AI agents โ
ppt_activate_presentationlocks all tools to a specific file, preventing accidental edits to the wrong presentationGoogle Material Symbols icons โ Search 2,500+ icons by keyword and insert as SVG with theme colors
Theme color awareness โ Use
accent1,accent2, etc. instead of hardcoded RGB values
๐ Requirements
Windows 11
Microsoft PowerPoint
๐ Getting Started
Standard config โ works in Claude Desktop, Cursor, .mcp.json, and most other MCP clients:
{
"mcpServers": {
"powerpoint": {
"command": "uvx",
"args": ["ppt-mcp"]
}
}
}Claude Code
User-scoped (available in all projects)
claude mcp add powerpoint uvx ppt-mcpProject-scoped (stored in .mcp.json, shared with your team)
claude mcp add --scope project powerpoint uvx ppt-mcpCursor
Or add manually to ~/.cursor/mcp.json using the standard config above.
Claude Desktop
Edit %APPDATA%\Claude\claude_desktop_config.json using the standard config above.
Codex
Edit ~/.codex/config.toml:
[mcp_servers.ppt-mcp]
command = "uvx"
args = ["ppt-mcp"]Or use the standard JSON config above in .codex/config.json.
VS Code
code --add-mcp '{"name":"powerpoint","command":"uvx","args":["ppt-mcp"]}'From source
git clone https://github.com/ykuwai/ppt-mcp.git
cd ppt-mcp
uv sync{
"mcpServers": {
"powerpoint": {
"command": "uv",
"args": [
"--directory",
"C:\\path\\to\\ppt-mcp",
"run",
"mcp",
"run",
"src/server.py"
]
}
}
}๐ ๏ธ Tool Categories
Category | Tools | Description |
App | 5 | Connect to PowerPoint, app info, active window, window state, list presentations |
Presentation | 8 | Create (with templates), open, save, close, info, activate target, list templates |
Slides | 10 | Add, delete (bulk), duplicate (positional/multi), move (bulk), copy (cross-presentation), list, info, notes, navigation |
Shapes | 10 | Add shapes/textboxes/pictures/lines, list, info, update, delete, z-order |
Text | 10 | Set/get text, format text ranges, paragraph format, bullets, find/replace, textframe, extract all text as Markdown, typography check |
Placeholders | 6 | List, get, set placeholder content |
Formatting | 3 | Fill, line, shadow |
Tables | 13 | Add tables, get/set cells, batch set data, merge/split cells, add/delete rows/columns, styles, layout, borders |
Export | 4 | PDF, images, slide preview, clipboard copy |
Slideshow | 6 | Start, stop, next, previous, go to slide, status |
Charts | 7 | Add charts, set/get data, format, format axis, series, change type |
Animation | 6 | Transitions, add/list/update/remove/clear animations (entrance, exit, emphasis, motion path, interactive sequences) |
Themes | 4 | Apply themes, get/set theme colors, headers/footers |
Groups | 3 | Group, ungroup, get group items |
Connectors | 2 | Add, format |
Hyperlinks | 3 | Add, get, remove |
Sections | 3 | Add, list, manage |
Properties | 2 | Set/get presentation metadata |
Media | 3 | Video, audio, media settings |
SmartArt | 3 | Add, modify, list layouts |
Edit Operations | 6 | Undo, redo, copy shapes/formatting between slides |
Layout | 7 | Align, distribute, slide size, background, flip, merge shapes |
Effects | 3 | Glow, reflection, soft edge |
Comments | 3 | Add, list, delete |
Advanced | 19 | Tags, fonts (set defaults + bulk replace), crop, picture format, shape export, visibility, selection, view, animation copy, picture from URL, SVG icons, icon search, aspect ratio lock, batch apply, default shape style |
Freeform | 7 | Build freeform paths, get/set node positions, insert/delete nodes, node editing type, segment type |
156 |
๐ก Example Prompts
Just describe what you want in plain language โ no code required.
Simple โ topic only
"Create a 3-slide intro deck for a productivity app called Flowly."
With style direction โ topic + visual style
"Make a 4-slide presentation on the benefits of async work. Dark navy style, add icons for each benefit."
Detailed โ topic + design intent + slide structure
"Build a 5-slide pitch for an AI note-taking app called NoteAI. White background, teal accent. Slides: title, problem, solution, features with icons, closing."
Design keywords that elevate results:
Aspect | Keywords / Phrases | What it does |
Icons |
| Searches Google Material Symbols and places crisp SVG icons automatically |
Color scheme |
| Sets the overall color palette and mood |
Accent color |
| Applies a specific highlight color to headings, icons, and shapes |
Style tone |
| Signals the overall visual personality |
Deck type |
| Guides layout and content density toward the intended purpose |
Slide structure |
| Defines the narrative arc and slide count up front |
Layout |
| Shapes how content is arranged on each slide |
Text density |
| Controls how much text appears and how it's formatted |
Backgrounds |
| Specifies the background treatment across slides |
Emphasis |
| Draws attention to the most important information |
๐ Features in Detail
๐ฏ Presentation Targeting
ppt_activate_presentation sets a session-level target so every subsequent tool call operates on that specific file โ regardless of which window is active in PowerPoint. Switch targets anytime by calling it again.
ppt_activate_presentation(presentation_name="report.pptx")
# All tools now operate on report.pptx
ppt_activate_presentation(presentation_name="demo.pptx")
# Switched โ all tools now operate on demo.pptx๐ Template Support
Auto-detects your personal PowerPoint templates folder (registry, OneDrive, or default paths). Use ppt_list_templates to discover available templates, then ppt_create_presentation(template_path=...) to create a new presentation from any template.
๐จ Google Material Symbols Icons
Search 2,500+ Google Material Symbols icons with ppt_search_icons(query="...") and insert them as SVG with ppt_add_svg_icon:
3 styles: outlined, rounded, sharp
Filled variants: set
filled=TrueTheme colors:
color="accent1"uses the presentation's accent colorAuto-fit: preserves aspect ratio within the specified area
โก Real-Time Navigation
Every write operation automatically navigates PowerPoint to the target slide. You see changes happening in real-time โ no need to manually switch slides.
โ๏ธ Text Formatting
\nโ Paragraph break (Enter). Each paragraph gets its own bullet/indent level.\vโ Line break (Shift+Enter). Stays in the same paragraph, preserving formatting.Per-character formatting with
ppt_format_text_rangeAuto-fit control: shrink text to fit, resize shape, or overflow
๐จ Theme Color Presets & Auto-Generation
ppt_set_theme_colors supports three modes:
17 curated presets โ WCAG AA accessible palettes across 5 categories: Classic (
corporate_blue,executive,consulting), Design Systems (tailwind,chakra,open_color,radix), Nature (ocean,forest,sunset,sage), Modern (nord_light,pastel_deep,swiss), Vibrant (vivid,rainbow,neon_safe)Primary color generation โ provide a single brand color (
primary="#2B579A") to auto-generate a full harmonious palette using color harmony (split-complementary + analogous)Manual โ set individual color slots (
accent1,accent2, etc.)
Modes can be combined: use a preset as a base and override specific slots. All accents are guaranteed 3:1+ contrast on white.
๐ Typography Check
ppt_check_typography detects and optionally auto-fixes common typography issues:
Widow lines โ isolated 1-3 character lines caused by word wrapping
Short lines after soft returns โ side effects of manual line breaks (
\v)Auto-shrunk text โ text silently compressed by PowerPoint's shrink-to-fit feature
Auto-fix strategies include widening text boxes and inserting soft returns.
โ๏ธ Advanced Configuration
Handling PowerPoint Modal Dialogs
When PowerPoint has a modal dialog open (e.g., SmartArt layout picker, Save dialog, Insert dialog), COM calls return RPC_E_CALL_REJECTED. The MCP server automatically retries for up to 15 seconds (5 retries ร 3 s), so the server stays connected and responsive even when a dialog is blocking PowerPoint.
Auto-dismiss (opt-in): By default, the server waits for you to close the dialog manually. To have the server automatically send ESC on the first retry โ dismissing the dialog without user interaction โ set PPT_AUTO_DISMISS_DIALOG=true:
{
"mcpServers": {
"powerpoint": {
"command": "uvx",
"args": ["ppt-mcp"],
"env": {
"PPT_AUTO_DISMISS_DIALOG": "true"
}
}
}
}ESC cancels without committing, so there are no destructive side effects. This is particularly useful in automated workflows where no human is present to close dialogs.
๐ License
MIT
๐ Credits
FastMCP โ Pythonic MCP server framework
pywin32 โ Windows COM automation
Model Context Protocol โ by Anthropic
This server cannot be deployed
Maintenance
Related MCP Connectors
Presentations.AI MCP server โ create designed slide decks from a topic, text, or document.
Generate, edit, merge, translate and PDF-convert PowerPoint (.pptx) over MCP. 8 tools.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
AI presentation and report generation: slides, diagrams, PPTX export, live preview MCP App.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA comprehensive MCP server for PowerPoint manipulation using python-pptx, providing 32 tools organized into 11 modules for creation, management, and professional design.MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to create, read, and edit Google Slides presentations directly from chat, with 39 tools for presentations, slides, elements, and export.131MIT
- AlicenseNot gradedqualityCmaintenanceCross-platform MCP server for Microsoft PowerPoint automation, enabling slide management, template remapping, and real-time evaluation via natural language.MIT
- AlicenseNot gradedqualityCmaintenanceA comprehensive MCP server for PowerPoint manipulation enabling users to create, edit, and format presentations with 32 tools including templates, charts, images, and professional design features.MIT