Skip to main content
Glama

KPA — Keynote Programmatic Authoring

Status: Phase 1, Step 1. Bootstrapping. PRD v1.0 approved 2026-06-06.

KPA is a Python toolkit, MCP server, OpenClaw skill, and CLI that lets LLM agents read, author, edit, design, and optimize Apple Keynote (.key) presentations programmatically — with the same fluency the broader ecosystem has for .pptx and .pdf.

Why

Apple has no public spec for the Keynote file format. KPA reverse-engineers it (via schemas extracted directly from the Keynote.app binary, plus prior art from keynote-parser), then layers a clean Python API, an MCP server, and a critic / optimizer loop on top.

Related MCP server: Keynote-MCP

Status

This repository is in active bootstrap. See:

License

MIT — see LICENSE.

Maintainers

  • Scotty (Chief Engineer, iMac) — agent:scotty

  • HAL 9000 (Strategy, Mac Studio) — agent:hal

  • Captain Phillip Alvelda — vision and approval authority

— Built in the OpenClaw fleet.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • 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.
      43 PyPI
      81
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that enables AI assistants to control Keynote presentations through AppleScript automation, supporting slide operations, theme-aware content management, and export functions.
      11
      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
      -