Skip to main content
Glama
atharva-bedekar

PowerPoint MCP Server

PowerPoint MCP Server für Antigravity

Ein produktionsreifer lokaler Model Context Protocol (MCP)-Server in Python, der konversationelle, deterministische PowerPoint-Inspektion (.pptx), chirurgische Bearbeitung, hochauflösendes Rendering, visuelles Diffing und regelbasierte Validierung für Google Antigravity ermöglicht.


1. Überblick & Philosophie

Moderne KI-gestützte Folienbearbeitung zerstört oft feingranulare Formatierungen, bricht Schrifthierarchien und setzt komplexe Layouts zurück, weil LLMs versuchen, ganze Präsentationen von Grund auf neu zu generieren.

Der PowerPoint MCP Server implementiert eine deterministische, minimal-diff-basierte Bearbeitungsphilosophie:

  • Erst prüfen, dann ändern: Semantische Rollen (title, subtitle, body, diagram, image, footer) und exakte EMU/Zoll-Begrenzungsrahmen werden direkt aus OpenXML-Bäumen extrahiert.

  • Stilerhaltung auf Run-Ebene: Textbearbeitungen bewahren Schriftarten, Punktgrößen, Farben, Ränder und mehrteilige Rich-Text-Formatierung.

  • Zerstörungsfreie Arbeitskopien: Änderungen erfolgen in isolierten Sitzungs-Arbeitsbereichen unter .ppt-agent/sessions/<session_id>/working.pptx mit automatischen, zeitgestempelten Sicherungen (presentation.backup-YYYYMMDD-HHMMSS.pptx).

  • Visuelle Verifikationsschleifen: Integrierte Windows-PowerPoint-COM-Automatisierung und Headless-LibreOffice-Rendering erzeugen PNG-Folienbilder und Pixel-Differenz-Heatmaps, um Layoutänderungen visuell zu verifizieren.


Related MCP server: PPTX MCP Server

2. Architektur

┌─────────────────────────────────────────────────────────────────┐
│                      Antigravity CLI Agent                      │
│        (Skill: .agents/skills/powerpoint-editor/SKILL.md)       │
└───────────────────────────────┬─────────────────────────────────┘
                                │ JSON-RPC 2.0 via Stdio
┌───────────────────────────────▼─────────────────────────────────┐
│              PowerPoint MCP Server (server.py)                  │
│       19 FastMCP / MCPServer Tools  &  3 MCP Resources          │
└───────┬───────────────────────┼─────────────────────────┬───────┘
        │                       │                         │
┌───────▼──────────────┐ ┌──────▼───────────────┐  ┌──────▼───────────────┐
│ Inspection & Models  │ │  Editing & Geometry  │  │ Rendering & Diffing  │
│ - Shape Hierarchies  │ │ - Move / Resize      │  │ - Windows PPT COM    │
│ - Semantic Inference │ │ - Align / Distribute │  │ - LibreOffice CLI    │
│ - Multi-Factor Match │ │ - Text Run Styling   │  │ - Pixel Diff Heatmaps│
│ - Rule Validation    │ │ - Safe OOXML Helpers │  │ - Bounding Clusters  │
└──────────────────────┘ └──────────────────────┘  └──────────────────────┘
                                │
┌───────────────────────────────▼─────────────────────────────────┐
│                  Session & Safety Layer                         │
│   .ppt-agent/sessions/<session_id>/working.pptx + backups/      │
└─────────────────────────────────────────────────────────────────┘

3. Voraussetzungen & Anforderungen

  • Betriebssystem: Windows 10/11 (für native PowerPoint-COM-Automatisierung), macOS oder Linux.

  • Python: Python 3.10, 3.11, 3.12 oder 3.13+.

  • Paketmanager: uv (empfohlen) oder pip.

  • Präsentationssoftware (optional, aber für das Rendering empfohlen):

    • Microsoft PowerPoint 2016 / 2019 / 2021 / Office 365 (Windows).

    • LibreOffice (soffice-CLI im System-PATH).


4. Installation & Einrichtung

Klonen Sie das Repository und installieren Sie die Abhängigkeiten mit uv:

# Clone the repository
git clone https://github.com/example/powerpoint-mcp.git
cd powerpoint-mcp

# Create and sync virtual environment with uv
uv sync

Alternativ mit Standard-pip:

python -m venv .venv
# On Windows PowerShell:
.venv\Scripts\Activate.ps1
# On macOS/Linux:
source .venv/bin/activate

pip install -e .

5. Ausführen des MCP-Servers

Um den MCP-Server über Standard-Eingabe/Ausgabe (stdio) auszuführen:

uv run python -m powerpoint_mcp.server

Oder über den direkten Skript-Einstiegspunkt:

uv run powerpoint-mcp

