Skip to main content

macOS MCP server for Microsoft PowerPoint for Mac — automate slide decks from Cursor and other MCP clients.

Project description

MacPoint

PyPI version License: MIT Python 3.10+

macOS MCP server for Microsoft PowerPoint for Mac — automate slide decks from Cursor, Claude, and other MCP clients.

MacPoint gives AI agents the ability to create, edit, and manage PowerPoint presentations on your Mac using the Model Context Protocol. Tool names and parameters are aligned with powerpoint-mcp (Windows/COM) for cross-platform agent compatibility.

What it does

  • 11 MCP tools for PowerPoint automation (open, save, create from template, add slides, populate text, navigate, and more)
  • AppleScript backend drives the live PowerPoint app (open, save, close, navigate slides)
  • python-pptx backend handles on-disk edits (populate placeholders, add slides) without needing the app open

Install

pip install macpoint

Or with uv:

uv add macpoint

Configure your MCP client

MacPoint works with any MCP client.

Cursor

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "macpoint": {
      "command": "macpoint",
      "args": []
    }
  }
}

Restart Cursor after editing.

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "macpoint": {
      "command": "macpoint",
      "args": []
    }
  }
}

Restart Claude Desktop after editing.

Other MCP clients

Point your client at the macpoint command (stdio transport, JSON-RPC). Any client that speaks the Model Context Protocol will work.

Python (no MCP client)

You can use the backends directly without an MCP client:

from macpoint.backends.template_instantiate import copy_template_to_new_presentation
from macpoint.backends.pptx_backend import add_slide, populate_plain_text
from pathlib import Path

copy_template_to_new_presentation(Path("template.potx"), Path("deck.pptx"))
add_slide(Path("deck.pptx"), "Title and Content")
populate_plain_text(Path("deck.pptx"), 1, "Title", "Hello World")

On first use, macOS will ask you to grant Automation permission (your app → Microsoft PowerPoint) in System Settings → Privacy & Security → Automation.

Tools

Tool Status What it does
manage_presentation Working Open, create (blank or from template), save, save_as, close
populate_placeholder Working Set plain text on named placeholders (python-pptx)
add_slide_with_layout Working Append a slide using a named layout
switch_slide Working Navigate to a slide by number (AppleScript)
slide_snapshot Working Text snapshot of shapes, placeholders, text, and speaker notes
add_speaker_notes Working Set speaker notes on any slide (overwrites)
list_templates Working Scan macOS template directories
analyze_template Working Enumerate layouts, placeholders, types, and dimensions
manage_slide Working Delete, move (reorder), or duplicate slides
evaluate Safe Returns guidance (does NOT execute arbitrary code)
add_animation N/A Not feasible on Mac (animation schema unsupported)

Example: Create a deck from a template

manage_presentation(action="create", template_path="/path/to/template.potx", file_path="/path/to/new-deck.pptx")
add_slide_with_layout(template_name="", layout_name="Title and Content", after_slide=0)
populate_placeholder(placeholder_name="Title", content="Hello World", slide_number=1)
manage_presentation(action="save")

Requirements

  • macOS (AppleScript is Mac-only)
  • Microsoft PowerPoint for Mac (installed and launchable)
  • Python 3.10+

Development

git clone https://github.com/AndrewIgdal17/macpoint.git
cd macpoint
python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/macpoint

Support

If MacPoint saves you time, consider sponsoring the project.

Attribution

  • API reference: Ayushmaniar/powerpoint-mcp (MIT). MacPoint is independent code for macOS.
  • Microsoft PowerPoint is a trademark of Microsoft Corporation.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

macpoint-0.2.0.tar.gz (26.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

macpoint-0.2.0-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

Details for the file macpoint-0.2.0.tar.gz.

File metadata

  • Download URL: macpoint-0.2.0.tar.gz
  • Upload date:
  • Size: 26.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for macpoint-0.2.0.tar.gz
Algorithm Hash digest
SHA256 2a6ea1b228ca3697c109986ec3d5ed29789ff182c5e1eaa7b394433427190e4f
MD5 438f124061b05861bee3123ce866ae60
BLAKE2b-256 727fc06e14bbeda0616a9e4a7df33c5ba5b1e191aa9e858346c19dc7657c4d7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for macpoint-0.2.0.tar.gz:

Publisher: publish.yml on AndrewIgdal17/macpoint

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file macpoint-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: macpoint-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 13.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for macpoint-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a1e0d24d39cd3e7ce6f100badbaab54cc6ca1e1b14ea3d23675fca34a0f0cf05
MD5 27fd80f8436720f3223d60a46857d3d5
BLAKE2b-256 27f4a7f2e39f340b0559f8cd128d634402f62925abc2441a3427d945501b1cdf

See more details on using hashes here.

Provenance

The following attestation bundles were made for macpoint-0.2.0-py3-none-any.whl:

Publisher: publish.yml on AndrewIgdal17/macpoint

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page