SkillAgentSearch skills...

google_mcp

Minimal, secure Google Workspace MCP server — 43 tools across 10 services (Gmail, Calendar, Drive, Docs, Sheets, Slides, Forms, Tasks, Chat, Meet). Only official Google libraries, zero third-party wrappers, fully auditable. Works with Claude Code, Kiro, Cursor, Windsurf, Codex.

Install / Use

claude mcp add rishapgandhi -- npx -y github:rishapgandhi/google_mcp

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

78/100

Supported Platforms

Claude Code
Claude Desktop
Cursor
Windsurf
OpenAI Codex

Google Workspace MCP Server

License: MIT Python 3.10+ MCP

Minimal, secure, self-hosted MCP server for Google Workspace. Zero third-party wrappers — only official Google libraries. ~500 lines of fully auditable code.

Works with Claude Code, Kiro, Cursor, Windsurf, Codex, GitHub Copilot, and any MCP-compatible AI coding agent.

Why This Exists

Most Google Workspace MCP servers use third-party wrappers with thousands of lines of code and dozens of dependencies you can't audit. This server:

  • ~300 lines total — you can read every line in 10 minutes
  • Only official Google librariesgoogle-api-python-client, google-auth-oauthlib
  • Zero external network calls — data flows only to googleapis.com
  • Credentials stored locally with chmod 600 permissions
  • No telemetry, no analytics, no SaaS dependency

Services & Tools (43 tools)

| Service | Tools | Description | |---------|-------|-------------| | Gmail | gmail_search, gmail_read, gmail_send, gmail_reply, gmail_list_labels, gmail_modify_labels, gmail_delete | Full email management | | Calendar | calendar_list_events, calendar_create_event, calendar_update_event, calendar_delete_event, calendar_get_event | Events with invite emails | | Drive | drive_search, drive_read_file, drive_create_file, drive_delete_file, drive_list_folder, drive_share_file | Files, folders, sharing | | Docs | docs_create, docs_read, docs_append | Create and edit documents | | Sheets | sheets_read, sheets_write, sheets_create | Read, write spreadsheets | | Slides | slides_create, slides_read | Create and read presentations | | Forms | forms_create, forms_get, forms_add_question, forms_get_responses | Create forms, add questions, read responses | | Tasks | tasks_list_tasklists, tasks_list, tasks_create, tasks_update, tasks_delete | Manage task lists and tasks | | Chat | chat_list_spaces, chat_send_message, chat_list_messages, chat_create_space | Spaces, messages | | Meet | meet_create_space, meet_get_space, meet_end_conference, meet_list_conferences | Meeting links, conferences |

Quick Start

1. Google Cloud Console Setup (Free)

  1. Go to console.cloud.google.com
  2. Create a new project
  3. Go to APIs & Services → Credentials → Create OAuth Client ID
    • Application type: Desktop Application
    • Note your Client ID and Client Secret
  4. Go to APIs & Services → Library and enable:
    • Gmail API
    • Google Calendar API
    • Google Drive API
    • Google Docs API
    • Google Sheets API
    • Google Slides API
    • Google Forms API
    • Google Tasks API
    • Google Chat API
    • Google Meet REST API

2. Install

git clone https://github.com/rishapgandhi/google_mcp.git
cd google_mcp
cp .env.example .env
# Edit .env with your Client ID and Secret

pip install -e .

3. First-time Authentication

python3 -m src.server
# Opens browser for Google OAuth consent
# Token saved to .credentials/token.json (chmod 600)

4. Connect to Your AI Agent

Kiro CLI

{
  "mcpServers": {
    "google_workspace": {
      "command": "python3",
      "args": ["-m", "src.server"],
      "cwd": "/path/to/google_mcp",
      "env": {
        "GOOGLE_OAUTH_CLIENT_ID": "your-client-id",
        "GOOGLE_OAUTH_CLIENT_SECRET": "your-secret"
      }
    }
  }
}

Claude Code

claude mcp add google_workspace -- python3 -m src.server --cwd /path/to/google_mcp

Cursor / Windsurf

Add to .cursor/mcp.json or .windsurf/mcp.json:

{
  "mcpServers": {
    "google_workspace": {
      "command": "python3",
      "args": ["-m", "src.server"],
      "cwd": "/path/to/google_mcp",
      "env": {
        "GOOGLE_OAUTH_CLIENT_ID": "your-client-id",
        "GOOGLE_OAUTH_CLIENT_SECRET": "your-secret"
      }
    }
  }
}

Security

| Aspect | Implementation | |--------|---------------| | Dependencies | Only 4 official packages, all pinned | | Network | Only connects to googleapis.com | | Credentials | OAuth tokens stored with chmod 600 | | Code | ~300 lines, fully auditable | | Telemetry | None — zero external reporting | | Data flow | Your machine → Google APIs (nothing else) |

Dependencies

| Package | Publisher | Purpose | |---------|-----------|---------| | mcp | Anthropic | MCP protocol SDK | | google-api-python-client | Google | Official API client | | google-auth-oauthlib | Google | OAuth2 authentication | | python-dotenv | — | .env file loading |

Project Structure

google_mcp/
├── pyproject.toml
├── .env.example
├── .gitignore
├── LICENSE
├── README.md
└── src/
    ├── server.py          # MCP server (stdio transport)
    ├── auth/
    │   └── oauth.py       # OAuth2 — only talks to accounts.google.com
    └── tools/
        ├── gmail.py       # Search, read, send
        ├── calendar.py    # List events, create event
        ├── drive.py       # Search, read, create files
        ├── docs.py        # Create, read, append
        ├── sheets.py      # Read, write, create
        ├── slides.py      # Create, read
        ├── forms.py       # Create forms, add questions, get responses
        ├── tasks.py       # Task lists, create/update/delete tasks
        ├── chat.py        # Spaces, send/list messages
        └── meet.py        # Create meetings, list conferences

Contributing

PRs welcome. Keep it minimal — the goal is a small, auditable codebase.

License

MIT — use commercially, fork, modify, redistribute freely.

Related Skills

View on GitHub
GitHub Stars3
CategoryDevelopment
Updated1mo ago
Forks0

Languages

Python

Security Score

92/100

Audited on Jun 30, 2026

1 low