6. Antigravity-Arbeitsbereichskonfiguration

Konfigurieren Sie Ihren Arbeitsbereich .agents/mcp_config.json, um den Server zu registrieren:

{
  "mcpServers": {
    "powerpoint-mcp": {
      "command": "uv",
      "args": [
        "run",
        "python",
        "-m",
        "powerpoint_mcp.server"
      ],
      "env": {
        "PPT_RENDERER": "auto",
        "PPT_WORKSPACE_DIR": ".ppt-agent",
        "PPT_BACKUP_ENABLED": "true",
        "PPT_DEFAULT_OUTPUT_DIR": "./output"
      }
    }
  }
}

7. Installation der Antigravity-Fähigkeit

Die Fähigkeitsdefinition befindet sich unter .agents/skills/powerpoint-editor/SKILL.md. Antigravity erkennt Fähigkeiten automatisch innerhalb von .agents/skills/.

Die Fähigkeit kodiert:

  • Die 15 unveränderlichen PowerPoint-Bearbeitungsregeln.

  • Strukturierte Entscheidungsbäume für Textbearbeitungen, Geometrieanpassungen und Referenzfolienabgleich.

  • Optimierung von Tool-Aufrufen und Batching-Regeln.


8. Referenz der unterstützten MCP-Tools (19 Kern-Tools)

Tool-Name

Parameter

Beschreibung

ppt_open

presentation_path: str

Öffnet eine Präsentation und initialisiert einen isolierten Sitzungsarbeitsbereich mit Arbeitskopie.

ppt_inspect_presentation

presentation_path: Optional[str]

Untersucht Präsentationsmetadaten, Folienanzahl, Abmessungen, Layouts und Titel.

ppt_inspect_slide

slide_number: int, presentation_path: Optional[str]

Untersucht Folienformen, EMU/Zoll-Koordinaten, semantische Rollen, Text und Stile.

ppt_inspect_shape

slide_number: int, shape_id: int, presentation_path: Optional[str]

Tiefenprüfung einer einzelnen Form: Runs, Schriftarten, Farben, Ränder, Linie, Füllung, XML.

ppt_modify_shape

slide_number: int, shape_id: int, x, y, width, height, rotation, z_order, dx, dy, dwidth, dheight, drotation, align, distribute, target_shape_ids, presentation_path

Ändert Koordinaten, Abmessungen, Drehung, Z-Reihenfolge oder Mehrfach-Ausrichtung/-Verteilung.

ppt_modify_text

slide_number: int, shape_id: int, text, font_family, font_size, bold, italic, underline, color, alignment, margins, paragraph_spacing, line_spacing, presentation_path

Ändert Text und Stil mit Stilerhaltung auf Run-Ebene.

ppt_copy_shape

slide_number: int, shape_id: int, target_slide_number, x_offset, y_offset, presentation_path

Klont eine Form mit Formatierung und Beziehungen auf dieselbe oder eine Zielfolie.

ppt_move_shape

slide_number: int, shape_id: int, dx, dy, x, y, presentation_path

Verschiebt eine Form um absolute Koordinaten oder relative Offsets in Zoll.

ppt_resize_shape

slide_number: int, shape_id: int, width, height, scale_width, scale_height, lock_aspect_ratio, presentation_path

Ändert die Größe einer Form mit absoluten Abmessungen oder Skalierungsfaktoren.

ppt_delete_shape

slide_number: int, shape_id: int, presentation_path

Entfernt eine Form sauber aus dem Folienformbaum.

ppt_modify_ooxml

slide_number: int, shape_id, operation, xpath, attributes, xml_fragment, transparency_percent, gradient_start, gradient_end, shadow_blur_pt, presentation_path

Sichere Low-Level-DrawingML-Manipulation für Transparenz, Verläufe und Schatten.

ppt_validate_slide

slide_number: int, rules: Optional[List[str]], presentation_path

Regelbasierte Validierung auf Überlappungen (VAL-01), Beschneidungen (VAL-02), winzige Schriftarten (VAL-05), Überlauf (VAL-04).

ppt_render_slide

slide_number: int, output_dir, output_path, renderer, dpi, presentation_path

Rendert eine einzelne Folie als hochauflösendes PNG über PowerPoint-COM oder LibreOffice.

ppt_render_presentation

output_dir, renderer, dpi, presentation_path

Rendert alle Folien der Präsentation als PNG-Bilder.

ppt_compare_slides

slide_a: int, slide_b: int, match_shapes_flag, render_diff, presentation_path

Vergleicht Geometrie, Layout, Typografie und semantische Übereinstimmungen zwischen zwei Folien.

ppt_visual_diff

before_image: str, after_image: str, output_diff_path, threshold

Pixelgenaue Differenzüberlagerung, geänderte Begrenzungsrahmen und Ähnlichkeitsprozentsatz.

