100+ integrations are ready to connect to your AI.Connect your first MCP

Google Slides MCP server for your AI

Summarize a deck, add three slides with their bullets, turn a template into a client proposal, drop in a chart from Sheets, then look at the result as images, from the AI client you already use.

PopMCPGoogle Slides

Summarize the Q3 board deck and list the comments still open on it

Supported Google Slides tools

Every tool the connection exposes: slides, text, tables, images, charts and comments through the Slides API, finding and sharing decks through Drive, plus the change triggers.

80 tools in the full catalog: 15 read and 65 write. 45 load by default, and the rest are found with tool search.

google_slides_copy_presentation

Duplicate a whole presentation, every slide, layout, theme and speaker note.

google_slides_create_from_template

Make a new deck FROM A TEMPLATE in one call: copies the template (which is never changed), then replaces every {{token}} with its text and every image token with a picture.

google_slides_export_presentation_text

The text of every slide as one plain-text document, in slide order: the fastest way to read or summarise a whole deck.

google_slides_get_export_links

Download links for a presentation as PDF, PowerPoint (.pptx), OpenDocument (.odp) and plain text, plus the link to open it.

google_slides_get_presentation_file_info

Drive-side facts about a presentation that the Slides API does not hold: who owns it, who last edited it and when, which folders it sits in, whether it is shared or trashed, and the `webViewLink` to hand to a person.

google_slides_list_drive_folders

List Drive FOLDERS, so you can file a presentation somewhere or search inside one.

google_slides_list_presentations

FIND presentations: start here whenever you have a deck's name but not its id.

google_slides_move_presentation

Move a presentation into a different Drive folder, the step to run after create_presentation, which always creates at the top level of My Drive.

google_slides_rename_presentation

Rename a presentation: body { name: 'Board update, October' }.

google_slides_share_presentation

Share a presentation.

google_slides_trash_presentation

Delete a presentation the way a person means it: move it to the trash, where it stays recoverable for 30 days.

google_slides_add_bullets

Creates bullets for paragraphs.

google_slides_add_text_box

Put a text box with text on a slide in one call: body { pageObjectId: 'SLIDE_ID', text: 'Draft, not for distribution', x: 40, y: 360, width: 640, height: 30, fontSize: 12, bold: true, color: '#C00000', alignment: 'CENTER' }.

google_slides_create_table

Creates a new table.

google_slides_delete_text

Deletes text from a shape or a table cell.

google_slides_fill_template

Fill a template deck in ONE call: replace every placeholder token across all slides with its value, and every shape containing an image token with a picture.

google_slides_format_paragraph

Updates the styling of paragraphs within a Shape or Table.

google_slides_format_text

Updates the styling of text within a Shape or Table.

google_slides_insert_text

Inserts text into a shape or table cell.

google_slides_replace_all_text

Replaces all instances of specified text.

google_slides_set_speaker_notes

Write a slide's speaker notes: body { slideObjectId: 'SLIDE_ID', notes: 'Pause here for questions.' }.

google_slides_set_text

REPLACE the text of a title, body placeholder, text box, shape or table cell in one call: body { objectId: 'BOX_ID', text: 'Q4 results' }.

google_slides_add_slide

