Skip to main content
Glama

Atril

Servidor MCP para que Claude haga presentaciones de Keynote: crearlas con un formato consistente, leerlas, editarlas, animarlas, revisarlas y exportarlas. Pensado para trabajo científico y académico: ecuaciones en LaTeX real, gráficas científicas con barras de error y escalas logarítmicas, figuras con pie de origen y una revisión automática antes de presentar.

An MCP server that lets Claude build, read, edit, animate, review and export Apple Keynote presentations on macOS, with configurable themes, real LaTeX equations and scientific charts. Tool names and docs are in Spanish for now.

Estado: en desarrollo (0.1). Probado con Keynote Creator Studio 15.3.1 en macOS 26.

Qué puede hacer

  • Formato con temas: crear_con_formato y una herramienta por tipo de diapositiva (portada, divisor, contenido, figura, tabla, cierre). El tema fija paleta, tipografías y fondos; trae dos (noche, oscuro, y papel, claro) y puedes crear el tuyo.

  • Contenido: tablas con estilo, gráficas nativas de Keynote, ecuaciones LaTeX (vectoriales), gráficas científicas con matplotlib, figuras con la paleta (rectángulos, flechas, estrellas, bocadillos…), cifras destacadas, tarjetas, agenda y video.

  • Animación: viñetas que entran una por clic, Magic Move (aparecer, mover, escalar, resaltar, revelar series), 44 transiciones.

  • Edición: buscar y reemplazar en toda la presentación, alinear y distribuir objetos, fusionar y ordenar celdas, mover, ocultar o borrar diapositivas.

  • Revisión: revisar_presentacion reporta texto fuera de la diapositiva, cuerpo que Keynote encoge, contraste bajo (medido en la imagen real), figuras sin pie de origen, textos de muestra sobrantes, letra pequeña y diapositivas sin notas.

  • Exportar: PDF (también con las notas debajo de cada diapositiva), PowerPoint, PNG, JPEG, video, HTML, Keynote ’09 y GIF animado.

Tus archivos nunca se modifican: Atril trabaja sobre copias en su carpeta de trabajo.

Related MCP server: keynote-mcp

Requisitos

  • macOS con Keynote. Atril lo controla por AppleScript/JXA: la primera vez macOS pide permiso de Automatización para controlar Keynote.

  • Node ≥ 23.6 (corre TypeScript directo, sin compilar).

  • Opcionales:

    • ecuacion: TeX Live o MacTeX (pdflatex).

    • grafica_cientifica: Python 3 con matplotlib y numpy (ATRIL_PYTHON para elegir el intérprete).

    • Exportar a GIF y las pruebas de video: ffmpeg.

Instalación

git clone https://github.com/edgarperatla-create/atril-mcp.git
cd atril-mcp && npm install

Registrar en Claude Code (alcance de usuario: lo ven todas las sesiones):

claude mcp add --scope user atril -- node "$PWD/src/index.ts"

Con otro tema o carpeta de trabajo:

claude mcp add --scope user atril -e ATRIL_TEMA=papel -e ATRIL_DIR="$HOME/Presentaciones/Atril" -- node "$PWD/src/index.ts"

Variable

Qué fija

Por omisión

ATRIL_TEMA

nombre de un tema de temas/ o ruta a la carpeta de un tema

noche

ATRIL_DIR

carpeta de trabajo (copias/, salidas/, vistas/…)

~/Atril

ATRIL_PYTHON

Python con matplotlib para grafica_cientifica

el primero que encuentre

Cómo pedir una presentación

Basta con decirle a Claude qué quieres; las instrucciones del servidor le enseñan el flujo (crear con formato, una herramienta por diapositiva, mirar cada una, revisar y exportar):

Hazme una presentación de 10 diapositivas sobre el avance del proyecto: portada, un divisor por sección, las figuras de figuras/ con su pie de origen, la ecuación del estimador, notas con el guion y viñetas animadas en las conclusiones. Expórtala a PDF.

Abre charla.pptx y dime qué diapositivas tienen texto encogido o figuras sin pie de origen.

Temas

Un tema es una carpeta con tema.json: roles de color (fondo, tarjeta, título, texto, acento…), tipografías de títulos y de texto, fondo de portada (degradado o imagen con velo) y si las figuras deben llevar pie de origen. npm run plantilla -- <tema> genera su plantilla de Keynote. Detalles y ejemplo en temas/README.md.

