Google Slides MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOOGLE_CLIENT_ID | No | Your Google OAuth client ID. | |
| GOOGLE_ACCESS_TOKEN | No | A short-lived OAuth access token (e.g. from gcloud auth print-access-token). Expires in ~1 hour. | |
| GOOGLE_CLIENT_SECRET | No | Your Google OAuth client secret. | |
| GOOGLE_REFRESH_TOKEN | No | Your Google OAuth refresh token. | |
| GOOGLE_IMPERSONATE_USER | No | Domain-wide delegation: act as a Workspace user (requires GOOGLE_SERVICE_ACCOUNT_JSON). | |
| GOOGLE_SERVICE_ACCOUNT_JSON | No | Service account key file path or inline JSON. | |
| GOOGLE_APPLICATION_CREDENTIALS | No | Path to Application Default Credentials JSON file. |
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
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_presentationA | Create a new, empty Google Slides presentation and return its ID and URL. |
| create_deck_from_outlineA | Create a complete, themed Google Slides deck from a structured outline in one call. The first slide defaults to a title slide; the rest default to title + bullets. Use this for most new decks, then refine with other tools. |
| get_presentationA | Get a compact summary of a presentation: title, size, slides, their object IDs, element IDs, text, and speaker notes. Set raw=true for the full Google API response. |
| list_slidesA | List every slide in a deck with its index, object ID, title and layout ID. |
| get_slideA | Get one slide with element IDs, types, text, positions, sizes and speaker notes. Use this before editing elements. |
| add_slideB | Add a slide using a Google Slides layout. Optionally fill the title, body or bullet list, apply a theme, and add speaker notes. |
| delete_slideC | Delete a slide (page) from a presentation. |
| duplicate_slideC | Duplicate a slide, optionally moving the copy to an index. |
| move_slideC | Move a slide to a new zero-based index. |
| reorder_slidesA | Set the complete slide order. Pass every slide object ID exactly once, in the desired order. |
| add_text_boxB | Add a styled text box to a slide. Coordinates are in inches. Set bulleted=true to render the lines as a bullet list. |
| add_bulletsA | Add a bullet list text box to a slide. Convenience wrapper around add_text_box. |
| update_textA | Replace all text inside a shape or text box. Get the object ID from get_slide. |
| replace_all_textA | Find and replace text across the whole deck, like Find & Replace in Slides. |
| format_textA | Style a character range inside a shape or text box. Indices are zero-based UTF-16 offsets. Use get_slide to find text first. |
| add_imageA | Insert an image from a publicly accessible URL into a slide at a given position and size (inches). |
| add_shapeA | Add a shape (RECTANGLE, ROUND_RECTANGLE, ELLIPSE, TRIANGLE, DIAMOND, STAR_5, ARROW_RIGHT, etc.) with optional fill, outline and text. |
| add_tableB | Add a table to a slide, optionally filled with a 2D array of cell strings (row-major). |
| set_slide_backgroundB | Set a slide's background to a solid color. |
| set_speaker_notesB | Replace a slide's speaker notes. |
| delete_elementA | Delete a shape, image, table or other page element. Use delete_slide to remove whole slides. |
| export_deckB | Export the presentation to PDF or PPTX with Google Drive and write it to the local filesystem. |
| batch_updateA | Escape hatch: send raw Google Slides API batchUpdate requests. Use for advanced edits not covered by the other tools. See the Slides API request reference. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| build_deck | Plan and generate a polished Google Slides deck on a topic. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 23 tools
Almost every tool pairs a distinct resource with a distinct action, and descriptions disambiguate well (e.g. delete_element explicitly points to delete_slide for whole slides). A few overlaps remain: move_slide vs reorder_slides both change ordering, add_bullets is a wrapper around add_text_box, and get_presentation/list_slides/get_slide cover similar read territory at different granularities.
All 23 tools use consistent snake_case verb_noun form (get_slide, add_table, set_speaker_notes, delete_element, export_deck). Even the compound names like create_deck_from_outline and replace_all_text follow the same predictable convention.
23 tools is at the heavy end, but a Slides editor is a genuinely broad domain and most tools map to a real capability. There is some redundancy (add_bullets as a thin wrapper, move_slide alongside reorder_slides, plus a batch_update escape hatch) that could be trimmed.
The surface covers the full lifecycle: create/read/update/delete slides and elements, ordering, text and character-range formatting, find-and-replace, images, shapes, tables, backgrounds, speaker notes, and PDF/PPTX export. batch_update closes any remaining gaps for advanced API operations.