Provides tools for controlling Keynote presentations, enabling creation, editing, and presentation management through AppleScript automation.
Supports environment variable configuration for storing API keys and other sensitive information.
Integrates with macOS through AppleScript to enable Keynote automation and presentation management.
Allows searching and adding high-quality images from Unsplash directly into Keynote presentations.
Keynote-MCP
https://github.com/user-attachments/assets/fb293e54-0795-434f-a811-7f850d36619f
⚠️ Development Notice: This project was developed using Cursor AI without human code review. It's provided for educational and experimental purposes only. Please use with caution in production environments and conduct thorough testing before deployment.
A Model Context Protocol (MCP) server that enables AI assistants to control Keynote presentations through AppleScript automation.
✨ Features
🎨 Complete Presentation Management - Create, open, save, and close presentations
📊 Rich Slide Operations - Add, delete, duplicate, and move slides
📝 Powerful Content Management - Add text, images, shapes, tables, and charts
📸 Flexible Export Options - Screenshot slides, export to PDF and images
🖼️ Unsplash Integration - Automatically search and add high-quality images
🔒 Secure & Reliable - Comprehensive error handling and permission management
🧪 Well Tested - Unit and integration test coverage
🚀 Quick Start
Prerequisites
macOS 10.14 or later
Keynote application
Python 3.8 or later
Installation
Clone the repository
git clone https://github.com/easychen/keynote-mcp.git cd keynote-mcpInstall dependencies
pip install -r requirements.txtConfigure environment (optional for Unsplash features)
cp env.example .env # Edit .env file and add your Unsplash API keySet up macOS permissions
Go to System Preferences > Security & Privacy > Privacy
Add Terminal and Python to Accessibility permissions
Add Python to Automation permissions for Keynote
Usage with MCP Clients
Gemini CLI Configuration
Add this configuration to your MCP client:
Claude Desktop Configuration
Add to your claude_desktop_config.json
:
Other MCP Clients
For other MCP-compatible clients, use these connection details:
Command:
python
Args:
["start_server.py"]
Working Directory:
/path/to/keynote-mcp
Environment:
{"UNSPLASH_KEY": "your_api_key"}
(optional)
📖 Available Tools
The server provides comprehensive tools for Keynote automation:
🎨 Presentation Management
Create, open, save, and close presentations
Set themes and get presentation information
List all open presentations
📊 Slide Operations
Add, delete, duplicate, and move slides
Set slide layouts and get slide information
Navigate between slides
📝 Content Management
Add text boxes, titles, and subtitles
Insert images from files or Unsplash
Create bullet lists and numbered lists
Add code blocks and quotes
📸 Export & Screenshot
Take screenshots of individual slides
Export presentations to PDF
Export as image sequences
🖼️ Unsplash Integration (Optional)
Search high-quality images
Automatically add images to slides
Support for different orientations and styles
💡 Usage Examples
Once connected to your MCP client, you can use natural language to control Keynote:
"Create a new presentation about AI trends"
"Add a slide with the title 'Machine Learning Basics'"
"Insert an image about technology on slide 2"
"Export the presentation as PDF"
🔧 Unsplash Configuration (Optional)
To use Unsplash image features:
Get API Key: Visit Unsplash Developers
Configure: Add your API key to the
.env
file:UNSPLASH_KEY=your_unsplash_access_key_here
📚 Documentation
Installation Guide - Detailed setup instructions
Technical Documentation - API reference and architecture
Examples - Usage examples and demos
🤝 Contributing
We welcome contributions! Please see CONTRIBUTING.md for details on how to get started.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🏆 Acknowledgments
Model Context Protocol - Standardized tool calling protocol for AI models
Unsplash - High-quality free images
AppleScript - Powerful macOS automation
📞 Contact
🐛 Issues: GitHub Issues
💬 Discussions: GitHub Discussions
⭐ Support
If this project helps you, please give it a ⭐️!
Empowering AI assistants to create and manage Keynote presentations effortlessly.
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
A Model Context Protocol server that enables AI assistants to control Apple Keynote presentations through AppleScript automation, supporting comprehensive slide creation, management, and content operations.
Related MCP Servers
- -securityFlicense-qualityA Model Context Protocol server that enables AI models to create and manipulate PowerPoint presentations with advanced features like financial charts, formatting, and template management.Last updated -24
- AsecurityFlicenseAqualityA Model Context Protocol server that enables AI assistants to interact with Apple Reminders on macOS, allowing users to view lists, retrieve, create, complete, and delete reminders through natural language.Last updated -56
- AsecurityAlicenseAqualityA Model Context Protocol server that enables running AppleScript code to interact with Mac applications and system features including Notes, Calendar, Contacts, Messages, file management, and more.Last updated -1141362MIT License
- -securityAlicense-qualityA Model Context Protocol server that enables AI assistants to interact with iOS simulators, perform accessibility testing, manage apps, and automate complex iOS workflows.Last updated -27Apache 2.0