google-slides-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOOGLE_TOKEN_PATH | No | Path to cached token file. Alias: TOKEN_PATH. Default: ~/.config/google-slides-mcp/token.json | |
| GOOGLE_CLIENT_SECRET | Yes | Path to the Desktop OAuth client JSON. Alias: CREDENTIALS_PATH | |
| GOOGLE_SLIDES_SCOPES | No | Comma-separated scope override. Short names or full URLs. Default: presentations,drive | |
| GOOGLE_SLIDES_NO_BROWSER_AUTH | No | Set to '1' to disable automatic browser flow on first launch (headless). |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_presentationA | Create a new, empty Google Slides presentation. (1 API call.) Args: title: The title for the new presentation. Returns:
|
| get_presentationA | Get a presentation as a bounded, structured overview. (1 API call.) By default returns a trimmed summary (slides, elements, positions, short text snippets) so large decks stay within a finite output budget. Args: presentation_id: The presentation ID. include_masters: Also summarize layouts and masters. raw: Return the full, untrimmed API response instead of the summary. |
| get_pageA | Get a single page (slide) as a bounded summary. (1 API call.) Args: presentation_id: The presentation ID. page_id: The page (slide) object ID. raw: Return the full, untrimmed API response instead of the summary. |
| list_slidesA | List slides with index, id, and layout reference only. (1 API call.) The lightest-weight read — use it to find slide IDs before deeper calls. |
| batch_updateA | Apply raw Slides This is the low-level power tool: Note: Args: presentation_id: The presentation ID. requests: A list of single-key Slides request objects. Returns:
|
| set_element_boxA | Set an element's position (and optionally size) in points. (Up to 2 calls.) A convenience over Args: presentation_id: The presentation ID. element_id: The page element to move/resize. x_pt: Left edge (top-left X) in points. y_pt: Top edge (top-left Y) in points. width_pt: Desired visual width in points (optional; preserves current if omitted). height_pt: Desired visual height in points (optional; preserves current if omitted). |
| update_transformA | Apply a raw AffineTransform to an element. (1 API call.) Args:
presentation_id: The presentation ID.
element_id: The page element ID.
transform: An AffineTransform dict (scaleX, scaleY, shearX, shearY,
translateX, translateY, unit). |
| set_z_orderC | Change the front/back stacking order of elements. (1 API call.) |
| group_elementsC | Group two or more elements into a single group. (1 API call.) |
| ungroup_elementsB | Ungroup one or more groups back into individual elements. (1 API call.) |
| replace_all_textA | Replace all occurrences of each placeholder string. (1 API call.) The primary content-fill tool for the template workflow: map showcase placeholder text to real content. All replacements run in one batch. Args:
presentation_id: The presentation ID.
mappings: |
| insert_textB | Insert text into a shape or table cell at a character index. (1 API call.) |
| set_element_textA | Replace ALL of a shape's (or table cell's) text in one call. (1 API call.) Clears the element's existing text and sets it to Args: presentation_id: The presentation ID. element_id: The shape or table-cell object ID. text: The new full text content. |
| copy_presentationA | Clone an entire deck (Drive files.copy), preserving full styling. (1 call.) The starting point of the high-fidelity template workflow: copies the showcase deck with all masters, layouts, theme and color scheme intact, so the copy can be edited exactly as if you were editing the showcase itself. Args: source_id: The presentation ID of the template/showcase to copy. title: Title for the new copy. parent_folder_id: Optional Drive folder to place the copy in. |
| catalog_slidesA | Summarize each slide (layout, element makeup, placeholders, title). (1 call.) Use after |
| duplicate_slideA | Duplicate a slide within a deck with full fidelity. (1 API call.) Copies all of the slide's elements and inherited styling. Use it to instantiate
a showcase example slide for a new section, then fill it with Args: presentation_id: The presentation ID. page_id: The slide to duplicate. insertion_index: Where to place the duplicate (optional). |
| delete_objectsA | Delete slides or page elements by ID. (1 API call.) Use to prune the original showcase example slides after duplicating the ones you want. |
| reorder_slidesA | Move a block of slides to a new position. (1 API call.) |
| park_slidesA | Hide slides (mark skipped) so they stay as a clone source. (1 API call.) Keeps the showcase example/original slides in the deck as a reusable "palette"
while hiding them from presentation mode. Duplicate from them across as many
turns as you like, then |
| unpark_slidesC | Unhide slides previously parked (mark not skipped). (1 API call.) |
| prune_parked_slidesA | Delete every parked (hidden/skipped) slide — final cleanup. (<=2 API calls.) Removes ALL slides currently marked skipped, so use it deliberately as the last step once the deck is assembled. |
| render_pageA | Render a slide to a PNG image for visual verification. (1 expensive call.) Returns the server-side rendered pixels of the slide — the same image a viewer sees — so you can confirm output looks correct. Rendering is per-page by design (the thumbnail endpoint is an expensive quota operation). Args: presentation_id: The presentation ID. page_id: The slide object ID. size: LARGE (~1600px), MEDIUM (~800px), or SMALL (~200px) wide. |
| diff_pagesA | Render two slides and report their pixel difference. (2 expensive calls.) Renders both pages, computes a normalized mismatch ratio in [0, 1] (0 = pixel identical), and returns a visual diff image highlighting changed regions. Useful to verify a duplicated/edited slide matches the showcase original. Returns a text summary followed by the diff PNG. |
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
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/JustParent/google-slides-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server