Herramientas

Herramienta

Qué hace

listar_presentaciones_abiertas

id, nombre, archivo, diapositivas, tema, tamaño, si es editable

abrir

abre una copia de un .key/.pptx/.ppt

crear

presentación nueva con un tema de Keynote; la guarda en la carpeta de trabajo

leer_presentacion

por diapositiva: diseño, título, cuerpo, notas, transición, objetos (con detalle: posiciones y celdas)

agregar_diapositiva, poner_texto, notas

diapositivas, textos y notas del presentador

exportar

PDF, PPTX, PNG, JPEG, video, HTML, Keynote ’09 o GIF; etapas (un paso de animación por imagen); PDF con_notas

ver_diapositiva

imagen de una diapositiva, para que Claude la revise

guardar, cerrar

solo para presentaciones de la carpeta de trabajo

crear_con_formato

presentación nueva con el tema activo (trae prototipos ocultos al final)

diapositiva_portada / _divisor / _contenido / _figura / _tabla / _cierre

una diapositiva del formato; la figura va sobre tarjeta blanca con pie de origen

grafica

gráfica nativa de Keynote (17 tipos) con la paleta y leyenda

grafica_cientifica

matplotlib → PDF vectorial: barras de error, cotas, log/symlog, bandas, histogramas, segundo eje, fórmulas $…$

tabla, editar_celdas, tabla_estructura

tabla con el estilo del tema; editar; fusionar, ordenar, filas y columnas

ecuacion

LaTeX real (amsmath y paquetes extra) como imagen vectorial

forma

figuras vectoriales con la paleta y texto encima

cifras_destacadas, tarjetas_numeradas, agenda, diapositiva_video

componentes del formato

estilo_texto

tipografía (de títulos o de texto), tamaño, color, negrita, cursiva

transicion, revelar_por_pasos, animar_cambio, revelar_series

transiciones y animaciones con Magic Move

insertar_medio, linea, duplicar_diapositiva, mover_objeto, borrar_objeto

medios y objetos

alinear_objetos, distribuir_objetos, bloquear_objeto

disposición

buscar_reemplazar

en textos, notas y celdas de toda la presentación

borrar_diapositiva, mover_diapositiva, ocultar_diapositiva

manejo de diapositivas (los prototipos están protegidos)

diapositivas_desde_imagenes

una diapositiva por imagen

revisar_presentacion

reporte de problemas por gravedad, con hoja de contacto

presentar

iniciar, avanzar, retroceder, detener (ocupa la pantalla)

Reglas que el código hace cumplir

  • Copias, siempre. abrir copia el archivo a la carpeta de trabajo antes de abrirlo.

  • Solo es editable lo que tiene archivo dentro de la carpeta de trabajo. Lo demás (tus presentaciones, documentos sin guardar) se puede leer, ver y exportar, pero no modificar, guardar ni cerrar.

  • Nada de borradores en iCloud: crear y crear_con_formato guardan de inmediato en la carpeta de trabajo (sin archivo, Keynote deja un Untitled N.key en iCloud al exportar).

  • Exportar nunca sobrescribe: agrega _2, _3…

  • Los textos y rutas viajan como argumentos de osascript, nunca interpolados en los scripts. LaTeX se compila sin shell-escape y sin \input.

Límites de Keynote por script

No se pueden fijar por script: el relleno de las figuras nativas, el espaciado de letras, la alineación de párrafo, subíndices en texto, el color de cada serie de una gráfica nativa, los bordes de tabla, los enlaces entre diapositivas, agrupar objetos o el orden de apilado. Atril rodea varios: figuras y ecuaciones vectoriales, prototipos en la plantilla, Magic Move para animar, leyendas propias. Duplicar o mover diapositivas entre dos documentos cierra Keynote de golpe: Atril no lo hace. Detalles técnicos en CLAUDE.md.

Desarrollo

npm run check

Las pruebas hablan con el servidor por MCP real (stdio), abren Keynote y usan su propia carpeta de trabajo en trabajo/ (con archivos de prueba sintéticos que generan ellas mismas):

node test/fase1.ts
node test/fase2.ts

fase1 núcleo · fase2 formato (ATRIL_TEMA=papel para el tema claro) · fase3 gráficas, tablas, transiciones y medios · fase4 animaciones · fase5 revisión · fase6 ecuaciones, figuras y componentes · fase8 edición y exportación · fase9 gráficas científicas. test/arranque_frio.ts cierra Keynote (se niega si hay documentos abiertos).

