Complete Feature Reference¶
PowerPoint MCP Server exposes 32 MCP tools with 215 operations across 17 domains. The tool total includes 15 read-only aliases; the operation total counts each unique action once. Every domain is a single action-dispatch tool that takes an action parameter — for example presentation(action="open", filePath="C:\\Decks\\q4.pptx") or chart(action="add-chart", presentation_session_id="...", slide_index=2, ...).
The CLI mirrors the same domain model:
pptcli session <action> ...for thepresentationdomain's session/template/property workpptcli <domain> <action> ...for all other domains, such aspptcli chart add-chart ...
Tool matrix¶
| Tool | Ops | What it covers | MCP call shape | CLI shape |
|---|---|---|---|---|
presentation | 20 | Session lifecycle, Save As/copy, templates, advisory Mark as Final, document properties, string tags | presentation(action="...", ...) | pptcli session <action> ... |
slide | 26 | Slide lifecycle, visibility, backgrounds, sections, comments, import, string tags | slide(action="...", presentation_session_id=..., ...) | pptcli slide <action> -s <SESSION_ID> ... |
shape | 57 | Shapes, free-floating and attached connectors, WordArt, 3D rotation, alignment/distribution, styling, grouping, boolean merging, hyperlinks, linked pictures, placeholders, duplication and cross-slide copying, string tags | shape(action="...", presentation_session_id=..., ...) | pptcli shape <action> -s <SESSION_ID> ... |
textframe | 22 | Text content, find/replace, and text formatting | textframe(action="...", presentation_session_id=..., ...) | pptcli textframe <action> -s <SESSION_ID> ... |
table | 12 | Table creation and cell editing/formatting | table(action="...", presentation_session_id=..., ...) | pptcli table <action> -s <SESSION_ID> ... |
notes | 2 | Speaker notes | notes(action="...", presentation_session_id=..., ...) | pptcli notes <action> -s <SESSION_ID> ... |
layout | 4 | Slide layouts | layout(action="...", presentation_session_id=..., ...) | pptcli layout <action> -s <SESSION_ID> ... |
pagesetup | 5 | Slide size, numbering, footer, date/time | pagesetup(action="...", presentation_session_id=..., ...) | pptcli pagesetup <action> -s <SESSION_ID> ... |
accessibility | 3 | Deterministic audit and reading order | accessibility(action="...", presentation_session_id=..., ...) | pptcli accessibility <action> -s <SESSION_ID> ... |
master | 12 | Theme color/font inspection, slide master fonts and backgrounds | master(action="...", presentation_session_id=..., ...) | pptcli master <action> -s <SESSION_ID> ... |
animation | 5 | Shape effects and slide transitions | animation(action="...", presentation_session_id=..., ...) | pptcli animation <action> -s <SESSION_ID> ... |
image | 16 | Picture insertion, compression, crop frames, brightness/contrast, recoloring, and transparency | image(action="...", presentation_session_id=..., ...) | pptcli image <action> -s <SESSION_ID> ... |
media | 2 | Embedded or linked audio/video insertion and native media metadata | media(action="...", presentation_session_id=..., ...) | pptcli media <action> -s <SESSION_ID> ... |
chart | 16 | Native charts, titles, legend, data replacement, styles, colors, data tables | chart(action="...", presentation_session_id=..., ...) | pptcli chart <action> -s <SESSION_ID> ... |
smartart | 7 | SmartArt diagrams and node editing | smartart(action="...", presentation_session_id=..., ...) | pptcli smartart <action> -s <SESSION_ID> ... |
export | 3 | PDF delivery and export-to-verify image rendering | export(action="...", presentation_session_id=..., ...) | pptcli export <action> -s <SESSION_ID> ... |
customshow | 3 | Named custom shows: curated, ordered subsets of a presentation's slides | customshow(action="...", presentation_session_id=..., ...) | pptcli customshow <action> -s <SESSION_ID> ... |
Domain reference¶
presentation tool (20 operations)¶
Use presentation for session lifecycle, Save As/copy, templates/themes, Mark as Final, and document properties. create and open establish a session and return a presentation_session_id; the remaining edit/read actions use that presentation_session_id.
| Action | What it does |
|---|---|
create | Create a new presentation file, save it immediately, and leave the session open. |
open | Open an existing presentation file and start a session. |
close | Close an open session, optionally saving first; PowerPoint shutdown continues in the background. |
list | List all currently open sessions. |
test | Check whether PowerPoint can open a file without retaining a live session. |
save-as | Save the active presentation under a new .pptx, .pptm, or .ppt path and update the session to that path. Existing files require overwrite=true. |
save-copy-as | Save a copy using the active presentation's current format without changing the active presentation or session path. Existing files require overwrite=true. |
apply-template | Apply a .potx/.potm/.pot or .pptx/.pptm template source while preserving slide content. |
get-theme-name | Read the currently applied design/theme name. |
get-final | Read PowerPoint's advisory Mark as Final editing flag. It is not authentication, encryption, or access control. |
set-final | Save current changes, then set or clear PowerPoint's advisory Mark as Final editing flag. |
set-document-property | Set a built-in document metadata property such as Title or Author. |
get-document-property | Read a built-in document metadata property. |
set-custom-property | Create or update a custom document property. |
get-custom-property | Read a custom document property. |
remove-custom-property | Remove a custom document property. |
set-tag | Create or update a case-insensitive presentation string tag. |
get-tag | Read a presentation string tag by case-insensitive name. |
list-tags | List presentation string tags in native 1-based order. |
delete-tag | Delete a presentation string tag by case-insensitive name. |
Exact action order: create, open, close, list, test, save-as, save-copy-as, apply-template, get-theme-name, get-final, set-final, set-document-property, get-document-property, set-custom-property, get-custom-property, remove-custom-property, set-tag, get-tag, list-tags, delete-tag
slide tool (26 operations)¶
| Action | What it does |
|---|---|
add-blank | Add a blank slide. |
get-count | Return the slide count. |
inspect | Return bounded slide metadata and text previews. |
delete | Delete a slide by 1-based index. |
duplicate | Duplicate a slide. |
move-to | Move a slide to a new 1-based position. |
set-background-color | Set a slide's solid background color. |
get-background-color | Read a slide's solid background color / master-follow state. |
set-gradient-background | Set a slide's gradient background. |
get-gradient-background | Read a slide's gradient background. |
add-section | Add a section. |
set-hidden | Include or exclude a slide from slide-show playback. |
set-display-master-shapes | Show or hide shapes inherited from the slide master. |
rename-section | Rename a section. |
delete-section | Delete a section. |
get-section-count | Return the section count. |
get-section-name | Read a section name. |
list-comments | List legacy slide comments exposed by the native PowerPoint COM API. |
add-comment | Add a legacy comment to a slide. |
delete-comment | Delete a legacy comment by 1-based index. |
clear-comments | Remove all legacy comments from a slide. |
import-from-file | Insert a 1-based source slide range after a destination slide. |
Exact action order: add-blank, get-count, inspect, delete, duplicate, move-to, set-background-color, get-background-color, set-gradient-background, get-gradient-background, add-section, rename-section, delete-section, get-section-count, get-section-name, list-comments, add-comment, delete-comment, clear-comments, set-hidden, set-display-master-shapes, import-from-file, set-tag, get-tag, list-tags, delete-tag
shape tool (57 operations)¶
Use shape for shape creation, WordArt, geometry, alignment/distribution, styling, 3D effects, grouping and boolean merging, naming, alt text, hyperlinks, linked pictures, placeholders, same-slide duplication, and cross-slide copying.
Exact action order: add-rectangle, add-text-box, add-text-effect, add-auto-shape, add-line, add-connector, add-attached-connector, get-count, delete, set-position, set-size, set-fill, get-fill, set-line, get-line, copy-formatting, duplicate, copy-to-slide, set-rotation, get-rotation, set-3d-rotation, get-3d-rotation, flip, set-z-order, set-shadow, get-shadow, set-glow, get-glow, set-reflection, get-reflection, set-soft-edge, get-soft-edge, set-bevel, get-bevel, group, align, distribute, ungroup, merge, set-name, get-name, set-alt-text, get-alt-text, set-hyperlink, get-hyperlink, remove-hyperlink, get-link-info, update-link, break-link, set-link-auto-update, list-placeholders, set-placeholder-text, set-placeholder-image, set-tag, get-tag, list-tags, delete-tag
textframe tool (22 operations)¶
Use textframe for text content and font/paragraph formatting on a shape's text frame. find-text and replace-text perform literal, non-overlapping matching within the selected shape, with optional case and whole-word matching. Replacement can delete matches with an explicit empty string and preserves character formatting outside the matched ranges.
Exact action order: set-text, get-text, find-text, replace-text, set-font-size, get-font-size, set-bold, get-bold, set-font-color, get-font-color, set-italic, get-italic, set-underline, get-underline, set-font-name, get-font-name, set-alignment, get-alignment, set-bullet, get-bullet, set-auto-size, get-auto-size
table tool (12 operations)¶
Use table for native PowerPoint tables.
Exact action order: add-table, set-cell-text, get-cell-text, insert-row, delete-row, insert-column, delete-column, set-cell-fill, get-cell-fill, set-cell-border, get-cell-border, merge-cells
notes tool (2 operations)¶
Exact action order: set-notes-text, get-notes-text
layout tool (4 operations)¶
Exact action order: set-layout, get-layout, list-layouts, delete-layout
pagesetup tool (5 operations)¶
Use pagesetup for presentation-wide slide dimensions, numbering, and footer settings.
Exact action order: get-settings, set-size, set-first-slide-number, get-footer, set-footer
accessibility tool (3 operations)¶
Use accessibility for deterministic checks and slide reading order. The audit covers missing alternative text on visual content and empty title placeholders; it is not an AI writing review.
Exact action order: audit, get-reading-order, set-reading-order
master tool (12 operations)¶
Use master for theme color/font inspection, deck-wide master placeholder fonts, and master backgrounds.
Exact action order: get-title-font, set-title-font, get-body-font, set-body-font, get-background-color, set-background-color, set-gradient-background, get-gradient-background, list-masters, get-theme-colors, get-theme-fonts, delete-master
animation tool (5 operations)¶
Exact action order: add-effect, get-effect-count, delete-effect, get-transition, set-transition
image tool (16 operations)¶
Use image to insert pictures, adjust color and transparency, set crop geometry, and compress one picture, a slide, or the full presentation.
Exact action order: add-picture, set-brightness-contrast, get-brightness-contrast, increment-brightness, increment-contrast, set-recolor, get-recolor, set-transparency-color, get-transparency-color, set-transparent-background, get-transparent-background, set-crop, get-crop, set-crop-frame, get-crop-frame, compress-pictures
media tool (2 operations)¶
Use media to insert embedded or linked audio/video and inspect PowerPoint's native media type.
Exact action order: add-media, get-media-info
chart tool (16 operations)¶
Use chart for native PowerPoint charts.
Exact action order: add-chart, get-chart-data, add-series, set-chart-title, get-chart-title, set-axis-title, get-axis-title, set-legend-visibility, get-legend-visibility, replace-chart-data, get-style, set-style, get-color-style, set-color-style, get-data-table, set-data-table
smartart tool (7 operations)¶
Use smartart for SmartArt diagrams and node editing.
Exact action order: add-smart-art, add-node, add-child-node, set-node-text, get-node-text, delete-node, get-node-count
export tool (3 operations)¶
Use export for the project's export-to-verify loop.
Exact action order: export-to-pdf, export-slide-to-image, export-all-slides-to-images
customshow tool (3 operations)¶
Use customshow for named custom shows: curated, ordered subsets of a presentation's slides, used to reuse one deck for different audiences. A custom show may repeat a slide and does not need to include every slide.
| Action | What it does |
|---|---|
list | List all custom shows, each with its current 1-based slide indices in playback order. |
create | Create a named custom show from an ordered list of 1-based slide indices. |
delete | Delete a custom show by name. |
Exact action order: list, create, delete
Why export-to-verify matters
Because the tools drive a real PowerPoint desktop instance, every visual edit can be rendered to an image and checked by a vision-capable AI assistant before the deck is declared done.
Design principles¶
- Single action-dispatch tool per domain — fewer MCP tools, clearer schemas, same total power.
action, notoperation— every MCP domain tool selects its behavior with anactionenum parameter.- 1-based indexing everywhere — slides, shapes, rows, and columns all match PowerPoint's own object model.
- Sessions are explicit — open/create once, do the work, then close with the chosen save behavior.
- Export to verify — when a change is visual, render it and inspect the image.