Google Slides MCP Server

by matteoantoci

MCP server for Google Slides integration. Requires Google API credentials (Client ID, Client Secret) and a Google Refresh Token configured via environment variables.

ProductivitystdioCommunity

Repository-wide counts · Cached 2026-08-15

Overview

The Google Slides MCP Server MCP server is a publicly available project. Review the upstream repository for installation instructions, supported tools, compatibility, permissions, and current maintenance status.

Configuration

Configuration, transport, authentication, and runtime requirements vary by project. Open the repository before connecting and use the smallest set of credentials and permissions required.

Open the Google Slides MCP Server repository to read the latest documentation.

KEEP EXPLORING

Compare source, connection, and authentication details before choosing an implementation.

View the complete category

AIHawk

feder-cr

Community

AIHawk is an LLM-based tool that writes application documents and drives a browser AI client. Requires Python 3.12 and Chrome. It uses local YAML config files in data_folder/ (created from data_folder_example/) for user resume, work preferences, and OpenAI API key.

Obsidian 的 MCP 服务器

MarkusPfundstein

Community

用于与 Obsidian 通过本地 REST API 社区插件交互的 MCP 服务器。需要预先安装并运行 Obsidian REST API 社区插件。通过环境变量或服务器配置,使用 Obsidian API 密钥、主机和端口来配置服务器。

Office-Word-MCP-Server

GongRzhe

Community

用于创建、读取和操作 Microsoft Word 文档的 MCP 服务器。该服务器通过标准化接口支持 AI 助手与 Word 文档进行交互,提供丰富的文档编辑功能。

Office-PowerPoint-MCP-Server

GongRzhe

Community

用于 PowerPoint 操作的 MCP 服务器,基于 python-pptx。提供通过 MCP 协议创建、编辑和操作 PowerPoint 演示文稿的工具。

FROM THE SOURCE

Repository README

Build-time snapshot · Retrieved 2026-10-05

View original

Google Slides MCP Server

This process is an MCP server for the Google Slides API. A host talks to it on stdio. The first start opens a browser. You paste a Desktop client id and client secret. Google consent follows. Later starts read the token store.

Prerequisites

  • Node.js 20 or later
  • A Google Cloud project with the Google Slides API enabled
  • An OAuth Desktop client id and client secret

You do not need a refresh token. You do not need process env.

Claude Code

  1. Create a Desktop OAuth client. Use the Google Auth platform steps below.
  2. In Claude Code run:
/plugin marketplace add matteoantoci/claude-plugins
/plugin install google-slides-mcp@matteoantoci-plugins
  1. Run /reload-plugins if Claude asks.
  2. The first start opens a browser. Paste the client id and the client secret. Finish Google consent.

Later sessions read the token store. No host JSON. No env.

Other hosts

  1. Clone this repository.
  2. Run npm install.
  3. Run npm run build.
  4. Create a Desktop OAuth client in Google Cloud Console:
    • Open Google Auth platform.
    • If the page says the platform is not configured, click Get Started.
    • App name: Google Slides MCP. User support email: your address.
    • Audience: External.
    • Contact email: your address. Agree to the policy. Click Create.
    • Open Audience. Add your Gmail as a test user.
    • Open Data Access. Add https://www.googleapis.com/auth/presentations and https://www.googleapis.com/auth/drive.readonly. Save.
    • Open Clients. Click Create Client. Application type: Desktop app. Name: Google Slides MCP Desktop. Click Create.
    • Copy the client id and the client secret.
  5. Run npm run start. Paste the client id and the client secret. Finish Google consent. Then stop the process.
  6. Point the host at node /path/to/google-slides-mcp/build/index.js. Do not set env.

Example host config:

"google-slides-mcp": {
  "transportType": "stdio",
  "command": "node",
  "args": [
    "/path/to/google-slides-mcp/build/index.js"
  ]
}

Replace the path with the compiled build/index.js on your machine.

First start

The process opens a loopback page.

  • If the store has no client id or client secret, paste those two values.
  • Continue to Google consent.
  • Close the success page.

The process writes the Google credential to the token store. It tries the OS keychain first. It uses ~/.config/google-slides-mcp/credential.json if the keychain is not available. File mode is 0600.

Later starts use the store. No browser.

GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, and GOOGLE_REFRESH_TOKEN can override one field. They are never required. If env supplies a missing field, the process writes the merged credential to the store.

Run without a host

npm run start

The process listens on stdio. Stderr prints Google Slides MCP server running and connected via stdio.

Available Tools

  • create_presentation: Creates a new Google Slides presentation.

    • Input:
      • title (string, required): The title for the new presentation.
    • Output: JSON object representing the created presentation details.
  • get_presentation: Retrieves details about an existing presentation.

    • Input:
      • presentationId (string, required): The ID of the presentation to retrieve.
      • fields (string, optional): A field mask (e.g., "slides,pageSize") to limit the returned data.
    • Output: JSON object representing the presentation details.
  • batch_update_presentation: Applies a series of updates to a presentation. This is the primary method for modifying slides (adding text, shapes, images, creating slides, etc.).

    • Input:
      • presentationId (string, required): The ID of the presentation to update.
      • requests (array, required): An array of request objects defining the updates. Refer to the Google Slides API batchUpdate documentation for the structure of individual requests.
      • writeControl (object, optional): Controls write request execution (e.g., using revision IDs).
    • Output: JSON object representing the result of the batch update.
  • get_page: Retrieves details about a specific page (slide) within a presentation.

    • Input:
      • presentationId (string, required): The ID of the presentation to retrieve.
      • pageObjectId (string, required): The object ID of the page (slide) to retrieve.
    • Output: JSON object representing the page details.
  • summarize_presentation: Extracts and formats all text content from a presentation for easier summarization.

    • Input:
      • presentationId (string, required): The ID of the presentation to summarize.
      • include_notes (boolean, optional): Whether to include speaker notes in the summary. Defaults to false.
    • Output: JSON object containing:
      • title: The presentation's title
      • slideCount: Total number of slides
      • lastModified: Revision information
      • slides: Array of slide objects containing:
        • slideNumber: Position in presentation
        • slideId: Object ID of the slide
        • content: All text extracted from the slide
        • notes: Speaker notes (if requested and available)