Skip to main content

Google Cloud MCP - Google Workspace MCP Server (gg-mcp)

PyPI License: MIT Python 3.12+ Docker Support

A Model Context Protocol (MCP) server that connects AI agents to Google Workspace: Gmail, Calendar, Drive, Docs, Sheets, and Slides. Built with FastMCP.

# Install and run — that's it
uvx gg-mcp

� Table of Contents

  1. Quick Start (5 minutes)
  2. Available Tools
  3. Installation Options
  4. Environment Variables
  5. Troubleshooting
  6. Documentation
  7. Development

🚀 Quick Start (5 minutes)

Step 1: Get Google OAuth Credentials

  1. Go to Google Cloud Console
  2. Create a project and enable OAuth consent screen (External type)
  3. Add required scopes (Gmail, Drive, Calendar, Docs, Sheets, Slides)
  4. Create OAuth 2.0 Desktop app credentials
  5. Copy Client ID and Client Secret

📖 Detailed guide →

Step 2: Install & Run

export GOOGLE_CLIENT_ID="your-client-id.apps.googleusercontent.com"
export GOOGLE_CLIENT_SECRET="your-client-secret"
uvx gg-mcp

You'll see:

============================================================
🔐 GOOGLE ACCOUNT AUTHENTICATION
📱 Open your browser: http://localhost:3838
============================================================

Open http://localhost:3838 → "Authorize with Google" → Grant permissions ✅

Step 3: Configure MCP Client

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "gg-mcp": {
      "command": "uvx",
      "args": ["gg-mcp"],
      "env": {
        "GOOGLE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
        "GOOGLE_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Restart Claude Desktop and the tools are ready to use! 🎉

📖 25+ client configs →


📋 Available Tools (30+)

Account

  • get_account_info - Get the email of the authenticated Google account

Gmail

  • send_email - Send an email (to, subject, body)
  • create_gmail_label - Create a new Gmail label
  • list_gmail_labels - List all user-created labels

Google Calendar

  • list_calendar_events - List upcoming events (max_results, days_back)
  • create_calendar_event - Create an event (summary, start_time, end_time)

Google Drive

  • list_drive_folders - List all folders in Google Drive (root or specific parent)
  • search_drive - Search files by query string

Google Docs

  • create_document - Create a new document with optional text
  • get_document - Get the full text content of a document
  • append_to_document - Append text to document end
  • search_documents - Search for documents in Drive
  • export_document - Export document (text, html, pdf, docx)

Google Sheets

  • create_spreadsheet - Create a new spreadsheet
  • read_spreadsheet - Read data from a range
  • update_spreadsheet - Update cells with JSON 2D array
  • append_to_spreadsheet - Append rows to spreadsheet
  • search_spreadsheets - Search for spreadsheets in Drive
  • get_spreadsheet_info - Get metadata and dimensions
  • clear_spreadsheet_range - Clear all values in a range
  • batch_update_spreadsheet - Batch update multiple ranges
  • add_sheet - Add a new sheet/tab
  • export_spreadsheet - Export (csv, xlsx, pdf, tsv)

Google Slides

  • create_presentation - Create a new presentation
  • get_presentation - Get slide metadata and content
  • add_slide - Add a new slide with layout selection
  • add_text_to_slide - Add a text box to slide
  • search_presentations - Search for presentations
  • delete_slide - Delete a slide by index
  • export_presentation - Export (pdf, pptx, txt)

🚀 Quick Start (5 minutes)

Step 1: Get Google OAuth Credentials

  1. Go to Google Cloud Console
  2. Create a project and enable OAuth consent screen (External type)
  3. Add required scopes (Gmail, Drive, Calendar, Docs, Sheets, Slides)
  4. Create OAuth 2.0 Desktop app credentials
  5. Copy Client ID and Client Secret

📖 Detailed guide →

Step 2: Install & Run

export GOOGLE_CLIENT_ID="your-client-id.apps.googleusercontent.com"
export GOOGLE_CLIENT_SECRET="your-client-secret"
uvx gg-mcp

You'll see:

============================================================
🔐 GOOGLE ACCOUNT AUTHENTICATION
📱 Open your browser: http://localhost:3838
============================================================

Open http://localhost:3838 → "Authorize with Google" → Grant permissions ✅

Step 3: Configure MCP Client

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "gg-mcp": {
      "command": "uvx",
      "args": ["gg-mcp"],
      "env": {
        "GOOGLE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
        "GOOGLE_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

📖 25+ client configs →


📦 Installation Options

Option A: PyPI (Recommended)

pip install gg-mcp
export GOOGLE_CLIENT_ID="..."
export GOOGLE_CLIENT_SECRET="..."
gg-mcp

Option B: From Source

git clone https://github.com/tannht/google-cloud-mcp.git
cd google-cloud-mcp
uv sync
export GOOGLE_CLIENT_ID="..."
export GOOGLE_CLIENT_SECRET="..."
uv run main.py

Option C: Docker

git clone https://github.com/tannht/google-cloud-mcp.git
cd google-cloud-mcp
docker-compose up -d --build

🔑 Environment Variables

Variable Required Default Purpose
GOOGLE_CLIENT_ID Yes — OAuth 2.0 Client ID
GOOGLE_CLIENT_SECRET Yes — OAuth 2.0 Client Secret
GOOGLE_TOKEN_PATH No .token.json Token file path
GOOGLE_TOKEN_JSON No — Token as JSON string
AUTH_PORT No 3838 Auth portal port

❓ Troubleshooting

Problem Solution
403: access_denied Add your email to Test users in OAuth consent screen
401: Invalid credentials Verify GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET
Token expired Delete .token.json and re-authenticate
Can't access http://localhost:3838 Port 3838 in use. Try AUTH_PORT=8080
403: API not enabled Enable APIs in Google Cloud Console

📖 Full troubleshooting →


📚 Documentation


🛠️ Development

git clone https://github.com/tannht/google-cloud-mcp.git
cd google-cloud-mcp
uv sync --group dev
uv run pytest -v  # Run tests

📖 Dev setup →


📄 License

MIT

👥 Contributors

  • Hoang Tan (Owner)
  • PubPug Assistant (Primary Developer)

Metadata

Release files for gg-mcp 2.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gg-mcp 2.1.1
File Size Uploaded Provenance
gg_mcp-2.1.1.tar.gz 123.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for gg-mcp 2.1.1
File Interpreter ABI Platform
gg_mcp-2.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 135.1 kB

Release files / gg_mcp-2.1.1.tar.gz

Download URL gg_mcp-2.1.1.tar.gz
Size 123.8 kB
Tags Source
SHA-256 checksum
How to use checksums
042cca2aa42920e0cb9e0e457ae6c8f45a1ba892e00f9ec068603b1ab167778f
BLAKE2b-256 checksum
How to use checksums
7f790ceb6803e2c6e2e582d48e90e6462ce6d9200a79d5fb3f80385e46b20b39
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / gg_mcp-2.1.1-py3-none-any.whl

Download URL gg_mcp-2.1.1-py3-none-any.whl
Size 11.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
543f543bdb7780d295d65c11e21aae52c26899cdb66c457992c54bc39862a719
BLAKE2b-256 checksum
How to use checksums
85dcd9f15eb3368ebd9f54fa421d7426d3e562ca10dabcb22b3a1a32e497b4b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Security for gg-mcp 2.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page