Skip to main content

Google Slides MCP Server for managing presentations via the Model Context Protocol

Project description

Google Slides MCP Server

An MCP server for managing Google Slides presentations, integrating seamlessly with AI assistants using the Model Context Protocol.

Features

  • List Presentations: Search and list presentations via Drive API.
  • Get Presentation: Retrieve full presentation structure (slides, shapes, text).
  • Create Presentation: Create new presentations.
  • Batch Update: Modify presentations (add slides, edit content).
  • Page Details: Get specific slide content.
  • Thumbnails: Generate thumbnail URLs for slides.

Scope

This server focuses on Google Slides presentation management through MCP tools:

  • Read/list presentations from Google Drive.
  • Read full presentation/slide details.
  • Create new presentations.
  • Perform Slides API batchUpdate operations.
  • Generate slide thumbnails.

It does not implement custom business workflows on top of Slides; callers provide valid Google Slides API request payloads (especially for batch_update_presentation).

Installation

Prerequisites

  • Python 3.9 or higher.
  • A Google Cloud Project with the Slides and Drive APIs enabled.
  • OAuth2 credentials (Client ID and Client Secret).
  • OAuth2 tokens with required scopes.

Required OAuth Scopes

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/presentations

You can optionally pass scopes through --scopes as a JSON array string.

Local Setup

  1. Install dependencies:

    pip install -e .
    
  2. Run the server:

    python main.py --access-token <TOKEN> --refresh-token <REFRESH_TOKEN> --client-id <CLIENT_ID> --client-secret <CLIENT_SECRET>
    

Configuration

Add the following to your MCP host configuration (e.g., mcp-config.json):

{
  "mcpServers": {
    "barie-google-slides-mcp": {
      "command": "uvx",
      "args": [
        "barie-google-slides-mcp",
        "--access-token",
        "YOUR_ACCESS_TOKEN",
        "--refresh-token",
        "YOUR_REFRESH_TOKEN",
        "--client-id",
        "YOUR_CLIENT_ID",
        "--client-secret",
        "YOUR_CLIENT_SECRET"
      ]
    }
  }
}

Optional:

  • --expiry: token expiry timestamp in ISO format (for example 2026-05-07T00:00:00Z).
  • --scopes: JSON array string of scopes. If omitted, server defaults are used.

Tools

  • list_presentations: Search and list presentations.
  • get_presentation: Get presentation content.
  • create_presentation: Create a new presentation.
  • batch_update_presentation: Update presentation structure/content.
  • get_page: Get specific slide content.
  • get_page_thumbnail: Get thumbnail URL for a slide.

Notes

  • list_presentations.pageSize supports values from 1 to 100.
  • batch_update_presentation.requests must follow Google Slides API presentations.batchUpdate request objects.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

barie_google_slides_mcp-0.1.1.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

barie_google_slides_mcp-0.1.1-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file barie_google_slides_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: barie_google_slides_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for barie_google_slides_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 fdd6fce089a88524a8a1e1c4df9e805f5dc49129e079071a580334faf03a76fa
MD5 1ed1b4588030eda718e24bd2038c889c
BLAKE2b-256 c3e844070350a3b01ec092199f364ffd327fd8fdd1ca29719e8aaa4ff4b7fc71

See more details on using hashes here.

File details

Details for the file barie_google_slides_mcp-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for barie_google_slides_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3d98677a665b03ce5279aa34003f1207cec642aff6cb4b293939243f8aabccb2
MD5 b540db7432592f7aa6fc570008327773
BLAKE2b-256 887e80e918c3d28b7d1ecb863a5319030230af829473f04deb207077b87525cb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page