Seguridad

Atril controla Keynote en tu Mac con permisos de Automatización. Solo modifica archivos dentro de su carpeta de trabajo, pero puede leer cualquier archivo que se le indique (por ejemplo, abrir o insertar_medio). Si un texto malicioso engañara a Claude (inyección de prompt desde una página, un correo o un documento), en teoría podría meter un archivo local en una presentación; el archivo no sale de tu Mac a menos que compartas esa presentación. Revisa lo que Claude va a insertar antes de compartir una presentación, y no le pidas trabajar con material de fuentes en las que no confías.

Para reportar un problema de seguridad, abre un issue sin detalles sensibles o escribe al autor por GitHub.

Soporte

Es un proyecto personal que se mantiene en el tiempo libre: los issues y pull requests son bienvenidos, pero no hay compromiso de respuesta ni de fechas. Probado solo con la versión de Keynote y macOS indicadas arriba.

Licencia

MIT. Ver LICENSE.

Available Tools

49 tools
abrirA

Abre una presentación (.key, .pptx o .ppt) haciendo primero una COPIA en la carpeta de trabajo de Atril; el original nunca se toca. Si la ruta ya está en la carpeta de trabajo, abre esa copia directamente.

Inputs: ruta (required).

agendaB

Agenda en dos columnas: hasta 8 puntos con número en el color de acento, título y descripción. Úsala sobre una diapositiva_tabla.

Inputs: puntos (required), documento (required), diapositiva (required).

agregar_diapositivaA

Agrega una diapositiva con un diseño maestro (por nombre) al final, o después de la diapositiva indicada (0 = al principio). Si el diseño no existe, el error lista los disponibles.

Inputs: documento (required), diseno, despues_de.

alinear_objetosB

Alinea objetos entre sí (al borde o centro común) o con la diapositiva: izquierda, centro, derecha, arriba, medio, abajo.

Inputs: modo (required), objetos (required), documento (required), diapositiva (required), +1 more.

animar_cambioA

Animación con Magic Move: duplica la diapositiva y en la copia mueve/escala (x, y, ancho, alto en puntos), gira (rotacion, grados), atenúa (opacidad 0–100) o resalta (color_texto hex, en textos) objetos; la transición anima el cambio.

Inputs: cambios (required), documento (required), diapositiva (required), duracion.

bloquear_objetoB

Bloquea (o desbloquea) un objeto para que no se mueva por accidente al editar a mano en Keynote.

Inputs: tipo (required), indice (required), documento (required), diapositiva (required), +1 more.

borrar_diapositivaC

Borra una diapositiva. Los prototipos ocultos de la plantilla están protegidos.

Inputs: documento (required), diapositiva (required).

borrar_objetoB

Borra un objeto de una diapositiva (tipo e índice como en leer_presentacion con detalle).

Inputs: tipo (required), indice (required), documento (required), diapositiva (required).

buscar_reemplazarA

Busca texto en toda la presentación (cuadros, figuras, notas y celdas de tablas); con reemplazar, lo cambia. Un texto con formato mixto (p. ej. una palabra en negrita de color) no se reescribe para no perder ese énfasis, salvo con forzar: se reporta aparte. Sin reemplazar solo cuenta y no modifica.

Inputs: buscar (required), documento (required), notas, forzar, +3 more.

cerrarB

Cierra una presentación de Atril; por defecto sin guardar. No cierra presentaciones del usuario.

Inputs: documento (required), guardar.

cifras_destacadasC

Fila de 1–4 cifras destacadas tarjeta con borde, cifra grande en la tipografía de títulos y etiqueta pequeña. Color de la cifra: cualquiera del tema (titulo por omisión).

Inputs: cifras (required), documento (required), diapositiva (required), x, +3 more.

crearB

Crea una presentación nueva con un tema de Keynote y la guarda de inmediato como .key en la carpeta de copias de Atril. Si el tema no existe, el error lista los disponibles.

Inputs: alto, tema, ancho, nombre.

crear_con_formatoA

Crea una presentación con el formato del tema activo (su plantilla: fondos, tipografías y paleta). Trae ocultas 6 diapositivas prototipo al final: no borrarlas, las usan las herramientas diapositiva_*.

