Blog

MCP | 8 min read | 2026-08-27 | By Variant Team

Google Slides MCP Server Setup for Codex and Claude Code

A practical Google Slides MCP server setup guide covering Google Cloud APIs, OAuth scopes, service accounts, Codex, Claude Code, and honest limits.

Author: Variant Team. Variant is built by a small team working on HTML-native presentation tools, MCP workflows, and agent-editable decks.

You want an agent to create or edit a Google Slides deck without copying content between a chat window and Slides. MCP can provide that connection, but it does not remove the Google Cloud setup underneath it.

The main choice is whether the server acts as a Google user through OAuth or as a service account. Make that choice before you configure the client. It determines which presentations the server can see and which permissions it needs.

#Quick answer

There is no official Google Slides MCP server from Google. To complete a Google Slides MCP server setup, run a community server that wraps the Google Slides API or write a thin server yourself, then give it a Google Cloud project, enable the Slides and Drive APIs, configure OAuth credentials or a service account, and map MCP tools to API calls. Use user OAuth for access to a person's existing Drive files, or share each required file with a service account.

#What you need before connecting a client

  1. Create or select a Google Cloud project.
  2. Enable the Google Slides API. This API provides presentation creation, reads, and structured edits.
  3. Enable the Google Drive API. A server often needs Drive to find files, inspect metadata, or work with files beyond a known presentation ID.
  4. Create OAuth client credentials or a service account.
  5. Choose the smallest scopes that cover the job. A server that only reads presentations should not request broad write access to Drive.
  6. Configure the MCP server with the credentials and callback details its documentation requires. Community servers differ, so use that server's exact variable names rather than guessing.

The service account choice contains the most common trap. A service account cannot automatically see a user's My Drive files. Share each presentation or containing folder with the service account, or configure domain-wide delegation in a managed Google Workspace domain. Otherwise, authentication can succeed while file lookups still fail.

User OAuth is clearer for a local assistant working on a person's existing decks. A service account fits unattended jobs and controlled shared folders. A Google Workspace administrator should review domain-wide delegation.

#Choose Google API scopes deliberately

ScopeWhat it allowsGood fit
presentationsRead and write access through the Google Slides APIAn agent that creates and edits presentations
presentations.readonlyRead-only access through the Google Slides APISearch, review, or summarization workflows
drive.fileAccess to Drive files created by or opened with the appMost workflows that need limited Drive access
drive.readonlyRead access across the user's Drive filesDiscovery across existing Drive content when broad read access is justified

Prefer drive.file over broad Drive access when the workflow permits it. A read-only review tool can use read-only access, while an editing agent needs the write-capable Slides scope. Scopes do not override file sharing.

#Wire a local server into Codex

A local Google Slides MCP server commonly runs over stdio. Its own documentation should tell you the executable, arguments, and environment variable names. The following command shows the verified Codex form with placeholders, not an install command for a particular server:

codex mcp add google-slides \
  --env GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials.json \
  -- node /absolute/path/to/google-slides-mcp-server.js

Replace the command and variable with values supported by the server you chose. Do not assume that GOOGLE_APPLICATION_CREDENTIALS is correct unless the server documents it.

Check the saved entry:

codex mcp get google-slides
codex mcp list

The Codex MCP setup guide covers the client side in more detail.

#Wire a local server into Claude Code

Claude Code also supports stdio servers. Use the server's documented variable names and command:

claude mcp add \
  -e GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials.json \
  google-slides -- node /absolute/path/to/google-slides-mcp-server.js

Then inspect the connection:

claude mcp get google-slides
claude mcp list

The guide on connecting Google Slides to Claude Code covers that client workflow.

If the MCP server is hosted and supports streamable HTTP, the client commands take a URL instead of a local process:

codex mcp add google-slides --url https://your-server.example/mcp
claude mcp add --transport http google-slides https://your-server.example/mcp

Keep Google credentials on the server and protect the hosted MCP endpoint. Never commit an OAuth secret or service-account key.

#What tools the server should expose

A useful server should wrap a small set of Google Slides API concepts with clear inputs:

Google Slides API conceptWhat the agent needs it for
presentations.createCreate an empty presentation and return its ID
presentations.getRead slides, page elements, object IDs, and presentation metadata
presentations.batchUpdateApply text, shape, image, layout, and ordering changes as a sequence of requests

The MCP tool names do not have to copy the API method names. Narrow tools can be easier for a model. A "replace text in this shape" tool can validate inputs and build the underlying presentations.batchUpdate request.

