AgentStack
MCP verified MIT Self-run

Google Mcp

mcp-cafercangundogdu-google-mcp · by cafercangundogdu

Comprehensive Google MCP server in Rust — 41 tools for Google Drive (Gmail & more planned). Stdio + Streamable HTTP with multi-user OAuth.

No reviews yet
0 installs
10 views
0.0% view→install

Install

$ agentstack add mcp-cafercangundogdu-google-mcp

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Google Mcp? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

google-mcp

[](https://crates.io/crates/gdrive-mcp-server) [](LICENSE)

A comprehensive Google MCP (Model Context Protocol) server written in Rust. Currently provides 41 tools, resource templates, and prompts for full Google Drive access, with Gmail and other Google services planned.

Supports both stdio and Streamable HTTP transports with multi-user OAuth.

Quick Start

cargo install gdrive-mcp-server
gdrive-mcp-server --credentials-file client_secret.json

Features

Tools (41 total)

| Domain | Count | Tools | |--------|-------|-------| | Files | 12 | list, get, create, update, delete, copy, move, trash, untrash, emptytrash, export, download | | Permissions | 5 | create, list, get, update, delete | | Comments | 5 | create, list, get, update, delete | | Replies | 5 | create, list, get, update, delete | | Revisions | 4 | list, get, update, delete | | Shared Drives | 5 | create, list, get, update, delete | | Changes | 2 | getstartpagetoken, list | | About | 1 | get | | Labels | 2 | list, modify |

Resources

  • gdrive:///{file_id} -- Read file content with auto-conversion (Docs → Markdown, Sheets → CSV, Slides → text, Drawings → PNG)
  • gdrive:///folder/{folder_id} -- List folder contents

Prompts

  • gdrive_search_help -- Help building Google Drive search queries
  • gdrive_organize_files -- File/folder organization guidance
  • gdrive_sharing_guide -- Sharing and permissions guidance

Prerequisites

  • Rust 1.80+ (stable toolchain)
  • Google Cloud Project with the Drive API enabled
  • OAuth2 credentials (client_secret.json)

Setup

1. Google Cloud Console

  1. Go to Google Cloud Console
  2. Create a new project (or select an existing one)
  3. Enable the Google Drive API (APIs & Services → Library → search "Google Drive API")
  4. Go to APIs & Services → Credentials → Create Credentials → OAuth client ID
  5. Select Desktop app as application type
  6. Download the JSON file and save it as client_secret.json in the project root

> Note: For HTTP transport (multi-user), you may use Web application type instead, but Desktop app works for both modes.

2. Build

git clone https://github.com/cafercangundogdu/google-mcp.git
cd google-mcp
cargo build --release

The binary will be at target/release/gdrive-mcp-server.

Usage

Stdio Transport (default)

Single-user mode for Claude Desktop, MCP Inspector, or any stdio-based MCP client. On first run, a browser window opens for Google OAuth2 authorization. The token is cached for subsequent runs.

gdrive-mcp-server --credentials-file client_secret.json

HTTP Transport (multi-user)

Multi-user mode with full MCP OAuth 2.1 support. Each user authenticates with their own Google account via the MCP OAuth flow (RFC 9728). The server acts as an OAuth proxy to Google.

gdrive-mcp-server --transport http --http-addr 0.0.0.0:3000 --credentials-file client_secret.json

The MCP endpoint will be available at http://localhost:3000/mcp.

OAuth flow:

  1. MCP client discovers OAuth metadata via /.well-known/oauth-protected-resource
  2. Client registers dynamically via /oauth/register (RFC 7591)
  3. Authorization redirects to Google OAuth consent screen
  4. User authenticates with their Google account
  5. Server issues per-user MCP tokens bound to Google tokens
  6. Each user gets isolated Google Drive access

Environment Variables

All CLI options can be set via environment variables:

| Variable | Default | Description | |----------|---------|-------------| | GDRIVE_MCP_TRANSPORT | stdio | Transport mode: stdio or http | | GDRIVE_MCP_HTTP_ADDR | 127.0.0.1:3000 | HTTP bind address | | GDRIVE_MCP_CREDENTIALS | -- | Path to OAuth2 credentials JSON | | GDRIVE_MCP_TOKEN_CACHE | ~/.gdrive-mcp-token.json | Token cache path (stdio mode) | | GDRIVE_MCP_LOG_LEVEL | info | Log level: error, warn, info, debug, trace |

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "gdrive": {
      "command": "/path/to/gdrive-mcp-server",
      "args": ["--credentials-file", "/path/to/client_secret.json"]
    }
  }
}

MCP Inspector

# Stdio
npx @modelcontextprotocol/inspector ./target/release/gdrive-mcp-server -- --credentials-file client_secret.json

# HTTP
npx @modelcontextprotocol/inspector http://localhost:3000/mcp

Service Account

For server-to-server usage without user interaction, use a service account key:

gdrive-mcp-server --credentials-file service-account-key.json

The server auto-detects the credential type from the JSON file.

Architecture

crates/
  gdrive-mcp-server/        # Binary crate (thin main.rs)
  gdrive-mcp-core/          # Library crate (all logic)
    src/
      auth.rs                # OAuth2 setup, token persistence, service account
      client.rs              # DriveClient wrapper
      config.rs              # CLI args + env vars (clap)
      convert.rs             # Google Doc format conversions
      error.rs               # Error types (thiserror)
      oauth.rs               # MCP OAuth 2.1 proxy to Google (HTTP mode)
      server.rs              # GDriveServer, ServerHandler impl
      transport.rs           # stdio / Streamable HTTP switching
      tools/                 # 41 MCP tools across 9 domain modules
      resources/             # Resource templates (file, folder)
      prompts/               # Prompts (search, organize, sharing)

Tech Stack

| Component | Choice | |-----------|--------| | MCP SDK | rmcp v0.16 | | Google Drive API | google-drive3 v7.0 | | OAuth2 | yup-oauth2 v12 | | Async Runtime | tokio | | HTTP Framework | axum v0.8 | | CLI | clap v4 |

Contributing

Contributions are welcome! Please feel free to open issues or submit pull requests.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/my-feature)
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

License

This project is licensed under the [MIT License](LICENSE).


Roadmap: Gmail tools, Google Calendar, and more Google services are planned. Contributions welcome!

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.