Skip to main content
Glama

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

  1. Clone the repository

    git clone https://github.com/betancur/keynote-mcp.git
    cd keynote-mcp
  2. Install dependencies

    pip install -r requirements.txt
  3. Grant macOS permissions

    • System Preferences > Security & Privacy > Privacy

    • Add Terminal and Python to Accessibility permissions

    • Add Python to Automation permissions for Keynote

  4. Configure Claude Desktop Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

    {
      "mcpServers": {
        "keynote": {
          "command": "python3",
          "args": ["/path/to/keynote-mcp/mcp_server.py"]
        }
      }
    }
  5. 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 presentation

  • open_presentation - Open existing presentation

  • save_presentation - Save presentation

  • close_presentation - Close presentation

Slide Operations

  • add_slide - Add new slide

  • delete_slide - Delete slide

  • duplicate_slide - Copy slide

  • move_slide - Reorder slides

Content Management

  • add_text_box - Add text to slide

  • add_image - Add image to slide

  • set_slide_content - πŸ†• Set content using theme elements (recommended)

  • get_slide_default_elements - πŸ†• Check available theme elements

Export & Capture

  • screenshot_slide - Take slide screenshot

  • export_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:

πŸ’‘ Usage Examples

# 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

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A 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
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    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.
    32 PyPI
    76
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A 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.
    2
    984 npm
    8
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Local 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.
    19
    1
    -