ppt_save

presentation_path: Optional[str]

Speichert die Arbeitskopie zurück zum Originalpfad mit automatischer, zeitgestempelter Sicherung.

ppt_save_as

output_path: str, overwrite: bool, presentation_path

Speichert die Arbeitskopie an einen neuen Zielpfad.

ppt_revert

target: str, presentation_path

Setzt die Arbeitskopie auf die Originalpräsentation oder einen angegebenen Sicherungszeitstempel zurück.


9. Unterstützte MCP-Ressourcen

URI-Ressource

MIME-Typ

Beschreibung

ppt://current/presentation

application/json

JSON-Zusammenfassung der Präsentationsmetadaten, Abmessungen, Layouts und Folientitel.

ppt://current/slide/{slide_number}

application/json

JSON-strukturierter Formbaum mit Rollen, Koordinaten und Typografie für Folie {slide_number}.

ppt://current/slide/{slide_number}/render

image/png

Hochauflösendes PNG-Binär-Rendering der Folie {slide_number}.


10. Eigenständige CLI-Debugging-Tools

Präsentation oder Folie untersuchen

# Inspect entire presentation metadata
python scripts/inspect_pptx.py presentation.pptx

# Inspect specific slide as ASCII tree
python scripts/inspect_pptx.py presentation.pptx --slide 1

# Inspect single shape in JSON format
python scripts/inspect_pptx.py presentation.pptx --slide 1 --shape 2 --json

Folie als PNG rendern

# Render all slides to ./renders/
python scripts/render_pptx.py presentation.pptx --output ./renders

# Render single slide at 300 DPI using PowerPoint COM
python scripts/render_pptx.py presentation.pptx --slide 1 --dpi 300 --renderer powerpoint

11. Beispielhafte Konversationsbefehle

Hier sind typische natürlichsprachliche Aufforderungen, die von Antigravity mit dem PowerPoint-MCP-Server verarbeitet werden:

  1. "Öffne pitch_deck.pptx und untersuche Folie 2."

  2. "Verschiebe den Titel auf Folie 1 um 0,2 Zoll nach links."

  3. "Verteile die drei Feature-Boxen auf Folie 1 horizontal mit gleichen Abständen."

  4. "Richte die drei Karten auf Folie 2 an ihren oberen Kanten aus."

  5. "Ändere den Fließtext in Form 4 zu 'Enterprise Cloud Solutions' und mache ihn fett, während die 14pt Calibri-Schriftart beibehalten wird."

  6. "Dupliziere die Diagrammkarte auf Folie 2 und verschiebe sie um 0,5 Zoll nach unten."

  7. "Bringe Folie 2 in Übereinstimmung mit dem Layout und der Schrifthierarchie von Folie 1, aber behalte den Inhalt von Folie 2 bei."

  8. "Validiere Folie 3 auf Überlappungen oder Elemente außerhalb der Folie und behebe alle gefundenen Probleme."

  9. "Rendere Folie 1 und zeige mir einen visuellen Diff gegen die vorherige Version."

  10. "Speichere das geänderte Deck als final_presentation.pptx."


12. Fehlerbehebung & FAQ

PowerPoint-COM-Fehler unter Windows

  • Symptom: pywintypes.com_error: (-2147417848, 'The object invoked has disconnected from its clients.')

  • Lösung: Stellen Sie sicher, dass keine hängenden POWERPNT.EXE-Instanzen im Windows Task-Manager vorhanden sind. Schließen Sie vorhandene PowerPoint-Hintergrundprozesse oder starten Sie neu. Der Server verwendet automatisch thread-sichere COM-Dispatch mit CoInitialize / CoUninitialize.

Headless-Umgebungen & LibreOffice-Fallback

  • In Headless-CI/CD-Umgebungen oder Linux-Servern ohne Microsoft Office installieren Sie LibreOffice:

    sudo apt-get install libreoffice
  • Setzen Sie PPT_RENDERER=libreoffice oder PPT_RENDERER=auto in Ihrer Umgebung.

Schriftarten und Typografie-Drift

  • Wenn gerenderte Folien fehlende benutzerdefinierte Schriftarten aufweisen, installieren Sie die TrueType/OpenType-Schriftdateien auf dem Host. Wenn proprietäre Schriftarten fehlen, ersetzen LibreOffice und PowerPoint sie durch Standard-Systemschriftarten (Calibri, Arial).


Lizenz

MIT License.

Install Server
F
license - not found
C
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Deterministic, fully editable PowerPoint from typed slide intents. 200+ layouts, brand templates.

  • Generate, edit, and export AI presentations to PDF, PPTX, or a shareable link.

  • Presentations.AI MCP server — create designed slide decks from a topic, text, or document.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/atharva-bedekar/PowerPointMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server