{
  "markdown": "# PowerPointMcp — MCP Server &amp; CLI for Microsoft PowerPoint\n\n[![VS Code Marketplace](https://vsmarketplacebadges.dev/installs-short/sbroenne.powerpoint-mcp.svg?label=VS%20Code%20Installs)](https://marketplace.visualstudio.com/items?itemName=sbroenne.powerpoint-mcp)\n[![Downloads](https://img.shields.io/github/downloads/sbroenne/mcp-server-powerpoint/total?label=GitHub%20Downloads)](https://github.com/sbroenne/mcp-server-powerpoint/releases)\n\n[![CI Gate](https://github.com/sbroenne/mcp-server-powerpoint/actions/workflows/ci.yml/badge.svg)](https://github.com/sbroenne/mcp-server-powerpoint/actions/workflows/ci.yml)\n[![Release](https://img.shields.io/github/v/release/sbroenne/mcp-server-powerpoint)](https://github.com/sbroenne/mcp-server-powerpoint/releases/latest)\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![.NET](https://img.shields.io/badge/.NET-10-blue.svg)](https://dotnet.microsoft.com/download/dotnet/10.0)\n[![Platform](https://img.shields.io/badge/platform-Windows-lightgrey.svg)](https://github.com/sbroenne/mcp-server-powerpoint)\n[![Built with Copilot](https://img.shields.io/badge/Built%20with-GitHub%20Copilot-0366d6.svg)](https://copilot.github.com/)\n\n**Automate PowerPoint with AI** — a [Model Context Protocol](https://modelcontextprotocol.io) server and CLI\nfor live, real-time PowerPoint automation through conversational AI. Sibling project to\n[mcp-server-excel](https://github.com/sbroenne/mcp-server-excel), following the same layered\narchitecture: `ComInterop` → `Core` → `CLI` / `MCP Server`.\n\n**MCP Server for PowerPoint** enables AI assistants (GitHub Copilot, Claude, ChatGPT) to build and\nedit real `.pptx` presentations through natural language — slides, shapes, text, tables, charts,\nspeaker notes, and layouts — no VBA or PowerPoint object-model knowledge required.\n\n**🛡️ Live COM automation, not file parsing** — Most PowerPoint MCP servers manipulate `.pptx`\nfiles offline with libraries like `python-pptx`, or use agent-run scripts with LibreOffice-rendered\nthumbnails. This project instead drives a **live, real PowerPoint desktop instance** via\n`Microsoft.Office.Interop.PowerPoint` — the official Primary Interop Assembly. That means\ntrue-fidelity rendering, compatibility with an already-open deck, and zero risk of producing a\n`.pptx` that PowerPoint itself can't open, because PowerPoint is the one writing it.\n\n**🖼️ Export-to-verify** — the core differentiator. After any visual edit, export the slide (or the\nwhole deck) to an image with `export(action=\"export-slide-to-image\", ...)` /\n`export(action=\"export-all-slides-to-images\", ...)` and let a\nvision-capable AI assistant *see* the result — catching overlapping shapes, text overflow, and\nlayout regressions that text-only automation simply cannot detect.\n\n**Technical Requirements:**\n- ⚠️ **Windows Only** — COM interop is Windows-specific\n- ⚠️ **PowerPoint Required** — Microsoft PowerPoint 2016 or later must be installed\n- ⚠️ **Desktop Environment** — controls a real PowerPoint process (not for server-side processing)\n\n> [!TIP]\n> **Also automating spreadsheets?** Check out [Excel MCP Server](https://excelmcpserver.dev/) —\n> the sister project, built the same way.\n\n## 🎯 What You Can Do\n\n**16 MCP tools with 186 operations across 16 domains:**\n\n- 🗂️ **Presentation** (20 ops) — create, open, Save As, Save Copy As, close, list sessions, apply a\n  `.potx`/`.pptx` template's masters/theme/layouts, read the current theme name, set/read\n  PowerPoint's advisory Mark as Final flag, read/write built-in and custom document properties,\n  and manage string tags\n- 📑 **Slide** (23 ops) — lifecycle, backgrounds, sections, comments, slide import, and string tags\n- ▭ **Shape** (47 ops) — shapes, styling, grouping, hyperlinks, linked assets, placeholder editing,\n  and string tags\n- ✏️ **TextFrame** (20 ops) — text, font size/name/color, bold, italic, underline, alignment, bullets\n- 📊 **Table** (12 ops) — add, cell text, insert/delete rows &amp; columns, cell fill/border, merge cells\n- 🗣️ **Notes** (2 ops) — set/get speaker notes\n- 🖼️ **Layout** (4 ops) — set/get slide layout\n- 📐 **Page Setup** (5 ops) — slide size, first slide number, footer, date/time, slide numbers\n- ♿ **Accessibility** (3 ops) — deterministic audit and reading-order management\n- 🎭 **Master** (10 ops) — slide master title/body placeholder fonts, background color\n- 🎬 **Animation** (5 ops) — shape entrance/emphasis/exit effects, slide transitions\n- 🖼️ **Image** (7 ops) — insert embedded or linked pictures and adjust brightness, contrast,\n  recolor, and crop\n- 📈 **Chart** (16 ops) — add chart, multi-series data, titles, legend, built-in styles, color styles,\n  and data tables\n- 🎧 **Media** (2 ops) — insert embedded or linked audio/video and inspect native media metadata\n- 🔀 **SmartArt** (7 ops) — insert and edit SmartArt diagrams\n- 🖼️ **Export** (3 ops) — export to PDF or images for delivery and visual verification\n\nEvery domain is exposed as a single **action-dispatch tool** (e.g. `shape`, `table`, `chart`,\n`presentation`) with an `action` parameter selecting the specific operation — keeping the tool\nlist small for AI assistants while still exposing every operation.\n\n📚 **[Complete Feature Reference →](https://powerpointmcpserver.dev/features/)** — detailed\ndocumentation of every tool and operation\n\n## 💬 Example Prompts\n\n**Build a deck from scratch:**\n- *\"Create a new presentation with a title slide and three content slides about our Q3 results,\n  then export it as images so I can see it.\"*\n\n**Tables &amp; charts:**\n- *\"Add a 4x3 table summarizing this data, then add a bar chart next to it.\"*\n\n**Formatting &amp; shapes:**\n- *\"Make the title bold and blue, and move the logo to the top-right corner.\"*\n\n**Speaker notes:**\n- *\"Write speaker notes for each slide summarizing the key talking point.\"*\n\n**Templates &amp; themes:**\n- *\"Apply our corporate template to this deck without losing any of the slide content.\"*\n\n**Visual verification:**\n- *\"Export slide 3 as an image and tell me if the chart overlaps the text box.\"*\n\n## 👥 Who Should Use This?\n\n**Perfect for:**\n- ✅ AI assistants and coding agents that need to build or edit `.pptx` decks\n- ✅ Anyone automating repetitive slide-deck workflows (reports, status decks, templates)\n- ✅ Teams that want export-to-verify visual checks on every automated edit\n\n**Not suitable for:**\n- ❌ Server-side/headless processing (this drives a real desktop PowerPoint process)\n- ❌ Linux/macOS users (Windows + PowerPoint installation required)\n\n## 🚀 Quick Start\n\n| Platform | Installation |\n|----------|-------------|\n| **VS Code** | [Install Extension](https://marketplace.visualstudio.com/items?itemName=sbroenne.powerpoint-mcp) (one-click, recommended) |\n| **Claude Desktop** | Download `.mcpb` from [latest release](https://github.com/sbroenne/mcp-server-powerpoint/releases/latest) |\n| **Any MCP Client** | Download `mcp-powerpoint.exe` from [latest release](https://github.com/sbroenne/mcp-server-powerpoint/releases/latest) and add to PATH |\n| **Details** | 📖 [Full Installation Guide →](https://powerpointmcpserver.dev/installation/) |\n\n**⚠️ Important:** Close any open instances of the target file before automating it — the server\nneeds exclusive access to the presentation while it's driving PowerPoint.\n\n## 🔧 CLI vs MCP Server\n\nThis project provides both a **CLI** and an **MCP Server** interface. Choose based on your use case:\n\n| Interface | Best For | Why |\n|-----------|----------|-----|\n| **CLI** (`pptcli` / `powerpointcli.exe`) | Coding agents (Copilot, Cursor, Windsurf) + scripting | Single tool, no large schemas — better for cost-sensitive, high-throughput automation. |\n| **MCP Server** (`mcp-powerpoint`) | Conversational AI (Claude Desktop, VS Code Chat) | Rich tool discovery, persistent session. Better for interactive, exploratory workflows. |\n\n**Manual installation:**\n```powershell\n# Primary: Download standalone executables from latest release (no .NET runtime required)\n# https://github.com/sbroenne/mcp-server-powerpoint/releases/latest\n# - PowerPointMcp-MCP-Server-{version}-windows.zip → extract mcp-powerpoint.exe\n# - PowerPointMcp-CLI-{version}-windows.zip → extract powerpointcli.exe\n\n# Secondary: Install via .NET tool (requires .NET 10 runtime)\ndotnet tool install --global Sbroenne.PowerPointMcp.McpServer\ndotnet tool install --global Sbroenne.PowerPointMcp.CLI\n\n# After installing either way, auto-configure your coding agents:\nnpx add-mcp \"mcp-powerpoint\" --name powerpoint-mcp\n```\n\n```powershell\n# Optional: Install the agent skill for better AI guidance\nnpx skills add sbroenne/mcp-server-powerpoint --skill powerpoint-mcp\n```\n\n> 💡 The VS Code extension installs this skill automatically. Manual `npx skills add` is for other\n> MCP clients (Claude Code, Cursor, Windsurf, etc.).\n\n## ⚙️ How It Works - COM Automation & Unified Service Architecture\n\n**PowerPointMcp uses Windows COM automation to control the actual PowerPoint application (not\njust `.pptx` files).**\n\nThe **MCP Server** and **CLI** are two equal, first-class entry points. Each hosts its own\n**PowerPointMcp Service** that manages presentation sessions — the MCP Server runs it\n**in-process** (direct calls, no pipe), while the CLI uses a **background daemon** over a named\npipe so sessions persist across CLI invocations:\n\n```\n┌──────────────────────┐        ┌──────────────────────┐\n│  MCP Server          │        │  CLI (pptcli)        │\n│  (AI assistants)     │        │  (coding agents)     │\n└──────────┬───────────┘        └──────────┬───────────┘\n           │ in-process                     │ named pipe →\n           │ (direct calls)                 │ background daemon\n           ▼                                ▼\n┌──────────────────────┐        ┌──────────────────────┐\n│  PowerPointMcp       │        │  PowerPointMcp       │\n│  Service             │        │  Service             │\n│  (session mgmt)      │        │  (daemon; sessions   │\n│                      │        │   persist across     │\n│                      │        │   CLI invocations)   │\n└──────────┬───────────┘        └──────────┬───────────┘\n           ▼                                ▼\n      Core Commands                    Core Commands\n           ▼                                ▼\n┌──────────────────────┐        ┌──────────────────────┐\n│  PowerPoint COM API  │        │  PowerPoint COM API  │\n│  (PowerPoint.        │        │  (PowerPoint.        │\n│   Application)       │        │   Application)       │\n└──────────────────────┘        └──────────────────────┘\n```\n\nBoth entry points share the same Core Commands codebase, so every operation behaves identically.\nThey are separate processes, though: each runs its own PowerPointMcp Service and its own\nPowerPoint instance, and they do **not** share live sessions with each other.\n\n**Key Benefits:**\n- ✅ **Two equal entry points** — every operation works identically through the MCP Server and\n  the CLI\n- ✅ **Persistent CLI sessions** — the CLI daemon keeps presentations open across multiple\n  `pptcli` calls, so scripts don't re-open files each time\n- ✅ **In-process MCP calls** — the MCP Server runs the service in-process (no pipe) for\n  low-latency automation\n- ✅ **Real PowerPoint automation** — drives the actual `PowerPoint.Application` via COM, not just\n  file parsing\n- ✅ **Export-to-verify** — close the loop on every visual change with a real rendered image\n\n## ⭐ GitHub Star History\n\n[![GitHub stars over time for PowerPointMcp](https://powerpointmcpserver.dev/assets/images/star-history.svg)](https://github.com/sbroenne/mcp-server-powerpoint/stargazers)\n\nBootstrapped from exact authenticated stargazer timestamps, then updated daily from\nGitHub's exact public star count. Only date/count aggregates are retained.\n\n## 📋 Additional Information\n\n📚 **[MCP Server Guide →](src/PowerPointMcp.McpServer/README.md)** | **[CLI Guide →](src/PowerPointMcp.CLI/README.md)** | **[Agent Skills →](skills/README.md)**\n\n📖 **[Complete Feature Reference](https://powerpointmcpserver.dev/features/)** •\n**[Installation Guide](https://powerpointmcpserver.dev/installation/)** •\n**[Changelog](https://powerpointmcpserver.dev/changelog/)** •\n**[Native Feature Roadmap](docs/POWERPOINT-NATIVE-FEATURE-AUDIT.md)** •\n**[Contributing](https://powerpointmcpserver.dev/contributing/)** •\n**[Security](https://powerpointmcpserver.dev/security/)** •\n**[Privacy](https://powerpointmcpserver.dev/privacy/)**\n\n**License:** MIT License — see [LICENSE](LICENSE)\n\n**Built With:** This entire project was developed using GitHub Copilot AI assistance.\n\n**Acknowledgments:**\n- Microsoft PowerPoint Team — for comprehensive COM automation APIs\n- Model Context Protocol community — for the AI integration standard\n- [mcp-server-excel](https://github.com/sbroenne/mcp-server-excel) — the sibling project this\n  architecture and tooling is ported from\n\n## Related Projects\n\nOther projects by the author:\n\n- [Excel MCP Server](https://excelmcpserver.dev/) — AI-powered Excel automation via Power Query,\n  DAX, VBA, and PivotTables\n- [Windows MCP Server](https://windowsmcpserver.dev/) — AI-powered Windows automation via MCP\n- [OBS Studio MCP Server](https://github.com/sbroenne/mcp-server-obs) — AI-powered OBS Studio\n  automation\n- [pytest-skill-engineering](https://github.com/sbroenne/pytest-skill-engineering) — LLM-powered\n  testing framework for AI agents\n",
  "bytes": 13428,
  "sha": "f3dc970ef8e4a2d14370c73f16ae52811dcffd50d84ef8e0fb9cd2d29029add9",
  "repo_slug": "sbroenne/mcp-server-powerpoint",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_sbroenne_mcp_server_powerpoint_7141621f/readme"
}