Inputs: nombre.

diapositiva_cierreC

Cierre: título ("Gracias"), subtítulo en el color de acento y autor.

Inputs: documento (required), autor, notas, titulo, +2 more.

diapositiva_contenidoB

Diapositiva de contenido: antetítulo, título, viñetas a todo el ancho, pie de sección y número de página. Con animar_vinetas, cada viñeta entra con un clic.

Inputs: titulo (required), documento (required), antetitulo (required), pie, +4 more.

diapositiva_divisorC

Divisor de sección: número grande en el color de acento, título y subtítulo.

Inputs: numero (required), titulo (required), documento (required), notas, +2 more.

diapositiva_figuraA

Figura sobre tarjeta blanca con pie de origen (obligatorio si el tema lo exige). Con cuerpo: figura a la izquierda y viñetas a la derecha; sin cuerpo: figura a todo el ancho. La imagen conserva su proporción.

Inputs: imagen (required), titulo (required), documento (required), antetitulo (required), +6 more.

diapositiva_portadaC

Portada: antetítulo en el color de acento, título grande, subtítulo en cursiva y autor.

Inputs: titulo (required), documento (required), antetitulo (required), autor, +3 more.

diapositivas_desde_imagenesB

Una diapositiva por imagen. Con el formato cada una es una diapositiva_figura (tarjeta blanca; pie de origen; título del nombre del archivo o de titulos); en otras presentaciones usa el comando de Keynote.

Inputs: imagenes (required), documento (required), pie, origen, +3 more.

diapositiva_tablaB

Diapositiva para tabla: antetítulo, título, pie de sección; el área de contenido queda libre (para tabla, ecuacion, forma, gráficas o componentes).

Inputs: titulo (required), documento (required), antetitulo (required), pie, +2 more.

diapositiva_videoB

Diapositiva de video del mazo v3: antetítulo ANIMACIÓN, video en bucle sobre tarjeta blanca con pie de origen obligatorio, y a la derecha QUÉ OBSERVAR con 2–3 viñetas.

Inputs: video (required), origen (required), titulo (required), observar (required), +5 more.

distribuir_objetosB

Reparte 3 o más objetos con el mismo espacio entre ellos, en horizontal o vertical (el primero y el último no se mueven).

Inputs: eje (required), objetos (required), documento (required), diapositiva (required).

duplicar_diapositivaA

Duplica una diapositiva y pone la copia justo después. Base de Magic Move: duplicar, mover o escalar objetos en la copia con mover_objeto, y poner transición magic move en la original.

Inputs: documento (required), diapositiva (required).

ecuacionA

Ecuación con LaTeX real (amsmath; modo display, sin $) como imagen vectorial, en el color de título por omisión. Sin ancho queda del tamaño de letra pedido; sin x se centra. Para varias líneas usa \begin{aligned}…\end{aligned}.

Inputs: latex (required), documento (required), diapositiva (required), x, +5 more.

editar_celdasB

Cambia celdas de una tabla existente (índice de tabla como en leer_presentacion con detalle; fila y columna desde 1). Los valores quedan como texto.

Inputs: celdas (required), documento (required), diapositiva (required), tabla.

estilo_textoB

Cambia el estilo de un texto existente (tipo e índice de leer_presentacion con detalle): tipografía de títulos o de texto del tema, tamaño, color, negrita, cursiva; todo el texto o un párrafo.

Inputs: indice (required), documento (required), diapositiva (required), tipo, +6 more.

exportarA

Exporta la presentación a PDF, PowerPoint, imágenes PNG/JPEG (una por diapositiva visible, en una carpeta), video 1080p (con transiciones), HTML (carpeta), Keynote ’09 o GIF animado (desde el video; requiere ffmpeg). Por defecto va a la carpeta de salidas de Atril; nunca sobrescribe: si el destino existe, agrega _2, _3…

Inputs: formato (required), documento (required), etapas, destino, +1 more.

formaB

Figura vectorial con la paleta del formato: rectangulo, rectangulo_redondeado, elipse (círculo si ancho = alto), triangulo, triangulo_rectangulo, rombo, poligono (lados), estrella (lados = puntas), bocadillo (cola) (con x, y, ancho, alto) o linea, flecha, flecha_doble (con x1, y1, x2, y2). Relleno, borde, grosor, opacidad 0–100, punteado; texto opcional centrado encima. Por omisión: relleno tarjeta con borde; líneas en el color de acento.

