!!! success "Live COM automation, not file parsing"
    Most PowerPoint MCP servers manipulate `.pptx` files offline with libraries
    like `python-pptx`, or use agent-run scripts with LibreOffice-rendered
    thumbnails. This project instead drives a **live, real PowerPoint desktop
    instance** via `Microsoft.Office.Interop.PowerPoint` — the official Primary
    Interop Assembly.

    - **True-fidelity rendering.** PowerPoint itself renders and saves the
      file, so there's zero risk of producing a `.pptx` that PowerPoint can't
      open.
    - **Export-to-verify.** After any visual edit, export the slide (or the
      whole deck) to an image with `export(action="export-slide-to-image", ...)` /
      `export(action="export-all-slides-to-images", ...)` and let a vision-capable AI assistant
      *see* the result — catching overlapping shapes, text overflow, and
      layout regressions that text-only automation simply cannot detect.

!!! tip "Also automating spreadsheets?"
    Check out [Excel MCP Server](https://excelmcpserver.dev/) — the sister
    project, built the same way.

!!! tip "Also automating Windows apps and browsers?"
    Check out [Windows MCP Server](https://windowsmcpserver.dev/) — automate
    Windows apps and browsers from your AI assistant.

## PowerPoint MCP in 60 seconds

<div class="mcp-video">
  <iframe
    src="https://www.youtube-nocookie.com/embed/Q-1VGFgoSVU"
    title="PowerPoint MCP — Bring PowerPoint to Your AI"
    loading="lazy"
    allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
    referrerpolicy="strict-origin-when-cross-origin"
    allowfullscreen>
  </iframe>
</div>

The video shows an AI request becoming a native, editable PowerPoint dashboard,
then being exported and visually checked. English captions are available from
the player controls.

<details class="mcp-video__transcript">
<summary>Read the video transcript</summary>

PowerPoint is where ideas become decisions.

PowerPoint MCP lets your AI work directly in the real desktop app, not through
a file parser.

Start with a simple request. Ask for an executive dashboard, a project update,
or a complete presentation.

Behind the scenes, MCP turns that intent into precise PowerPoint operations:
creating slides, placing native shapes, formatting text, and building charts.

The result is a real, editable deck, rendered by PowerPoint itself. The AI
exports each slide, inspects the layout, and verifies the result.

For scripts and coding agents, `pptcli` provides the same engine through a
compact, token-efficient command line.

Seventeen domains. Get started at
powerpointmcpserver.dev.

</details>

## See what AI can build

<div class="grid cards" markdown>

-   [![Watch one AI agent turn World Bank data into an editable seven-slide PowerPoint briefing](assets/images/world-bank-briefing-poster.jpg){ width="1280" height="720" loading="lazy" }](samples/world-bank-briefing.md)

    __[From one request to Excel and PowerPoint](samples/world-bank-briefing.md)__ · 2:41

    One agent builds a checked Excel analysis, then uses PowerPoint MCP Server
    to create a seven-slide executive briefing with editable charts, speaker
    notes, and visual checks. Watch the run and download the files.

</div>

## Key features

<div class="grid cards" markdown>

-   :material-view-carousel:{ .lg .middle } __Slides &amp; layouts__

    ---

    Add and delete slides, apply and inspect layouts, and query slide count
    for state discovery.

-   :material-shape-rectangle-plus:{ .lg .middle } __Shapes &amp; text__

    ---

    Add rectangles and text boxes, position and resize shapes, set and read
    rich text with font size, bold and color.

-   :material-table:{ .lg .middle } __Tables &amp; charts__

    ---

    Build tables cell-by-cell and add charts with real data — then read the
    data back to verify.

-   :material-note-text:{ .lg .middle } __Speaker notes__

    ---

    Set and read presenter notes per slide for talk-track generation and
    review.

-   :material-image:{ .lg .middle } __Images__

    ---

    Insert pictures from local files directly onto any slide.

-   :material-palette-swatch:{ .lg .middle } __Templates &amp; themes__

    ---

    Apply a `.potx`/`.pptx` template's masters, theme and layouts while
    preserving existing slide content, and read back the current theme name.

-   :material-format-font:{ .lg .middle } __Slide masters__

    ---

    Set title/body placeholder fonts and background color on the slide
    master — one edit, applied to every slide that inherits it.

-   :material-motion-play:{ .lg .middle } __Animations &amp; transitions__

    ---

    Add entrance/emphasis/exit effects to shapes and set slide transitions,
    then read them back to verify.

-   :material-image-check:{ .lg .middle } __Export-to-verify__

    ---

    Export any slide — or the whole deck — to images for multimodal visual
    verification. The project's core differentiator over text-only
    PowerPoint tooling.

</div>

[See all 32 tools (215 operations) across 17 domains :material-arrow-right:](features.md){ .md-button .md-button--primary }

## See it in action

Ask your AI assistant in plain language — it drives PowerPoint for you:

!!! example "📝 Build a deck from scratch"
    **You:** "Create a new presentation with a title slide and three content
    slides about our Q3 results, then export it as images so I can see it."

    AI creates the presentation, adds slides with headings and body text, and
    exports PNGs of every slide to verify the result.

!!! example "📊 Tables &amp; charts"
    **You:** "Add a 4x3 table summarizing this data, then add a bar chart next
    to it."

    AI builds the table cell-by-cell and adds a chart shape with the given
    data, then exports the slide to confirm the layout looks right.

!!! example "🎨 Formatting &amp; shapes"
    **You:** "Make the title bold and blue, and move the logo to the
    top-right corner."

    AI applies text formatting through the TextFrame tools and repositions
    the shape, then exports an image to verify nothing overlaps.

!!! example "🗣️ Speaker notes"
    **You:** "Write speaker notes for each slide summarizing the key talking
    point."

    AI reads each slide's content and writes tailored notes via
    `notes(action="set-notes-text", ...)`.

!!! example "🖼️ Visual verification"
    **You:** "Export slide 3 as an image and tell me if the chart overlaps
    the text box."

    AI exports the slide with `export(action="export-slide-to-image", ...)` and inspects the
    rendered PNG directly — catching issues no text-only tool could see.

## CLI or MCP Server?

This project provides both a **CLI** and an **MCP Server** interface. Choose
based on your use case:

| Interface | Best for | Why |
|-----------|----------|-----|
| **CLI** (`pptcli`) | Coding agents (Copilot, Cursor, Windsurf) | Single tool, no large schemas — better for cost-sensitive, high-throughput automation. |
| **MCP Server** (`mcp-powerpoint`) | Conversational AI (Claude Desktop, VS Code Chat) | Rich tool discovery, persistent session. Better for interactive, exploratory workflows. |

[MCP Server docs](mcp-server.md){ .md-button } [CLI docs](cli.md){ .md-button }

## GitHub star history

![GitHub stars over time for PowerPointMcp](assets/images/star-history.svg){ loading=lazy }

Bootstrapped from exact authenticated stargazer timestamps, then updated daily from
GitHub's exact public star count. Only date/count aggregates are retained.
