MCP server enabling natural language control of Apple Keynote via AppleScript automation on macOS.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent ā or use 1-click editor setup below.
We ran the install command below but it didn't respond within our test window ā this can mean a slow first-time install rather than a real problem.
uvx keynote-mcpNo response to initialize.
This is an experimental automated check and can have false negatives ā missing environment variables, a slow cold install, etc. It doesnāt necessarily mean somethingās wrong. Last checked 1mo ago.
š” Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Keynote MCP.
An MCP server that gives AI full control over Apple Keynote through AppleScript automation. Create, edit, and export presentations ā all via natural language.
Ships with a Claude Skill that encodes layout rules, font workarounds, and design patterns so presentations come out right on the first try.
Or run directly with uvx (no install needed):
Claude Code (PyPI install / uvx):
Claude Code (from source):
Claude Desktop ā add to claude_desktop_config.json:
Or if using uvx:
Other MCP clients:
keynote-mcp (if installed via pip) or uvx keynote-mcpThe keynote-presentation skill teaches Claude how to use the MCP tools correctly ā handling font clipping bugs, theme pitfalls, coordinate math, and design patterns.
Claude Code ā copy the skill folder to your skills directory:
Claude.ai:
skills/keynote-presentation folderSecurity note: Accessibility permissions are granted per-binary, not per-project. When you grant Accessibility access to
python, all Python processes share that permission. Most keynote-mcp tools use plain AppleScript (no Accessibility needed) ā only build animations require it. For stricter isolation, you can build a standalone binary (see Standalone Binary below) so keynote-mcp gets its own permission entry.
| Category | Tools |
|---|---|
| Presentation | create, open, save, close, list, themes, resolution, slide size |
| Slides | add, delete, duplicate, move, select, layouts, slide info |
| Content | text boxes (with font/color control), titles, subtitles, bullet lists, numbered lists, code blocks (with color), quotes, images, shapes (with opacity), edit, delete, move, resize elements, set element opacity, clear slide, speaker notes, build-in animations (add/remove via UI scripting) |
| Export | screenshot slides, export PDF |
| Unsplash | search images, add to slides, random images (requires UNSPLASH_KEY) |
The keynote-presentation skill (skills/keynote-presentation/) solves real problems discovered through production use:
add_shape containers.For security-conscious users who don't want to grant Accessibility permissions to the shared python binary, you can build keynote-mcp as a standalone executable with its own permission entry:
Then use the binary in your MCP config:
When you grant Accessibility permission, it will appear as "keynote-mcp" instead of "Python".
See CONTRIBUTING.md for details.
MIT ā see LICENSE.
Factual signals from GitHub, npm, and our automated checks ā not a rating.
No reviews yet ā be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/byaxe-keynote-mcp)<a href="https://allmcps.com/mcp/byaxe-keynote-mcp"><img src="https://allmcps.com/api/badge/byaxe-keynote-mcp?style=directory" alt="Keynote MCP on AllMCPs" /></a>