Keynote MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| 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