Keynote-MCP
Enables AI assistants to control Keynote presentations through AppleScript automation, with capabilities for presentation management, slide operations, and theme-aware content placement.
Leverages macOS automation features to control Keynote presentations, requiring specific macOS permissions for accessibility and automation.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Keynote-MCPcreate a new presentation called 'Quarterly Report'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Keynote-MCP
A Model Context Protocol (MCP) server that enables AI assistants to control Keynote presentations through AppleScript automation.
π This is an enhanced fork featuring modular architecture, theme-aware content management, and comprehensive documentation improvements.
Features
Presentation Management: Create, open, save, close presentations
Slide Operations: Add, delete, duplicate, move slides
Theme-Aware Content: Professional content placement using Keynote's design elements
Modular Architecture: Maintainable codebase with specialized AppleScript modules
Export Functions: Screenshots, PDF export
Related MCP server: Keynote-MCP
Quick Setup
Clone the repository
git clone https://github.com/betancur/keynote-mcp.git cd keynote-mcpInstall dependencies
pip install -r requirements.txtGrant macOS permissions
System Preferences > Security & Privacy > Privacy
Add Terminal and Python to Accessibility permissions
Add Python to Automation permissions for Keynote
Configure Claude Desktop Edit
~/Library/Application Support/Claude/claude_desktop_config.json:{ "mcpServers": { "keynote": { "command": "python3", "args": ["/path/to/keynote-mcp/mcp_server.py"] } } }Test the server
python3 test_server.py
Note: Make sure Keynote is installed and you have appropriate permissions for automation.
Available Tools (26 total)
Presentation Management
create_presentation- Create new presentationopen_presentation- Open existing presentationsave_presentation- Save presentationclose_presentation- Close presentation
Slide Operations
add_slide- Add new slidedelete_slide- Delete slideduplicate_slide- Copy slidemove_slide- Reorder slides
Content Management
add_text_box- Add text to slideadd_image- Add image to slideset_slide_content- π Set content using theme elements (recommended)get_slide_default_elements- π Check available theme elements
Export & Capture
screenshot_slide- Take slide screenshotexport_pdf- Export as PDF
Theme-Aware Features
Our latest update includes theme-aware content management that uses Keynote's built-in design elements for professional-looking presentations with consistent styling.
π Documentation
Comprehensive documentation is available in the docs/ directory:
π Documentation Index - Complete documentation overview
ποΈ Modular Architecture - AppleScript modular structure
π¨ Theme-Aware Content - Best practices for theme elements
πΊοΈ Project Roadmap - Future development plans and features
Quick Links
Getting Started: Follow the Quick Setup section above
For Developers: Modular Architecture
Best Practices: Theme-Aware Content
π‘ Usage Examples
Theme-Aware Content (Recommended)
# Create new presentation
result = await call_tool("create_presentation", {
"name": "My Presentation"
})
# Add slide with theme-aware content
result = await call_tool("add_slide", {
"title": "Welcome",
"layout": "Title & Content"
})
# Set content using theme elements (automatic positioning & styling)
result = await call_tool("set_slide_content", {
"title": "Project Overview",
"subtitle": "Q4 2024 Results",
"bullet_points": ["Revenue up 15%", "New markets entered", "Team expansion"]
})
# Check what theme elements are available
result = await call_tool("get_slide_default_elements", {"slide_number": 1})Manual Content Placement
# Add text to specific position
result = await call_tool("add_text_box", {
"text": "Custom positioned text",
"x": 100,
"y": 200
})
# Add image with precise placement
result = await call_tool("add_image", {
"image_path": "/path/to/image.jpg",
"x": 300,
"y": 150
})π What's New in This Fork
This enhanced version includes significant improvements over the original:
β¨ Major Enhancements
ποΈ Modular Architecture: Split monolithic AppleScript into 5 specialized modules for better maintainability
π¨ Theme-Aware Content: Smart content placement using Keynote's built-in design elements
π Comprehensive Documentation: Complete guides in the
docs/folderπ§ Enhanced Integration: Improved Python-AppleScript modular execution
π Internationalization: All Chinese comments translated to English
π― Key Benefits
Professional Results: Theme-aware functions create presentations with consistent styling
Better Performance: Modular loading only loads necessary AppleScript code
Easier Maintenance: Specialized files for different functionality areas
Developer Friendly: Complete documentation and architecture guides
Credits: This fork is based on the original keynote-mcp by @easychen. We've enhanced it with modern architecture and professional content management features.
License
MIT License
This server cannot be deployed
Maintenance
Related MCP Connectors
Presentations.AI MCP server β create designed slide decks from a topic, text, or document.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoβ¦
AI presentation and report generation: slides, diagrams, PPTX export, live preview MCP App.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI models to create and manipulate PowerPoint presentations with advanced features like financial charts, formatting, and template management.29-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI assistants to control Apple Keynote presentations through AppleScript automation, supporting comprehensive slide creation, management, and content operations.32 PyPI76MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables execution of AppleScript and JavaScript for Automation scripts on macOS, allowing programmatic control of applications and system functions through a rich knowledge base of pre-defined scripts.2984 npm8MIT
- FlicenseAqualityCmaintenanceLocal macOS MCP server that reads, edits, and exports Apple Keynote presentations via JXA. Enables Claude to visually analyze slides, apply design changes, and iterate on presentations directly.191-