Keynote MCP
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
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.
Quick Start
Prerequisites
- macOS 10.14+
- Keynote application installed
- Python 3.10+
Option A: Install from PyPI
Or run directly with uvx (no install needed):
Option B: Install from source
Register the MCP server
**Claude Code (PyPI install / uvx):**
**Claude Code (from source):**
**Claude Desktop** — add to claude_desktop_config.json:
Or if using uvx:
**Other MCP clients:**
- Command: keynote-mcp (if installed via pip) or uvx keynote-mcp
- Transport: stdio
3. Install the Skill (recommended)
The 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:**
1. Zip the skills/keynote-presentation folder
2. Go to Settings > Capabilities > Skills
3. Click "Upload skill" and select the zip
4. macOS permissions
- System Settings > Privacy & Security > Accessibility — add Terminal/your IDE
- System Settings > Privacy & Security > Automation — allow Python to control Keynote
> **Security 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.
5. Use it
Available Tools (30+)
| 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) |
Unsplash Integration (optional)
About the Skill
The keynote-presentation skill (skills/keynote-presentation/) solves real problems discovered through production use:
- **Font clipping bug**: Large font sizes (>48pt) create tiny text boxes that clip text to 1-2 characters. The skill teaches Claude the resize-then-edit workaround.
- **Theme pitfalls**: Many themes (Gradient, Minimalist Dark) don't show backgrounds on Blank slides. The skill includes a tested compatibility table.