Skip to content
MCP Shelf

Google Workspace MCP

View on GitHub

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

  • Started in our test
  • ★ 3.4K GitHub stars
  • 81.7K downloads a week
  • Last commit 25 Oct 2026

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)
Licence
MIT
Latest version
2.2.1 (26 Oct 2026)
PyPI package
workspace-mcp
GitHub stars
3.4K
Downloads
81.7K a week
Last commit
25 Oct 2026
Tools
43
Runs on
Your computer

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.

What's in the pod: its tools

We found 43 tools when we started it on 27 Oct 2026. 23 only read. The rest can change things, so keep your app's "ask before each tool call" setting on for them.

Runs commands3 tools · Can start programs or run code.

ToolWhat it is for
manage_script_contentReplaces or merges the source files of an Apps Script project.
manage_script_projectCreates or deletes an Apps Script project.
run_script_functionRuns a function in a deployed Apps Script project.

Changes things17 tools · Can create, edit, send or delete.

ToolWhat it is for
create_docCreates a Google Doc with optional plain-text content.
create_drive_fileCreates a file in Drive from text, base64 data or a URL.
create_drive_folderCreates a folder in Drive.
create_formCreates a Google Form.
create_presentationCreates a Slides presentation.
create_reactionAdds an emoji reaction to a Chat message.
create_spreadsheetCreates a spreadsheet.
import_to_google_docTurns a Markdown, Word, HTML or text file into a native Google Doc.
import_to_google_sheetsTurns an Excel, ODS or CSV file into Google Sheets.
import_to_google_slidesTurns a PowerPoint or ODP file into Google Slides.
manage_contactCreates, updates or deletes a contact.
manage_eventCreates, updates or deletes an event, or answers an invitation.
manage_taskCreates, updates, deletes or moves a task.
modify_doc_textInserts, replaces or formats text in a Doc.
modify_sheet_valuesWrites, updates or clears the values in a range.
send_gmail_messageSends, replies to or forwards an email, with attachments if needed.
send_messagePosts to a Google Chat space, or edits a message you sent.

Only reads23 tools · Looks things up and changes nothing.

ToolWhat it is for
generate_trigger_codeWrites the Apps Script code you need to set up a time or event trigger, since the API cannot create one itself.
get_contactReturns the details of one contact.
get_doc_contentReads a Google Doc, or the text of a Word file stored in Drive.
get_drive_file_contentReads a Drive file as text: Docs, Sheets and Slides are exported, Office files are unpacked.
get_drive_file_download_urlDownloads a Drive file, returning a local path or a temporary link.
get_drive_shareable_linkReturns the sharing link of a file or folder.
get_eventsFetches one event or the events in a time range, optionally matching a keyword.
get_formReads a form's questions and settings.
get_gmail_message_contentReads one email: sender, recipients, subject and body.
get_gmail_messages_content_batchReads up to 25 emails in one call.
get_messagesReads recent messages in a Google Chat space.
get_presentationReads a presentation's slides, and speaker notes if asked.
get_script_projectReads an Apps Script project and its source files.
get_taskReturns one task.
list_calendarsLists the calendars you can see.
list_contactsLists your Google contacts.
list_tasksLists the tasks in a Google Tasks list.
read_sheet_valuesReads the values in a range of a spreadsheet.
search_contactsFinds contacts by name, email, phone number or other fields.
search_customRuns a Google Programmable Search (Custom Search) query.
search_drive_filesSearches Drive, including shared drives, for files and folders.
search_gmail_messagesSearches Gmail with the usual search operators and returns message and thread IDs.
search_messagesSearches Google Chat messages by text or time.

Tool groups

--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.

Grouped and described by us. The README on GitHub lists the inputs each tool takes.

How clearly it describes its tools to your assistant

Tools with a description
43 of 43
Say if they change things
43 of 43
Context it takes, at least
~4,800 tokens

Every tool says whether it only reads or can change things, so a client can ask before the risky ones.

From the tool list it sent us. The token figure counts names, descriptions and input names; the full schemas your client loads add more.

Set it up

Pick your app for the exact snippet and where it goes.

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

Claude Desktop
{
  "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"
      }
    }
  }
}

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.

New to this? See the setup guides for Claude Code, Cursor, Claude Desktop and ChatGPT.

Settings

Names are exactly as the project spells them. Required ones are marked.

SettingWhat it does
GOOGLE_OAUTH_CLIENT_IDEnvironment variable · requiredThe OAuth client ID from your Google Cloud project.1234-abc.apps.googleusercontent.com
GOOGLE_OAUTH_CLIENT_SECRETEnvironment variable · requiredThe secret for that OAuth client. GOOGLE_CLIENT_SECRET_PATH can point at a client_secret.json instead.
--tool-tierCommand line flagWhich tier of tools to load: core, extended or complete.--tool-tier core
--read-onlyCommand line flagLoads only the tools that read, so nothing can be sent, edited or deleted.
--transportCommand line flagRuns as an HTTP server instead of stdio. Needed for OAuth 2.1, Claude connectors and shared team use.--transport streamable-http
MCP_ENABLE_OAUTH21Environment variableTurns on multi-user OAuth 2.1 sign-in in HTTP mode.true
WORKSPACE_MCP_PORTEnvironment variableThe port for HTTP mode.8000
ALLOWED_FILE_DIRSEnvironment variableFolders 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

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.

Peas in a pod: similar servers

How Google Workspace MCP lines up against other knowledge and work apps servers on the shelf.

ServerToolsRuns onLicenceStars
Google Workspace MCP43Your computerMIT3.4K
12306 MCP8Your computerMIT2.4K
Notion24Your computer or hostedMIT4.7K
MCP Atlassian (Jira and Confluence)98Your computer–6K
Basic Memory27Your computerAGPL-3.0-or-later4.4K

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 GitHubtaylorwilsdon/google_workspace_mcp

Something wrong on this page? Tell us.

More in Knowledge and work apps