Inputs: tipo (required), documento (required), diapositiva (required), x, +17 more.

graficaB

Gráfica nativa de Keynote con los colores de las series del tema y leyenda. Barras/línea/área: cada serie trae un valor por categoría. Pastel: una sola serie, una porción por categoría. Dispersión: valores_x compartidos y, por serie, un valor y por cada x (sin categorías). Por omisión ocupa el área de contenido. Tipos: barras, barras_apiladas, barras_horizontales, barras_horizontales_apiladas, linea, area, area_apilada, pastel, dispersion, barras_3d, barras_apiladas_3d, barras_horizontales_3d, barras_horizontales_apiladas_3d, linea_3d, area_3d, area_apilada_3d, pastel_3d.

Inputs: tipo (required), series (required), documento (required), diapositiva (required), +6 more.

grafica_cientificaA

Gráfica científica con la paleta del tema (matplotlib → PDF vectorial): barras de error (simétricas o asimétricas, en x y en y), cotas superiores, escalas log/symlog, ejes invertidos, marcas propias, bandas de confianza, histogramas, segundo eje y, líneas de referencia y anotaciones. Textos con fórmulas entre $…$ (Computer Modern, como ecuacion). Sin diapositiva: crea una diapositiva_figura nueva (tarjeta blanca, con pie de origen). Con diapositiva: la dibuja encima, con los colores de texto del tema y fondo transparente (por omisión, en el área de contenido). Para lo que Keynote sí dibuja bien (barras, pastel) usa grafica, que es editable.

Inputs: series (required), documento (required), x, y, +18 more.

guardarA

Guarda una presentación de Atril como .key en la carpeta de copias (las nuevas o importadas de PowerPoint reciben archivo nuevo). Nunca guarda presentaciones del usuario.

Inputs: documento (required), nombre.

insertar_medioA

Inserta una imagen, un video (.mp4/.mov/.m4v) o un audio en una diapositiva, sin tarjeta (para figuras con tarjeta y pie de origen usa diapositiva_figura). El alto sigue la proporción del archivo.

Inputs: archivo (required), documento (required), diapositiva (required), x, +4 more.

leer_presentacionA
Read-only

Lee una presentación: por diapositiva, diseño, si está saltada, título, cuerpo, notas del presentador, transición, conteo de objetos por tipo y sus textos. Con detalle=true devuelve cada objeto con tipo, índice, texto, archivo y posición/tamaño (los índices sirven para poner_texto).

Inputs: documento (required), desde, hasta, detalle.

lineaB

Línea recta entre dos puntos (en puntos). El color y el grosor los pone el tema; no se pueden fijar por script.

Inputs: x1 (required), x2 (required), y1 (required), y2 (required), +2 more.

listar_presentaciones_abiertasA
Read-only

Lista las presentaciones abiertas en Keynote: id, nombre, archivo, número de diapositivas, tema, tamaño y si Atril puede editarla (editable=false: es del usuario, solo lectura).

Inputs: no named parameters.

mover_diapositivaA

Mueve una diapositiva para que quede después de otra (0 = al principio). Devuelve su nuevo número.

Inputs: documento (required), despues_de (required), diapositiva (required).

mover_objetoC

Mueve, redimensiona y/o gira un objeto, identificado por tipo e índice como en leer_presentacion con detalle.

Inputs: tipo (required), indice (required), documento (required), diapositiva (required), +5 more.

notasA

Lee las notas del presentador de una diapositiva o, si se da texto, las reemplaza.

Inputs: documento (required), diapositiva (required), texto.

ocultar_diapositivaA

Oculta (salta) o vuelve a mostrar una diapositiva. Las ocultas no se presentan ni se exportan.

Inputs: documento (required), diapositiva (required), ocultar.

poner_textoA

Escribe texto en una diapositiva: el título y el cuerpo del diseño, reemplaza el texto de objetos existentes (tipo e índice de leer_presentacion con detalle) y/o agrega un cuadro de texto nuevo en una posición (puntos). En el cuerpo, cada línea es una viñeta.

Inputs: documento (required), diapositiva (required), cuerpo, titulo, +2 more.

presentarA

Modo presentación de Keynote: iniciar (desde una diapositiva), siguiente, anterior, detener. OCUPA LA PANTALLA del usuario: úsalo solo si lo pidió.

