---
title: "Google Workspace MCP: Gmail, Drive, Calendar, Docs and Sheets"
url: "https://mcpshelf.co/servers/google-workspace"
description: "One open source server for Gmail, Drive, Calendar, Docs, Sheets, Slides, Forms, Tasks, Contacts and Chat. Tool tiers, read-only mode and OAuth setup."
updated: "2026-10-27"
site: "MCP Shelf"
---

# Google Workspace MCP

> Gmail, Drive, Calendar, Docs, Sheets and six more Google apps behind one server.

## At a glance

Taylor Wilsdon's server is the most complete community option for Google's apps. It covers Gmail, Drive, Calendar, Docs, Sheets, Slides, Forms, Tasks, Contacts, Chat, Apps Script and Programmable Search, with well over a hundred tools in total. You sign in with an OAuth client from your own Google Cloud project, so tokens and scopes stay under your control and nothing is sent anywhere except Google's APIs.

Because loading every tool would swamp the context window, it ships in three tiers: core for everyday reading and writing, extended for management jobs, and complete for everything. You can also name the services you want, switch on a read-only mode, or run it as a shared HTTP server with per-user OAuth 2.1 for a whole team.

|  |  |
| --- | --- |
| Made by | Taylor Wilsdon and contributors (taylorwilsdon/google_workspace_mcp) |
| GitHub | https://github.com/taylorwilsdon/google_workspace_mcp |
| Licence | MIT |
| PyPI package | [workspace-mcp](https://pypi.org/project/workspace-mcp/) 2.2.1 (26 Oct 2026) |
| GitHub stars | 3.4K |
| Downloads | 81.7K a week |
| Last commit | 25 Oct 2026 |
| Tools | 43 |
| Runs on | Your computer |
| Install check | Started in our test |
| Category | [Knowledge and work apps](https://mcpshelf.co/categories/knowledge-and-work) |

**Our check:** We ran this exact config on 27 Oct 2026: it started and answered with 43 tools. The server is workspace-mcp on PyPI. Its author warns that "workspace-cli" on PyPI is an abandoned package by someone else; the real CLI comes with this repository.

## Tools

We listed 43 tools on 27 Oct 2026. 23 only read; the rest can change things or run commands.

| Tool | Kind | What it is for |
| --- | --- | --- |
| `get_script_project` | reads | Reads an Apps Script project and its source files. |
| `manage_script_content` | runs | Replaces or merges the source files of an Apps Script project. |
| `run_script_function` | runs | Runs a function in a deployed Apps Script project. |
| `manage_script_project` | runs | Creates or deletes an Apps Script project. |
| `generate_trigger_code` | reads | Writes the Apps Script code you need to set up a time or event trigger, since the API cannot create one itself. |
| `list_calendars` | reads | Lists the calendars you can see. |
| `get_events` | reads | Fetches one event or the events in a time range, optionally matching a keyword. |
| `manage_event` | changes | Creates, updates or deletes an event, or answers an invitation. |
| `get_messages` | reads | Reads recent messages in a Google Chat space. |
| `send_message` | changes | Posts to a Google Chat space, or edits a message you sent. |
| `search_messages` | reads | Searches Google Chat messages by text or time. |
| `create_reaction` | changes | Adds an emoji reaction to a Chat message. |
| `list_contacts` | reads | Lists your Google contacts. |
| `get_contact` | reads | Returns the details of one contact. |
| `search_contacts` | reads | Finds contacts by name, email, phone number or other fields. |
| `manage_contact` | changes | Creates, updates or deletes a contact. |
| `get_doc_content` | reads | Reads a Google Doc, or the text of a Word file stored in Drive. |
| `create_doc` | changes | Creates a Google Doc with optional plain-text content. |
| `modify_doc_text` | changes | Inserts, replaces or formats text in a Doc. |
| `search_drive_files` | reads | Searches Drive, including shared drives, for files and folders. |
| `get_drive_file_content` | reads | Reads a Drive file as text: Docs, Sheets and Slides are exported, Office files are unpacked. |
| `get_drive_file_download_url` | reads | Downloads a Drive file, returning a local path or a temporary link. |
| `create_drive_folder` | changes | Creates a folder in Drive. |
| `create_drive_file` | changes | Creates a file in Drive from text, base64 data or a URL. |
| `import_to_google_doc` | changes | Turns a Markdown, Word, HTML or text file into a native Google Doc. |
| `import_to_google_slides` | changes | Turns a PowerPoint or ODP file into Google Slides. |
| `import_to_google_sheets` | changes | Turns an Excel, ODS or CSV file into Google Sheets. |
| `get_drive_shareable_link` | reads | Returns the sharing link of a file or folder. |
| `create_form` | changes | Creates a Google Form. |
| `get_form` | reads | Reads a form's questions and settings. |
| `search_gmail_messages` | reads | Searches Gmail with the usual search operators and returns message and thread IDs. |
| `get_gmail_message_content` | reads | Reads one email: sender, recipients, subject and body. |
| `get_gmail_messages_content_batch` | reads | Reads up to 25 emails in one call. |
| `send_gmail_message` | changes | Sends, replies to or forwards an email, with attachments if needed. |
| `search_custom` | reads | Runs a Google Programmable Search (Custom Search) query. |
| `read_sheet_values` | reads | Reads the values in a range of a spreadsheet. |
| `modify_sheet_values` | changes | Writes, updates or clears the values in a range. |
| `create_spreadsheet` | changes | Creates a spreadsheet. |
| `create_presentation` | changes | Creates a Slides presentation. |
| `get_presentation` | reads | Reads a presentation's slides, and speaker notes if asked. |
| `list_tasks` | reads | Lists the tasks in a Google Tasks list. |
| `get_task` | reads | Returns one task. |
| `manage_task` | changes | Creates, updates, deletes or moves a task. |

### How clearly it describes its tools

43 of 43 tools have a description and 43 of 43 say whether they change things. The tool list takes at least ~4,800 tokens of context. Every tool says whether it only reads or can change things, so a client can ask before the risky ones.

### Tool groups

| Group | Covers |
| --- | --- |
| `--tool-tier core` | The everyday set listed above: 43 tools across all twelve services. |
| `--tool-tier extended` | Adds management operations on top of core. |
| `--tool-tier complete` | Every tool, well over a hundred. Expect a large context cost. |
| `--tools` | Loads only the services you name, such as gmail drive calendar. |

## Set it up

### Claude Desktop

Where: claude_desktop_config.json (Settings → Developer → Edit Config)

```json
{
  "mcpServers": {
    "google-workspace": {
      "command": "uvx",
      "args": [
        "workspace-mcp",
        "--tool-tier",
        "core"
      ],
      "env": {
        "GOOGLE_OAUTH_CLIENT_ID": "YOUR_CLIENT_ID",
        "GOOGLE_OAUTH_CLIENT_SECRET": "YOUR_CLIENT_SECRET"
      }
    }
  }
}
```

### Claude Code

Where: Your terminal, in the project folder

```bash
claude mcp add-json google-workspace '{"command":"uvx","args":["workspace-mcp","--tool-tier","core"],"env":{"GOOGLE_OAUTH_CLIENT_ID":"YOUR_CLIENT_ID","GOOGLE_OAUTH_CLIENT_SECRET":"YOUR_CLIENT_SECRET"}}'
```

### Cursor

Where: ~/.cursor/mcp.json, or .cursor/mcp.json in a project

```json
{
  "mcpServers": {
    "google-workspace": {
      "command": "uvx",
      "args": [
        "workspace-mcp",
        "--tool-tier",
        "core"
      ],
      "env": {
        "GOOGLE_OAUTH_CLIENT_ID": "YOUR_CLIENT_ID",
        "GOOGLE_OAUTH_CLIENT_SECRET": "YOUR_CLIENT_SECRET"
      }
    }
  }
}
```

### VS Code

Where: .vscode/mcp.json in your project

```json
{
  "servers": {
    "google-workspace": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "workspace-mcp",
        "--tool-tier",
        "core"
      ],
      "env": {
        "GOOGLE_OAUTH_CLIENT_ID": "YOUR_CLIENT_ID",
        "GOOGLE_OAUTH_CLIENT_SECRET": "YOUR_CLIENT_SECRET"
      }
    }
  }
}
```

### Windsurf

Where: ~/.codeium/windsurf/mcp_config.json

```json
{
  "mcpServers": {
    "google-workspace": {
      "command": "uvx",
      "args": [
        "workspace-mcp",
        "--tool-tier",
        "core"
      ],
      "env": {
        "GOOGLE_OAUTH_CLIENT_ID": "YOUR_CLIENT_ID",
        "GOOGLE_OAUTH_CLIENT_SECRET": "YOUR_CLIENT_SECRET"
      }
    }
  }
}
```

### ChatGPT

Where: Not supported

ChatGPT only connects to remote servers by URL. This one runs on your computer, so use Claude, Cursor or VS Code.

Add "--read-only" to keep it from sending or changing anything, or "--tools gmail drive calendar" to load only some services. To add it to Claude as a custom connector, run it with "--transport streamable-http" and MCP_ENABLE_OAUTH21=true and connect to http://localhost:8000/mcp.

## Settings

| Setting | Kind | Required | What it does |
| --- | --- | --- | --- |
| `GOOGLE_OAUTH_CLIENT_ID` | env | yes | The OAuth client ID from your Google Cloud project. Example: `1234-abc.apps.googleusercontent.com` |
| `GOOGLE_OAUTH_CLIENT_SECRET` | env | yes | The secret for that OAuth client. GOOGLE_CLIENT_SECRET_PATH can point at a client_secret.json instead. |
| `--tool-tier` | flag | no | Which tier of tools to load: core, extended or complete. Example: `--tool-tier core` |
| `--read-only` | flag | no | Loads only the tools that read, so nothing can be sent, edited or deleted. |
| `--transport` | flag | no | Runs as an HTTP server instead of stdio. Needed for OAuth 2.1, Claude connectors and shared team use. Example: `--transport streamable-http` |
| `MCP_ENABLE_OAUTH21` | env | no | Turns on multi-user OAuth 2.1 sign-in in HTTP mode. Example: `true` |
| `WORKSPACE_MCP_PORT` | env | no | The port for HTTP mode. Example: `8000` |
| `ALLOWED_FILE_DIRS` | env | no | Folders the server may read local files from for uploads. By default only its own attachment folder; .env files and ~/.ssh and ~/.aws are always blocked. |

## What it can touch

**It can read**

- Gmail messages
- Drive files and Docs, Sheets and Slides
- Calendars, contacts, tasks, forms and Chat spaces

**It can change**

- Sends email and Chat messages
- Creates and edits Docs, Sheets, Slides, Forms and Drive files
- Creates, changes and deletes calendar events, contacts and tasks
- Runs Apps Script functions

**Safer setup:** Start it with --read-only, and load only the services you need with --tools. Emails and documents can carry hidden instructions, so be careful about which write tools you leave on.

## Before you start

- A Google Cloud project with the APIs you plan to use switched on
- An OAuth client ID and secret from that project
- uv, for uvx

## Good for

- Searching mail, drafting replies and filing messages with labels
- Finding, reading and editing Docs, Sheets and Slides
- Checking calendars and booking meetings

## If it does not work

**Google says the API has not been used in this project**
Enable the API for each service you use (Gmail, Drive, Calendar and so on) in the Google Cloud project that owns your OAuth client.

**Sign-in fails with a redirect URI error**
The redirect address must be one your OAuth client allows. The server uses http://localhost:8000/oauth2callback by default; add it in the Cloud console or set GOOGLE_OAUTH_REDIRECT_URI to match.

**The client only sees a few tools**
That is the core tier. Use --tool-tier extended or complete, or add services with --tools.

**Google Chat tools fail**
Chat needs a Google Workspace account and a Chat app set up once in the Cloud console.

**uvx workspace-cli installs something odd**
That name on PyPI belongs to an abandoned package. The project's CLI is installed from the repository with uv tool install.

## Similar servers

| Server | Tools | Runs on | Stars |
| --- | --- | --- | --- |
| [12306 MCP](https://mcpshelf.co/servers/12306) | 8 | Your computer | 2.4K |
| [Google Search Console MCP](https://mcpshelf.co/servers/search-console) | 21 | Your computer | 2K |
| [Telegram MCP](https://mcpshelf.co/servers/telegram) | 147 | Your computer | 1.9K |
| [Slack MCP Server](https://mcpshelf.co/servers/slack) | 22 | Your computer | 1.9K |

## Questions

### Does it work with a free Gmail account?

Yes. Personal Google accounts work, apart from Google Chat, which needs Workspace.

### Where does my data go?

Only to Google's APIs, with your own OAuth client. The project says it has no telemetry or licence server.

### Is it made by Google?

No. It is an independent open source project under the MIT licence.

### Can a whole team share one server?

Yes. In HTTP mode with OAuth 2.1 each person signs in with their own Google account.

Full docs on GitHub: https://github.com/taylorwilsdon/google_workspace_mcp

---

From [MCP Shelf](https://mcpshelf.co/): A short shelf of MCP servers that are worth installing. Index for agents: https://mcpshelf.co/llms.txt