ADD SLIDES WITH THEIR CONTENT in one call: body { layout: 'TITLE_AND_BODY', title: 'Q3 results', body: ['Revenue up 12%', 'Churn down to 2.1%'], insertionIndex: 3 }, or up to 20 at once with body { slides: [ { title, body }, ...

google_slides_create_shape

Creates a new shape.

google_slides_delete_slide_or_element

Deletes a page or page element from the presentation.

google_slides_duplicate_slide_or_element

Duplicates a slide or page element.

google_slides_format_shape

Updates the properties of a Shape.

google_slides_move_or_resize_element

Updates the transform of a page element.

google_slides_move_slides

Updates the position of a set of slides in the presentation.

google_slides_set_slide_background

Updates the properties of a Page.

google_slides_add_comment

Inserts a CommentThread into the presentation.

google_slides_batch_update_presentation

Applies one or more updates to the presentation.

google_slides_create_presentation

Creates a blank presentation using the title given in the request.

google_slides_list_comments

The comment threads on a presentation: each thread's commentId, status (OPEN or RESOLVED), the quoted text it is anchored to, the first post and every reply with author, time and postId, and which slide it sits on.

google_slides_list_layouts

The slide layouts this deck's theme offers, each with its layoutId, its name (TITLE_AND_BODY, SECTION_HEADER, ...) and display name, which master it belongs to, and the placeholders it brings (title, body, subtitle, picture).

google_slides_read_presentation

READ A DECK before you edit it: a compact outline of every slide in order, with each element's objectId, kind (title, body, text box, image, table, chart, video, line, group), position and size in points, and its text, plus each slide's speaker notes and the deck's revisionId.

google_slides_read_slide

The same compact outline as read_presentation for ONE slide: each element's objectId, kind, position, size and text, and the slide's speaker notes.

google_slides_reply_to_comment

Adds a reply to a CommentThread.

google_slides_insert_image

Creates an image.

google_slides_insert_sheets_chart

Creates an embedded Google Sheets chart.

google_slides_list_sheet_charts

The charts in a Google Sheets spreadsheet, with the numeric chartId that insert_sheets_chart needs: { spreadsheetId: ID_OR_LINK }.

google_slides_replace_image

Replaces an existing image with a new image.

google_slides_replace_shapes_with_image

Replaces all shapes matching some criteria with an image.

google_slides_get_slide_thumbnail

Generates a thumbnail of the latest version of the specified page in the presentation and returns a URL to the thumbnail image.

google_slides_get_slide_thumbnails

SEE several slides in one call: each is rendered and attached as an image, in order.

google_slides_list_presentation_permissions

See who a presentation is shared with, and how.

google_slides_remove_presentation_permission

Revoke one person's or one link's access to a presentation, using the permissionId from list_presentation_permissions.

google_slides_untrash_presentation

Restore a trashed presentation to where it was.

google_slides_update_presentation_permission

Change an existing share's role, e.g. demote an editor to a viewer with body { role: 'reader' }.

google_slides_delete_table_column

Deletes a column from a table.

google_slides_delete_table_row

Deletes a row from a table.

google_slides_format_table_borders

Updates the properties of the table borders in a Table.

google_slides_format_table_cells

Updates the properties of a TableCell.

google_slides_insert_table_columns

Inserts columns into a table.

google_slides_insert_table_rows

Inserts rows into a table.

google_slides_merge_table_cells

Merges cells in a Table.

google_slides_remove_bullets

Deletes bullets from paragraphs.

google_slides_set_table_column_width

Updates the properties of a Table column.

google_slides_set_table_row_height

Updates the properties of a Table row.

google_slides_unmerge_table_cells

Unmerges cells in a Table.

google_slides_create_slide

Creates a new slide.

google_slides_group_elements

Groups objects, such as page elements.

google_slides_set_alt_text

Updates the alt text title and/or description of a page element.

google_slides_set_z_order

Updates the Z-order of page elements.

google_slides_ungroup_elements

Ungroups objects, such as groups.

google_slides_update_slide_properties

Updates the properties of a Slide Updates the properties of a Slide.

google_slides_delete_comment

Deletes a CommentThread.

google_slides_delete_comment_reply

Deletes a reply Post from a CommentThread.

google_slides_edit_comment

Updates an existing post (head post or reply) of a CommentThread.

google_slides_get_presentation

Gets the latest version of the specified presentation.

google_slides_create_line

Creates a line.

google_slides_format_image

Updates the properties of an Image.

google_slides_format_line

Updates the properties of a Line.

google_slides_refresh_sheets_chart

Refreshes a Google Sheets chart.

google_slides_replace_shapes_with_sheets_chart

Replaces all shapes matching some criteria with a Google Sheets chart.

google_slides_reroute_line

Reroutes a line such that it's connected at the two closest connection sites on the connected page elements.

google_slides_update_line_category

Updates the category of a line.

google_slides_get_slide

Gets the latest version of the specified page in the presentation.

google_slides_insert_video

Creates a video.

google_slides_update_video_properties

Updates the properties of a Video.

Connect Google Slides to Claude, ChatGPT and Claude Code

Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the Google Slides side.

Connect with your own Google Cloud OAuth client: enable the Slides and Drive APIs, paste the OAuth Client ID and OAuth Client Secret, and authorize once. There is no deck picker; it reaches every deck that Google account can open.

OAuth Client ID1234567890-abc.apps.googleusercontent.com
OAuth Client Secret••••••••••••3f7a
Authorize PopMCP on Google SlidesAuthorize

Then just ask for the work

  • “Summarize the Q3 board deck and list the comments still open on it”

    • list_presentations
    • export_presentation_text
    • list_comments
  • “Add three slides after slide 4 covering pricing, timeline and next steps”

    • list_presentations
    • read_presentation
    • add_slide
  • “Make an Acme proposal from our sales template and share it with sam@acme.com”

    • create_from_template
    • share_presentation
  • “Put the revenue chart from the Finance spreadsheet on slide 6 and show me how it looks”

    • list_sheet_charts
    • insert_sheets_chart
    • get_slide_thumbnail

Use Google Slides from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Google Slides MCP server questions

What teams ask before putting Google Slides behind an AI client.

Which presentations can the agent reach?

There is no deck to pick during setup. The connection reaches exactly the presentations the Google account you authorized with can open, so scope is decided by which account you use. To hand over less, authorize with an account that only has access to the decks you want an agent touching. Drive actions such as share, move and trash check the file first and refuse anything that is not a presentation, so a Docs or Sheets link is turned away.

Why does it need the Google Drive API as well as Slides?

The Slides API only works on a deck whose id you already have, and it cannot list, search, copy, rename, share or trash one. Drive is what finds a deck by name with list_presentations, copies a template, files a new deck with move_presentation and shares it. Enable the Google Sheets API too if you want list_sheet_charts and insert_sheets_chart to place spreadsheet charts on slides; everything else works without it.

Can the AI fill in a template deck?

Yes. create_from_template copies your template, which is never changed, then replaces every {{token}} with its text and every image token with a picture, in one call. fill_template does the same to a deck that already exists, and replace_all_text swaps a word or phrase across every slide. add_slide adds slides with their title and bullets already in place, up to 20 in one call.

Can the AI see the slides it made?

Yes. get_slide_thumbnail renders one slide and get_slide_thumbnails renders up to 8, and both attach the images to the tool result so your client can look at them. read_presentation gives an outline of every slide with each element's objectId, kind, position and size in points, its text and the speaker notes, which is what the editing tools need before they move, resize or rewrite anything.

Why did my connection stop working after seven days?

That is Google's behavior for an OAuth app still in testing. If your Google Cloud project's Audience is set to External, publish the app before you connect, otherwise Google expires the connection after 7 days and calls start failing. Publishing needs no review from Google. It only adds a one-time "Google hasn't verified this app" screen, where you click Advanced and continue, and then the connection keeps working.

Which Google Slides events can PopMCP watch?

12, all by change detection. Across the account: a presentation created, edited or removed. On a deck you watch: a slide added, removed or reordered, slide text changed, speaker notes changed, a comment added, replied to, resolved or reopened, and sharing changed, including link sharing. They suit jobs like posting to a channel when a client comments on a pitch deck.

Do I have to run or host the Google Slides MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

How do I connect Google Slides to Claude Code?

Connect Google Slides in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Google Slides on the consent screen. The Google Slides tools are then available in that session, and no Google Slides credential is stored on your machine.

Why do only 45 of the 80 tools load by default?

Loading 80 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 45-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.

What is the difference between a tool and a trigger?

A tool is something your AI calls, and there are 80 here. A trigger is something PopMCP watches for you: 12 Google Slides events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Google Slides.

Connect Google Slides to your AI in minutes

Launch a hosted MCP endpoint for Google Slides, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP