Changelog¶
[0.3.1] - 2026-10-07¶
Patch Changes¶
- #104
bf9a6e5Thanks @sbroenne! - Standalone downloads work with PowerPoint again (#103): the MCP Server and CLI.exedownloads, and the npm packages and Claude Desktop bundle that use them, failed every PowerPoint action with "Built-in COM has been disabled via a feature switch". They are no longer trimmed, so creating and opening presentations works again. The downloads are larger as a result. The NuGet .NET tools were not affected.
[0.3.0] - 2026-10-02¶
Minor Changes¶
- #99
9affc57Thanks @sbroenne! - Add npm launchers and native Windows x64/ARM64 runtime packages for the MCP server andpptcli. Agent plugins and the Claude Desktop bundle now launch the public npm packages throughnpx, so those installation paths require Node.js 18 or later.
Modernize MCP responses with structured content, generated output schemas, stricter pre-dispatch argument validation, and cancellation-aware calls while retaining text JSON compatibility.
Harden the metadata-only MCPB build, add native x64 and ARM64 VS Code packages, and improve extension startup diagnostics for Windows and desktop PowerPoint prerequisites.
[0.2.1] - 2026-09-28¶
Minor Changes¶
-
#88
3cbf441Thanks @trsdn! - Add editable WordArt creation and independent 3D shape rotation controls to both the MCP server and CLI. 3D rotations can update individual axes without changing the shape's existing 2D rotation. -
#90
dc67ab6Thanks @trsdn! - Addcustomshowtool for named custom slide shows: list, create, and delete curated, ordered subsets of a presentation's slides, so one deck can be reused for different audiences without duplicating slides. -
#82
8835dc1Thanks @trsdn! - Addtextframefind-text and replace-text actions to MCP and CLI for literal matching in one selected shape. Find reports 1-based match positions; replace supports deletion, case and whole-word options, preserves character formatting outside matches, and never searches inserted text again. -
#83
723bb2fThanks @trsdn! - Add native shape alignment and distribution to MCP and CLI. Align six directions or distribute horizontal/vertical edge gaps against the selection or slide, with selection validation before movement and no resizing or regrouping. -
#89
ba5af55Thanks @trsdn! - Attached connectors (shape(action: "add-attached-connector", ...)): adds a connector shape whose endpoints stay glued to connection sites on two existing shapes, so the connection is preserved when either shape is moved. Previously,add-connectoronly supported free-floating connectors between fixed coordinates. -
#87
ffeb999Thanks @trsdn! - Addshape copy-formattingto apply one existing shape's appearance to another without replacing the target's content or geometry. -
#91
1c85214Thanks @trsdn! - Addshape duplicateto create an independently editable copy of a shape on the same slide, andshape copy-to-slideto copy a shape to another slide in the same presentation via PowerPoint's native copy/paste. -
#92
5864aa8Thanks @trsdn! - Add theshape mergeaction for PowerPoint boolean drawing operations: union, combine, intersect, subtract, and fragment. -
#84
1f60e88Thanks @trsdn! - Add slide visibility controls for excluding slides from slide-show playback and showing or hiding inherited master shapes. -
#85
bb0f9a6Thanks @trsdn! - Read major and minor theme fonts for any slide master withmaster get-theme-fontsin the CLI or the matching MCP action. Results preserve the Latin, complex-script, and East Asian language slots so new text can follow the selected template's intended typography.
[0.2.0] - 2026-09-11¶
Minor Changes¶
-
#77
8e5d253Thanks @trsdn! - Add four editable slide composition recipes to the shared agent guidance, with content limits and reproducible PowerPoint-rendered examples in 16:9 and 4:3. -
#76
51d9801Thanks @trsdn! - Read the twelve named theme colors for any slide master withmaster get-theme-colorsin the CLI or the matching MCP action. Palette colors are returned as RGB hex strings so new shapes and charts can match the selected template without guessing its accent colors.
[0.1.8] - 2026-09-11¶
Patch Changes¶
- #75
090c8b1Thanks @sbroenne! - Reliable failed startup cleanup (#72): PowerPoint processes created by a timed-out presentation open are now terminated using their verified process identity instead of being left running.
[0.1.6] - 2026-08-27¶
Patch Changes¶
-
#58
c877cafThanks @sbroenne! - Add generatedmediaMCP and CLI commands for embedded, link-only, or linked-and-saved audio/video insertion and native PowerPoint media metadata read-back. Generated Core validation failures now propagate as failed service responses while preserving their original structured result payload for service clients. -
#53
59efa7bThanks @sbroenne! - Addsave-asandsave-copy-aspresentation operations to the MCP server and CLI. Save As moves the active session to the new file only after PowerPoint succeeds, while Save Copy As preserves the active file and session path. Both operations validate formats, paths, and explicit overwrite intent. -
#52
3ae9291Thanks @sbroenne! - Add typedget-finalandset-finalpresentation operations to the MCP server and CLI, with persistent round-trip behavior and clear guidance that Mark as Final is advisory rather than security. -
#57
fa11f78Thanks @sbroenne! - Add linked-picture insertion and shape-level link inspection, refresh, automatic-update where supported by PowerPoint, and break-link operations while preserving embedded pictures as the default. -
#54
d046fdfThanks @sbroenne! - Add case-insensitive string tags to presentations, slides, and shapes through matching MCP and CLIset-tag,get-tag,list-tags, anddelete-tagactions. -
#56
a66c481Thanks @sbroenne! - Add chart style, color style, and data-table visibility controls to both the MCP server and CLI, with paired read operations so automation can verify every visual change. -
#51
fe66372Thanks @sbroenne! - PowerPoint MCP now rejects unknown or mis-cased CLI and MCP arguments, saves presentations when their sessions close, safely owns daemon cleanup, and ships verified Agent Skills and plugins.
[0.1.5] - 2026-08-25¶
Patch Changes¶
- #49
262f1beThanks @sbroenne! - Add native PDF delivery, presentation page setup and footer controls, legacy slide comments and slide import, native placeholder editing, and deterministic accessibility audits with reading-order management.
[0.1.4] - 2026-07-28¶
Patch Changes¶
- #42
ec2f011Thanks @sbroenne! - The MCP Server and CLI standalone.exerelease downloads are now trimmed, reducing their download size by roughly 29% (CLI: ~185MB → ~131MB). Also fixed an intermittent failure in chart creation/data operations that could occur immediately after adding or replacing chart data.
[0.1.1] - 2026-07-22¶
Minor Changes¶
-
#32
778240dThanks @sbroenne! - Aligned mcp-server-powerpoint's architecture and tooling with mcp-server-excel, the authoritative template for this family of projects: -
Single MCP dispatch tool: replaced the 12 separate presentation-related MCP tools with one
presentationtool taking anactionparameter, matching Excel's dispatch pattern. Added matching CLI session-management commands so the CLI and MCP Server remain equal, parity-checked entry points. - COM object cleanup: every
dynamicCOM object obtained inside a Core Commands method is now released in afinallyblock once no longer needed, instead of relying solely on the top-level session Application/Presentation cleanup. This closes a class of potential COM object leaks under heavy or long-running use. - Crash-safety process tracking: PowerPoint process IDs are now tracked in a process-wide registry with an
AppDomain.ProcessExithandler that force-kills any still-runningPOWERPNT.exeif the host process itself terminates uncleanly (crash, forced kill, etc.), closing a gap versus Excel's existing crash-safety net. - Ported audit scripts from mcp-server-excel:
check-com-leaks.ps1,check-success-flag.ps1,check-dynamic-casts.ps1, and a newcheck-core-interface-completeness.ps1tailored to this project's generate-enums-from-interface architecture. All are wired into the pre-commit hook. - Corrected stale documentation (tool/operation/domain counts) across the README, docs site, and skills files.
No behavior change for existing MCP tool calls beyond the dispatch-tool consolidation; CLI commands are unaffected.
Patch Changes¶
-
#26
ddb6808Thanks @sbroenne! - Aligned the project's public-facing docs with the leading sister projectmcp-server-excel: ported the daily GitHub star-history chart. Addedscripts/Update-StarHistory.ps1(generates a theme-aware SVG from live stargazer data) and wired it into thedeploy-gh-pagesworkflow with a daily schedule, then added a "GitHub Star History" section to both the README and the docs-site homepage. The generated SVG is produced in CI and gitignored, mirroring Excel's setup. Repository description, homepage URL, and topics were also updated to match Excel's format. -
#33
9663e7aThanks @sbroenne! - Fixed stale tool/operation counts (#33): the docs advertised "132 operations" even though theimagetool gainedset-crop/get-cropa while back, bringing the real total to 134 operations across 13 tools. Fixed across the README, MCP Server README, mcpb README, and the public docs site.
Also replaced the old path-filtered build workflows with a single CI Gate workflow that runs on every pull request, and added a documentation count-check to the pre-commit hook so this kind of drift is caught automatically going forward.
-
#35
3f72daeThanks @sbroenne! - Critical repo review remediation — a pass comparing this repo againstmcp-server-excel(the architectural template) surfaced several gaps, now fixed: -
Added
get-font-size,get-bold, andget-font-coloroperations to thetextframetool (previously only theset-variants existed), bringing the total to 137 operations across 13 tools. - Fixed several COM reference leaks in the Chart/Shape/Image/Animation/ Presentation/Slide commands — every manually-acquired COM object is now released via
ComUtilities.Releasein afinallyblock. - Fixed ComInterop lifecycle bugs and removed dead code left over from the original Excel-to-PowerPoint port (
ServiceRegistryGenerator's unusedGetShortAliashelper and strayexcelclistring references). - Reverted an in-progress window-hiding change that had broken embedded-chart OLE activation — PowerPoint windows remain visible, matching documented behavior.
-
Aligned CI workflows,
Directory.Build.*,Packages.props, manifest,.gitattributes,.editorconfig,SECURITY.md,PRIVACY.md, dependabot config, and issue templates with themcp-server-exceltemplate repo. -
#29
8a268caThanks @sbroenne! - Improved SEO for the public docs site (powerpointmcpserver.dev): added a branded 1200x630 Open Graph/Twitter card image, richerSoftwareApplicationstructured data (image, MIT license,sameAslinks to GitHub and NuGet), aWebSite+PersonJSON-LD graph, and per-pageBreadcrumbListstructured data for interior pages. Also sped upscripts/pre-commit.ps1for docs-only commits (includinggh-pages/website changes) by fully skipping the Release build and Core test gates when no compiled code changed.
[0.1.0] - 2026-07-11¶
Minor Changes¶
-
#23
5b5b21aThanks @sbroenne! - Addchart(action: "replace-chart-data", ...)to wholesale-replace an existing chart's categories, series names, and values in a single call, including changing the category count.series_valuesis a flat, series-major array (all values for the first series, then the second, etc.), avoiding the previous delete-shape-and-recreate workaround for editing chart data in place. -
#19
e8b989dThanks @sbroenne! - Add document properties management to the Presentation domain:set_document_property/get_document_propertyfor built-in metadata (Title, Subject, Author, Keywords, Comments, Category, Manager, Company), andset_custom_property/get_custom_property/remove_custom_propertyfor user-defined custom document properties. -
#22
4db42d8Thanks @sbroenne! - Add gradient background support to theslideandmasterdomains:set-gradient-background/get-gradient-backgroundset or read a two-color gradient fill (style is anMsoGradientStylename —msoGradientHorizontal,msoGradientVertical,msoGradientDiagonalUp,msoGradientDiagonalDown,msoGradientFromCorner,msoGradientFromTitle,msoGradientFromCenter— plus a1-4variant).slide's version overrides a single slide's background (same override semantics as the existingset-background-color);master's version sets the gradient for every slide that inherits from the master. -
#17
380b289Thanks @sbroenne! - Add hyperlink management to the Shape domain:set-hyperlink,get-hyperlink, andremove-hyperlinkactions let callers attach, inspect, and clear mouse-click hyperlinks (with optional screen tip text) on any shape. -
#21
4c8f7c4Thanks @sbroenne! - Add picture-effect actions to theimagedomain:set-brightness-contrast/get-brightness-contrast(adjust brightness and contrast, each a float in[0, 1]) andset-recolor/get-recolor(recolor a picture to grayscale, black-and-white, watermark, or automatic/no recolor viamsoPictureAutomatic,msoPictureGrayscale,msoPictureBlackAndWhite,msoPictureWatermark). -
#20
845737eThanks @sbroenne! - Add parameterized shape effects: drop shadow (color/transparency/blur/offset), glow, reflection, soft edge, and 3D bevel. Extends the existingset-shadow/get-shadowactions with optional formatting parameters (backward compatible) and adds newset-glow/get-glow,set-reflection/get-reflection,set-soft-edge/get-soft-edge, andset-bevel/get-bevelactions to theshapeMCP tool. -
#15
41dd351Thanks @sbroenne! - Added a newsmartarttool for creating and editing SmartArt diagrams:add-smart-art(from any built-in gallery layout, e.g. "Basic Process", "Organization Chart"),add-node,add-child-node,set-node-text,get-node-text,delete-node, andget-node-count. -
#24
a2fc594Thanks @sbroenne! - Addtextframe(action: "set-autosize"/"get-autosize", ...)to control a shape's text-frame auto-fit behavior (ppAutoSizeNone,ppAutoSizeShapeToFitText,ppAutoSizeTextToFitShape), matching PowerPoint's "Resize shape to fit text" / "Shrink text on overflow" options.
Patch Changes¶
-
#16
fbaf960Thanks @sbroenne! - Add a short "Also automating spreadsheets?" tip right after the README's hero section, linking to Excel MCP Server, mirroring the same repositioning done on the docs homepage. -
#12
fc05b46Thanks @sbroenne! - Restructured the documentation site homepage to match the sistermcp-server-excelproject's structure: removed the redundant "Quick install" card grid from the homepage (installation already has its own dedicated page), split "How it works" out into a newarchitecture.mdpage, and split "Related projects" out into a newrelated-projects.mdpage. Also fixed the last remaining stale "31 tools across 10 domains" references ininstallation.md,mcp-server.md, andmcpb/README.mdto the current 18-tool / ~98-operation / 12-domain count. -
#25
0f4fcd8Thanks @sbroenne! - Release automation: auto-merge the changelog PR. The post-release step that opens thechore/changelog-vXPR now also merges it (queued auto-merge, falling back to an immediate squash merge). Previously the PR was only created and left open until a maintainer merged it by hand, which could leave releases with a stale/missing CHANGELOG onmain. -
#11
87e5d42Thanks @sbroenne! - Fixed the "What You Can Do" section of the root README and rewrotegh-pages/docs/features.mdandsrc/PowerPointMcp.McpServer/README.md, which all still described the old 31-tool/10-domain architecture. They now correctly document the current 18-tool, ~98-operation, 12-domain surface, including the previously undocumented Template, Master, and Animation domains. -
#10
9b0b70eThanks @sbroenne! - Fixed the root README: corrected the "How It Works" diagram to reflect the actual sharedPowerPointMcp Service+ Core Commands architecture (it previously omitted the service layer), and removed a broken/non-existent "HeyGen MCP Server" link from Related Projects. -
#27
794366cThanks @sbroenne! - Fix the release workflow's "Update Extension Version" step failing with "Version not changed" whenever the release version coincidentally matches the VS Code extension's fixed baseline version (0.1.0, never committed back to the repo since the bump is ephemeral per-run). Adds--allow-same-versionto thenpm versioncall. -
#14
94a7cf0Thanks @sbroenne! - Move the "Also automating spreadsheets?" sister-project tip on the docs homepage to appear directly under the hero callout instead of at the bottom of the page.
[0.0.2] - 2026-07-09¶
Patch Changes¶
-
#7
4bd5377Thanks @sbroenne! - Replaced manualCHANGELOG.mdediting and the fragile awk/sed-based release-notes extraction with changesets: contributors now add a small.changeset/*.mdfragment describing their change, CI enforces one is present (or theskip-changeloglabel), andscripts/Build-Changelog.ps1compiles pending fragments intoCHANGELOG.mdand the GitHub Release body at release time. Seedocs/RELEASE-STRATEGY.mdfor the full process. -
#7
4bd5377Thanks @sbroenne! - Added PowerPoint-branded icon assets for the VS Code extension, the MCPB bundle, and the gh-pages documentation site, replacing the generic/missing icons used previously.
All notable changes to the PowerPoint MCP Server are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.0.1 - 2026-07-09¶
Added¶
- MCP server with 31 tools across 10 domains: Presentation (create, open, save, close, list sessions), Slide (add, count, delete), Shape (rectangle, text box, count, delete, position, size), Text (set/get text, font size, bold, font color), Table (add, set/get cell text), Notes (set/get), Layout (set/get), Image (add picture), Chart (add, get data), and Export (slide / all slides to image) for visual verification.
- Live PowerPoint COM automation via an STA thread with an OLE message filter; one long-lived session per open presentation, addressed by
sessionId. - Resilient shutdown: sessions are disposed on host shutdown with exponential backoff so no
POWERPNT.exeprocess is orphaned. - Non-blocking
create_presentation: creates and keeps the deck open, returning asessionIdimmediately (~2s instead of ~90-210s). - Distribution: NuGet .NET tools (
Sbroenne.PowerPointMcp.McpServer→mcp-powerpoint,Sbroenne.PowerPointMcp.CLI→pptcli), MCP Registry manifest, and a Claude Desktop MCPB bundle. - Agent skill pack and documentation site at powerpointmcpserver.dev.