batchUpdate is awkward for model-generated edits. The agent must order request objects and refer to existing object IDs. A good server reads current state first and returns useful errors.

For more on the distinction, see Google Slides API vs MCP and the broader guide to MCP servers for presentations.

#The honest limits of Google Slides MCP

MCP makes the API callable. It does not make the Google Slides document model simple.

The model still has to reason about object IDs, element transforms, coordinates expressed in English Metric Units, and layout behavior inherited from placeholders. A small text change can require a structured request payload that identifies a page element and a text range. Moving an element requires geometry rather than a CSS rule.

Visual verification also takes extra work. presentations.get describes the document, but it does not give the model a rendered view of the finished slide. A server needs extra thumbnail or rendering calls, plus an image-capable feedback loop, if the agent is expected to catch overflow, weak contrast, or bad alignment. Without that loop, the API can report success while the slide still looks wrong.

Focused tools, current-state reads, preview support, and clear permission errors matter more than a long list of thin API wrappers. The Google Slides MCP overview discusses that editing tradeoff.

#When Google Slides MCP is the right choice

Use Google Slides MCP when Drive is already the system of record. It is the practical answer when stakeholders comment in Google Slides, approved templates live there, and existing sharing rules must remain in place.

It also fits repeatable changes, such as updating known text fields in a controlled template. If the final artifact must remain editable in Google Slides, keep it there and choose a server with good preview and error handling.

#When an HTML-native path is better

Use an HTML-native presentation workflow when the agent is the main author and the deck does not need to remain a Google Slides file. Models already understand HTML and CSS, so they can inspect source, make a targeted patch, and reason about browser layout without composing Google Slides request objects.

Variant is one concrete option. Every slide is HTML and CSS, with a visual canvas for human edits. Variant's MCP tools include deck.create, slide.get, slide.edit, slide.preview, and deck.export. Exports include single-file HTML, PDF, PPTX, and JSON.

Connect Codex to Variant with one hosted MCP command:

codex mcp add variant --url https://mcp.variant.art/mcp

The first MCP request uses an OAuth browser flow. The Variant MCP documentation lists the available tools and setup paths.

Variant is the wrong choice if Google Slides must remain the editable source of truth. It does not edit Google Slides presentations in place. In that case, use a Google Slides MCP server despite the more complex object model.

#FAQ

#Is there an official Google Slides MCP server from Google?

No. Google provides the Google Slides API and Google Drive API, but not an official Google Slides MCP server. A community server or a custom server must translate MCP tool calls into Google API requests.

#How do I set up Google Slides MCP?

Create a Google Cloud project, enable the Google Slides and Google Drive APIs, create user OAuth credentials or a service account, choose narrow scopes, and configure a compatible MCP server. Then add that server to a client such as Codex or Claude Code with its documented stdio command or hosted HTTP URL.

#Should I use OAuth or a service account for Google Slides MCP?

Use user OAuth when the server needs a person's existing Drive access and an interactive login is acceptable. Use a service account for unattended workflows or controlled shared content, but share the target files with that account or configure domain-wide delegation through a Google Workspace administrator.

#Why can my service account not find a presentation?

A service account has a separate identity and cannot see a user's Drive files by default. Share the presentation or its folder with the service account, then confirm that the requested scopes cover the operation.

#Which Google Drive scope should an MCP server request?

Prefer drive.file when the server only needs files created by or opened with the app. Use broader access such as drive.readonly only when discovery across the user's existing Drive content is required and the user understands the access request.

#Can Codex connect to a Google Slides MCP server?

Yes. Codex can run a local stdio server with codex mcp add <NAME> -- <command> [args...], or connect to a hosted streamable HTTP server with codex mcp add <NAME> --url <URL>. The exact server command and credential variables come from the Google Slides MCP server you select.

#Is Variant a Google Slides MCP server?

No. Variant is an HTML-native presentation editor with its own hosted MCP endpoint. Use Variant when an agent should create and revise HTML and CSS slides, and use Google Slides MCP when Google Slides must remain the working document.

#The short version

A Google Slides MCP server setup is mainly a Google Cloud permissions project wrapped around an MCP process. User OAuth suits personal Drive access, while service accounts need explicit file sharing or managed delegation. Google Slides MCP is right when templates, comments, and permissions already live in Google Workspace. Variant is a simpler agent-authoring path when HTML and CSS can be the working format, but it is not the right tool for editing Google Slides in place.

Next step

Connect Claude Code to Variant

Add Variant as an MCP server, then ask Claude Code to create or edit a real HTML slide deck.