Keynote MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_presentationB | Creates a new blank Keynote presentation. Optionally specify a theme name. |
| open_presentationA | Opens a Keynote presentation (.key file) by file path. |
| save_presentationA | Saves the frontmost Keynote presentation. Optionally specify a file path for save-as. |
| close_presentationB | Closes the frontmost Keynote presentation. |
| list_presentationsA | Lists all currently open Keynote presentations with their names and file paths. |
| get_presentation_infoA | Returns slide count, theme name, dimensions, and file path for a presentation. Defaults to the frontmost presentation. |
| add_slideB | Adds a new slide to the frontmost presentation. Optionally specify position and master slide name. |
| delete_slideA | Removes a slide by its 1-based index from the frontmost presentation. |
| duplicate_slideA | Duplicates a slide by its 1-based index in the frontmost presentation. |
| move_slideB | Moves a slide from one position to another in the frontmost presentation. |
| get_slide_countA | Returns the total number of slides in the frontmost presentation. |
| list_slidesA | Returns an array of all slides in the frontmost presentation with index, title text, and layout name. |
| get_slide_layout_namesA | Lists all available master slide (layout) names for the current theme of the frontmost presentation. |
| set_slide_titleB | Sets the title text of a slide |
| set_slide_bodyB | Sets the body text of a slide |
| add_text_itemA | Adds a new text box to a slide at a specified position and size |
| update_text_itemB | Updates the text content of an existing text item on a slide |
| delete_text_itemC | Removes a text item from a slide |
| list_text_itemsB | Lists all text items on a slide with their content, position, and size |
| format_textB | Formats a text item with font, size, color, bold, italic, and alignment options |
| add_imageB | Adds an image file to a slide at a given position with optional width and height |
| replace_imageB | Replaces an existing image on a slide with a new image file |
| delete_imageB | Removes an image from a slide |
| list_imagesA | Lists all images on a slide with position, size, and file name info |
| set_image_positionA | Repositions and/or resizes an existing image on a slide |
| set_presenter_notesB | Sets the presenter notes for a specific slide |
| get_presenter_notesA | Gets the presenter notes for a specific slide |
| get_all_presenter_notesA | Returns presenter notes for all slides as an array of {slideIndex, notes} |
| list_themesA | Lists available Keynote themes. Attempts to query Keynote directly; falls back to a curated list of standard themes. |
| apply_themeA | Applies a theme to the current Keynote presentation. This changes the document theme, updating master slides and default styling. |
| set_slide_background_colorB | Sets a solid background color on a slide. Provide a hex color string like '#FF0000' for red. |
| set_slide_background_imageA | Sets an image file as the background of a slide. The image file must be accessible on the local filesystem. |
| get_slide_masterA | Gets the master slide (layout) name for a given slide. |
| change_slide_masterA | Changes the master slide (layout) of a slide. The master name must match one of the available master slides in the current theme. |
| set_slide_transitionA | Sets the transition effect for a slide. Common effects: 'none', 'magic move', 'dissolve', 'push', 'reveal', 'cube', 'flip', 'wipe', 'shimmer', 'sparkle'. Use list_transition_types to see all available effects. |
| get_slide_transitionA | Gets the current transition effect, duration, and delay for a slide. |
| list_transition_typesA | Returns a list of all available Keynote slide transition effect names. These can be used with the set_slide_transition tool. |
| add_build_animationC | Adds a build-in or build-out animation to an item on a slide. Build-in animations play when the item appears; build-out animations play when it exits. |
| remove_build_animationA | Removes a build-in or build-out animation from an item on a slide. |
| list_build_animationsA | Lists all build-in and build-out animations for every item on a given slide. |
| add_tableC | Adds a table to a slide with the specified number of rows and columns |
| set_table_cellC | Sets the value of a specific cell in a table on a slide |
| set_table_dataB | Bulk-sets table data from a 2D array of strings. Each inner array is a row. |
| get_table_dataA | Reads all data from a table and returns it as a 2D array of strings |
| delete_tableB | Removes a table from a slide |
| add_chartA | Adds a chart to a slide. Note: Keynote's AppleScript support for charts is limited. This creates a chart and attempts to set the chart type. Data series configuration may require manual adjustment in Keynote due to AppleScript limitations. |
| start_slideshowA | Starts the slideshow of the frontmost Keynote presentation. Optionally start from a specific slide. |
| stop_slideshowA | Stops the currently running Keynote slideshow. |
| next_slideA | Advances to the next slide or build during an active Keynote slideshow. |
| previous_slideA | Goes back to the previous slide or build during an active Keynote slideshow. |
| go_to_slideA | Jumps to a specific slide during an active Keynote slideshow. |
| get_slideshow_statusA | Returns whether a slideshow is currently playing and the current slide number. |
| export_to_pdfB | Exports the frontmost Keynote presentation as a PDF file |
| export_to_imagesB | Exports all slides of the frontmost presentation as individual image files to a directory |
| export_to_pptxA | Exports the frontmost Keynote presentation as a Microsoft PowerPoint (.pptx) file |
| export_slide_to_imageA | Exports a single slide as an image file. Exports all slides to a temporary directory, then copies the specific slide image to the target path. |
| get_slide_contentA | Returns all content on a specific slide including title, body, text items, images, shapes, tables, and presenter notes. |
| get_full_presentation_contentA | Returns a structured summary of the entire presentation including name, slide count, theme, and per-slide summaries with titles, body text, item counts, and presenter notes. |
| add_shapeB | Adds a shape to a slide with specified type, position, size, and optional fill colour |
| delete_shapeB | Removes a shape from a slide |
| list_shapesA | Lists all shapes on a slide with position and size information |
| update_shapeB | Modifies a shape's position, size, fill colour, border colour, or border width |
| design_slideB | Designs a complete slide with automatic layout, typography, and color based on content and optional brand settings |
| design_deckB | Designs multiple slides at once with automatic layout variety and consistent branding |
| set_brandA | Sets brand configuration for subsequent design_slide and design_deck operations. Values persist until changed or cleared. |
| get_brandA | Gets current brand configuration from the active Keynote theme, merged with any previously set brand overrides |
| list_layoutsA | Lists all available slide layouts with descriptions, categories, and element details |
| list_templatesA | Lists all available presentation templates with slide counts and descriptions |
| get_templateA | Gets the full structure of a specific presentation template with slide-by-slide layout and content hints |
| design_from_templateA | Creates a full presentation from a template, using the template's layout sequence with provided content |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/superdwayne/keynoteMP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server