Inputs: accion (required), desde, documento.

revelar_por_pasosA

Animación de aparición con Magic Move: los objetos de la diapositiva aparecen en el orden de pasos (cada paso, uno o varios objetos). Se insertan antes versiones parciales de la diapositiva; la original queda como la final. Los índices se toman de leer_presentacion con detalle sobre la diapositiva completa.

Inputs: pasos (required), documento (required), diapositiva (required), duracion.

revelar_seriesB

Gráfica cuyas series entran una por una (Magic Move entre copias de la diapositiva). Para barras, líneas o áreas; el eje se reescala entre pasos porque su máximo no se puede fijar por script.

Inputs: tipo (required), series (required), documento (required), categorias (required), +6 more.

revisar_presentacionA
Read-only

Revisa todas las diapositivas visibles y reporta problemas por gravedad: objetos fuera de la diapositiva o sobre el pie, cuerpo que Keynote encoge para que quepa (tamaño efectivo estimado), contraste bajo contra el fondo real, figuras o videos sin pie de origen, textos de muestra sobrantes, letra < 10 pt y diapositivas sin notas. Devuelve también una hoja con todas las diapositivas. Úsala antes de dar una presentación por terminada.

Inputs: documento (required).

tablaC

Tabla con el estilo del tema: cabecera (color cabecera) con texto de título en negrita, celdas (color tarjeta) con la tipografía de texto, primera columna a la izquierda y el resto centrado. Los valores se guardan como texto (conservan signos y guiones).

Inputs: filas (required), documento (required), diapositiva (required), x, +5 more.

tabla_estructuraA

Cambia la estructura de una tabla y le reaplica el estilo del formato: fusionar o separar un rango ("A1:B1"; al fusionar Keynote une los textos con un tabulador, así que fusiona celdas vacías con una llena), ordenar por una columna (la cabecera queda arriba), agregar filas o columnas al final (conserva el ancho), quitar una fila o columna.

Inputs: accion (required), documento (required), diapositiva (required), fila, +5 more.

tarjetas_numeradasC

Fila de 2–4 tarjetas del formato (resúmenes, preguntas, mensajes): encabezado corto en la tipografía de títulos y el color de acento (un número, una cifra o una frase) y texto debajo.

Inputs: tarjetas (required), documento (required), diapositiva (required), x, +3 more.

transicionB

Transición al pasar de esta diapositiva a la siguiente. "magic move" anima los objetos que cambian de lugar, tamaño o rotación entre dos diapositivas parecidas (usa duplicar_diapositiva y mover_objeto). Con automatica=true avanza sola tras el retraso.

Inputs: efecto (required), documento (required), diapositiva (required), retraso, +2 more.

ver_diapositivaA
Read-only

Devuelve la imagen PNG de una diapositiva tal como la dibuja Keynote, para revisar el resultado.

Inputs: documento (required), diapositiva (required), ancho_max.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 49 tools

    Disambiguation3/5

    Many tools target distinct resources or actions, and descriptions often cross-reference alternatives (e.g., insertar_medio vs diapositiva_figura). However, there are several overlapping creation and animation paths—crear vs crear_con_formato, generic agregar_diapositiva vs specialized diapositiva_* builders, and transicion/revelar_por_pasos/animar_cambio/revelar_series—so selection requires careful reading.

    Naming Consistency3/5

    All names use readable Spanish snake_case. But conventions are mixed: bare verbs (abrir, crear, exportar), verb_noun forms (agregar_diapositiva, mover_objeto), and noun-only labels (linea, notas, grafica, tabla, agenda) appear without a predictable pattern.

    Tool Count2/5

    49 tools is far above a comfortable range for this server, even though the presentation-automation domain is broad. Many specialized slide builders and animation helpers could be consolidated, and the surface is likely to overwhelm an agent.

    Completeness4/5

    The surface covers the presentation lifecycle well: create/open/read, slide and object editing, text, tables, charts, media, notes, transitions/animations, export, presenting, and review. Gaps are minor—no explicit z-order/grouping, theme switching, or file deletion—so agents can mostly work around them.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • 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
      -
    • A
      license
      B
      quality
      D
      maintenance
      Provides full programmatic control over Apple Keynote through the Model Context Protocol, enabling creation, editing, presenting, and exporting of presentations via natural language.
      70
      3
      MIT