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 Cursor

Add to ~/.cursor/mcp.json:

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

Restart Cursor after editing. On first use, macOS will ask you to grant Automation permission (Cursor → 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)
evaluate Safe Returns guidance (does NOT execute arbitrary code)
slide_snapshot Stub Not yet implemented
add_speaker_notes Stub Not yet implemented
list_templates Stub Not yet implemented
analyze_template Stub Not yet implemented
manage_slide Stub Not yet implemented
add_animation Stub Not yet implemented

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.1.0.tar.gz (22.2 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.1.0-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for macpoint-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8bb36a7d4e57f0dd3fda1dc8259c92425792d4c28af60e5085fa4e9604b467c2
MD5 8da62c870965b968e876f373744a2095
BLAKE2b-256 7087deacd1e756b7131e89340ce98aae2ce5b296564321ed0ab47ad5fa76b98f

See more details on using hashes here.

Provenance

The following attestation bundles were made for macpoint-0.1.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.1.0-py3-none-any.whl.

File metadata

  • Download URL: macpoint-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.7 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 04cff3e2f3ce3f67b4c06e70810016655a703742e4f7b5b72245d47104015a3e
MD5 d207a638ea6748aad4b7480e2fc50b8e
BLAKE2b-256 c98020b4d3750de6e6d692a8a7739d109b5410b36d6b032a9156fcb14f38933f

See more details on using hashes here.

Provenance

The following attestation bundles were made for macpoint-0.1.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