MCP Server for PowerPoint
mcp-name: io.github.sbroenne/mcp-server-powerpoint
A Model Context Protocol server that automates
Microsoft PowerPoint for AI assistants. It drives a live PowerPoint desktop
instance via COM automation, so decks are created and edited exactly as they
would be by hand — then exported to images so an AI can visually verify its own
work.
Windows only. Requires Microsoft PowerPoint (desktop) to be installed.
Install
dotnet tool install --global Sbroenne.PowerPointMcp.McpServer
This installs the mcp-powerpoint command. Point your MCP client (Claude
Desktop, VS Code, GitHub Copilot, etc.) at it over stdio:
{
"mcpServers": {
"powerpoint": {
"command": "mcp-powerpoint"
}
}
}
Capabilities
16 tools with 187 operations across 16 domains:
presentation | 20 | create, open, Save As, Save Copy As, close, list, templates, get/set final, document properties, string tags |
slide | 23 | slide lifecycle, backgrounds, sections, comments, import, string tags |
shape | 47 | shape creation, styling, grouping, hyperlinks, placeholders, string tags, get-link-info, update-link, break-link, set-link-auto-update |
textframe | 20 | text content, font formatting, alignment, bullets, auto-size |
table | 12 | tables, cell text, row/column edits, cell fill/border, merge |
notes | 2 | set/get speaker notes |
layout | 4 | set/get slide layout |
pagesetup | 5 | slide size, numbering, footer, date/time |
accessibility | 3 | deterministic audit and reading order |
master | 11 | theme color palettes, title/body placeholder fonts, solid + gradient master backgrounds |
animation | 5 | shape effects, transition read/write |
image | 7 | add picture, brightness/contrast, recolor, crop |
media | 2 | add embedded/linked audio or video, get native media info |
chart | 16 | charts, series, titles, legend, data replacement, styles, colors, data tables |
smartart | 7 | SmartArt insertion and node editing |
export | 3 | export to PDF or images |
Every domain is exposed as a single action-dispatch tool taking an action
parameter — including presentation. Example MCP calls:
presentation(action="create", filePath="C:\\Decks\\demo.pptx")
presentation(action="apply-template", sessionId="...", templatePath="C:\\Templates\\brand.potx")
chart(action="add-chart", session_id="...", slide_index=2, ...)
How it works
ComInterop (STA thread + OLE message filter) → Core (domain command classes) →
PowerPointMcp.Service (shared service layer) → McpServer (stdio host, calling the service
in-process) and CLI (talks to the same service via a background named-pipe daemon). Each open
presentation is a session identified by a sessionId; tools operate on a session until it is
closed.
Links
Licensed under the MIT License.