Skip to main content
Glama
README.md
# PowerPoint MCP

**Full-featured PowerPoint MCP server with cross-platform support (Windows native, macOS designed).**

Control PowerPoint programmatically via the Model Context Protocol — 153 tools covering slides, shapes, text, formatting, charts, tables, animations, and more.

[![Python](https://img.shields.io/badge/python-3.12%2B-blue)](https://www.python.org/)
[![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS-lightgrey)](https://github.com)
[![MCP](https://img.shields.io/badge/MCP-FastMCP-green)](https://github.com/jlowin/fastmcp)

---

## Installation

### Prerequisites

**Windows & macOS:**
- Python 3.12 or 3.13
- PowerPoint 2016+ (part of Microsoft Office)

### Install

```bash
# Clone
git clone https://github.com/rit3sh-x/powerpoint-mcp.git
cd powerpoint-mcp

# Install dependencies
uv sync
```

---

## Quick Start

### 1. Configure MCP Client

Add to your MCP client config (e.g., Claude Desktop `claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "powerpoint": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\Users\\yourname\\path\\to\\powerpoint-mcp",
        "run",
        "powerpoint"
      ]
    }
  }
}
```

**macOS:**
```json
{
  "mcpServers": {
    "powerpoint": {
      "command": "uv",
      "args": [
        "--directory",
        "/Users/yourname/path/to/powerpoint-mcp",
        "run",
        "powerpoint"
      ]
    }
  }
}
```

### 2. Use in Claude

```
Create a 5-slide presentation about renewable energy with:
- Title slide
- 3 content slides with icons
- Closing slide
Export as PDF
```

---

## Architecture

### Interface-Based Design

**Single tool layer, two platform implementations:**

```mermaid
flowchart TB
    Tools["153 MCP Tools<br/>(Cross-Platform)"]

    Backend["Backend Protocol<br/>(Abstract Interface)"]

    Win["Windows Backend<br/>(pywin32)"]
    Mac["macOS Backend<br/>(appscript)"]

    Tools --> Backend
    Backend --> Win
    Backend --> Mac

    classDef tools fill:#2563eb,color:#fff,stroke:#1d4ed8,stroke-width:2px;
    classDef core fill:#7c3aed,color:#fff,stroke:#6d28d9,stroke-width:2px;
    classDef impl fill:#059669,color:#fff,stroke:#047857,stroke-width:2px;

    class Tools tools;
    class Backend core;
    class Win,Mac impl;
```
---

## Environment Variables

| Variable | Values | Default | Purpose |
|---|---|---|---|
| `AUTO_DISMISS_DIALOG` | `true`, `false` | `false` | Auto-dismiss PowerPoint dialogs |