💬

Gmail MCP Server

Updated June 2026⭐ Featured

The Gmail MCP server, built by taylorwilsdon, provides google does not publish a Gmail MCP server. It is community-built and best for Communication.

by taylorwilsdon

About

Google does not publish a Gmail MCP server. The two repositories in the googleworkspace GitHub organisation — developer-mcp and dev-assist — are for building on Google Workspace APIs, not for reading your mail, so every Gmail MCP setup in circulation is community-built. The leading one by a wide margin is taylorwilsdon/google_workspace_mcp, a Python server published to PyPI as workspace-mcp that covers Gmail alongside eleven other Workspace services behind a single connection: Drive, Calendar, Docs, Sheets, Slides, Forms, Tasks, Contacts, Chat, Custom Search and Apps Script, 120+ tools in total. Gmail contributes fifteen of them across three loadable tiers — core is search_gmail_messages, get_gmail_message_content, get_gmail_messages_content_batch and send_gmail_message; extended adds threads, attachments, drafts, labels and filters; complete adds the batch label operations. Run it with `uvx workspace-mcp --tools gmail` to load Gmail only, or `--tool-tier core` to keep the tool schemas small. Auth is your own Google Cloud OAuth client — the server ships no credentials and sends nothing anywhere except Google's APIs — and `--read-only` is a real, documented switch. The server most third-party guides still name, GongRzhe/Gmail-MCP-Server (npm @gongrzhe/server-gmail-autoauth-mcp), was archived on 2025-08-06 and its npm package has not been published since; it still installs, which is why it keeps getting recommended.

Not yet measured
not scored

The repository is confirmed to exist, but nothing about this server has been measured yet — no remote endpoint to handshake and no repository-freshness signal collected. Absence of evidence, not evidence of a problem.

What was measured

  • Source verification100/100 · weight 25

    The repository URL was confirmed to resolve against the live GitHub API and is not archived.

  • Provenance65/100 · weight 10

    Community-built. That is not a mark against it — most of the ecosystem is community-built — but there is no vendor accountable for keeping it working.

  • Listing ↔ repository match70/100 · weight 5

    The linked repository taylorwilsdon/google_workspace_mcp was confirmed to exist, but its name does not obviously correspond to this listing. Worth opening the repo before you trust the mapping.

What could not be measured

These contributed nothing to the score — not a penalty, not a zero. They are why the confidence reads the way it does.

  • Live MCP handshakeunknown

    No remote endpoint to handshake — this server installs and runs locally over stdio, so there is nothing to probe from the outside.

  • Measured uptimeunknown

    No probe history recorded for this server yet.

  • Tool-schema stabilityunknown

    Drift is a difference between two successive checks, and this server has none recorded.

  • Repository maintenanceunknown

    Repository freshness could not be read: no repo URL

Installation

pip
uvx workspace-mcp --tools gmail

workspace-mcp confirmed live on PyPI — checked August 17, 2026.

Google does not publish a Gmail MCP server. That single fact resolves most of the confusion around this term: the two MCP repositories in the googleworkspace GitHub organisation are for building on Workspace APIs, not for reading your mail, so every working Gmail setup is community-built. The one to install is taylorwilsdon/google_workspace_mcp — 3,021 stars, MIT, on PyPI as workspace-mcp — which covers Gmail as one of twelve Workspace services behind a single connection. The one most guides still name is GongRzhe/Gmail-MCP-Server, archived on 2025-08-06 with an npm package unpublished since the same day. It still installs cleanly, which is exactly why it keeps getting recommended.

Setting up Gmail MCP

  1. 1.Create your own OAuth client in Google Cloud

    The server ships no credentials — you bring a client ID and secret from your own Google Cloud project, with the APIs enabled for the services you plan to use. Use the Web Application client type if you are running it over HTTP; Desktop is only appropriate for a local stdio instance. Picking Desktop for a hosted setup is the single most common mistake, and it surfaces later as Error 400: redirect_uri_mismatch.

  2. 2.Export the credentials and launch

    Two environment variables and one command. The tool tiers exist to keep tool schemas out of your context window: core is the essential set, extended adds management operations, complete loads everything.

    shell
    export GOOGLE_OAUTH_CLIENT_ID="..."
    export GOOGLE_OAUTH_CLIENT_SECRET="..."
    
    uvx workspace-mcp --tool-tier core
  3. 3.Load only Gmail, if Gmail is what you want

    The default loads every service you have enabled. `--tools` cherry-picks, and it is the difference between a handful of tool schemas and 120+ on every request. `--read-only` and per-service `--permissions` narrow it further, and `--disabled-tools` subtracts individual tools by name.

    shell
    uvx workspace-mcp --tools gmail --read-only
  4. 4.Connect the client over HTTP

    HTTP is the recommended transport; stdio remains for clients without Connector support. For Claude Desktop, web and mobile, run the server in HTTP mode and add it under Settings → Connectors → Add custom connector. For Claude Code it is one command against the running server.

    shell
    claude mcp add --transport http workspace-mcp http://localhost:8000/mcp
  5. 5.For a shared or remote endpoint, turn on OAuth 2.1

    Multi-user and remote deployments need bearer-token auth rather than a single local credential file. MCP clients connect with PKCE and no secret, but Google still requires a client secret server-side, so both variables stay set. OAuth 2.1 requires the HTTP transport.

    shell
    export MCP_ENABLE_OAUTH21=true
    export WORKSPACE_MCP_PORT=8000
    export GOOGLE_OAUTH_REDIRECT_URI="http://localhost:${WORKSPACE_MCP_PORT}/oauth2callback"
    
    uvx workspace-mcp --transport streamable-http --tool-tier core

The fifteen Gmail tools, by tier

Tiers are defined in core/tool_tiers.yaml, so which of these load depends on the --tool-tier you launch with. Only the core four are loaded by default at that tier.

search_gmail_messages

Core. Searches the mailbox with Gmail query syntax — from:, subject:, has:attachment, is:unread, after:.

get_gmail_message_content

Core. Returns the body and metadata of a single message.

get_gmail_messages_content_batch

Core. The same for many messages in one call — the tool to prefer when summarising an inbox rather than looping.

send_gmail_message

Core. Sends mail. Present at the lowest tier, which is worth knowing before you connect it unsupervised.

get_gmail_thread_content

Extended. Full thread rather than a single message.

get_gmail_attachment_content

Extended. Reads an attachment; local file reads are sandboxed to the managed attachment directory.

draft_gmail_message

Extended. Writes a draft instead of sending — the safer half of the write surface.

modify_gmail_message_labels / list_gmail_labels / manage_gmail_label

Extended. Apply, remove, list and create labels.

list_gmail_filters / manage_gmail_filter

Extended. Reads and edits Gmail filters, which is server-side rule automation, not just triage.

batch_modify_gmail_message_labels

Complete. Bulk label changes across many messages at once.

get_gmail_threads_content_batch

Complete. Batch thread reads for large summarisation jobs.

What people use it for

Triage the inbox without granting send access

Search my Gmail for unread messages from the last two days, batch-read them, and give me a list of the ones that need a reply today.

Run with --read-only and this is the whole job: search plus a batch content read. The batch tool matters — reading messages one at a time is how a triage prompt turns into fifty tool calls.

Draft rather than send

Draft a reply to the most recent thread from this client agreeing to Thursday, and label the thread Follow-Up. Do not send it.

draft_gmail_message and modify_gmail_message_labels are both extended-tier, so this needs --tool-tier extended. Drafting keeps a human in the loop on the one action that cannot be undone.

Audit what is auto-filing itself

List my Gmail filters and tell me which ones are archiving mail from senders I have replied to in the last month.

Filters are the part of Gmail nobody re-reads. The filter tools make them inspectable in the same session as the mail they act on.

Which one should you use?

The choice here is not really between Gmail servers — it is between one maintained multi-service server and a set of frozen single-service ones.

GongRzhe/Gmail-MCP-Server

Do not start here. Archived 2025-08-06, npm unpublished since the same day. It is the most-linked Gmail MCP server and the least maintained one.

Google Drive MCP

If you also want Drive, do not install a second server — workspace-mcp covers Drive with 16 tools behind the same OAuth client and the same connection.

Google Sheets MCP

Same reasoning. A separate Sheets server means a second Google Cloud client, a second consent flow and a second set of tool schemas in every request.

Slack MCP

The comparable server for the other inbox. Both connect to a communication surface; Slack differs in that its token classes, not flags, decide what you can do.

Frequently Asked Questions

Is there an official Google Gmail MCP server?
No. The googleworkspace GitHub organisation publishes developer-mcp and dev-assist, both aimed at building on Workspace APIs rather than at reading your mail, and neither is a Gmail server. Any listing that describes a Gmail MCP server as built and maintained by the Google Workspace team is wrong, including — until this page was written — ours. The de facto standard is taylorwilsdon/google_workspace_mcp, a community project under MIT.
Why does @gongrzhe/server-gmail-autoauth-mcp still show up everywhere?
Because it still works. GongRzhe/Gmail-MCP-Server was archived on 2025-08-06 and its npm package has not been published since 2025-08-06 either, but an archived repository and a frozen package install exactly as cleanly as a maintained one. Nothing at install time warns you. It is the fourth server in this catalog with that shape, after Redis, Elasticsearch and ExecuteAutomation Playwright.
I get Error 400: redirect_uri_mismatch when signing in to Google.
Your OAuth client is the wrong type or the URIs do not match. Confirm the client is Web Application, not Desktop — Desktop clients have no redirect URI fields at all, so recreating the client is the fix. Then set the Authorized JavaScript Origin to your server origin and the Authorized Redirect URI to that origin plus /oauth2callback. "Access blocked: This app's request is invalid" is the same fault wearing a different message.
Google warns that the app is unverified. Is that a problem?
It is expected, and the project recommends leaving your OAuth app in testing mode unless you have a reason not to. Testing mode is fully functional; the only difference is the consent-screen warning, past which you click Advanced and continue. Organisations that block unverified apps outright should supply their own client ID from the company GCP project, which keeps consent and audit logs inside existing governance.
How do I reach two mailboxes from one client?
Add the endpoint once per account as separate connectors, giving each a distinct URL by appending an ?email= query parameter. The parameter only exists to stop the client collapsing them into one server — each connection still authenticates independently as its own Google account.
How much of my machine can it read?
Local file reads default to the managed attachment directory. Broadening that with ALLOWED_FILE_DIRS is possible, but validate_file_path() still refuses .env* files and common credential stores such as ~/.ssh/ and ~/.aws/ regardless. The larger risk is the other direction: the project says plainly that emails can carry hidden instructions, so be deliberate about which write tools you enable.
Why does uvx workspace-cli fail?
Because an abandoned PyPI package squats that name. The CLI is installed from the repo with `uv tool install .`, and the README flags the squat explicitly. The server itself is the workspace-mcp package and `uvx workspace-mcp` is correct.
What is Gmail MCP Server?
Gmail is an MCP server built by taylorwilsdon. Google does not publish a Gmail MCP server. The two repositories in the googleworkspace GitHub organisation — developer-mcp and dev-assist — are for building on Google Workspace APIs, not for reading your mail, so every Gmail MCP setup in circulation is community-built. The leading one by a wide margin is taylorwilsdon/google_workspace_mcp, a Python server published to PyPI as workspace-mcp that covers Gmail alongside eleven other Workspace services behind a single connection: Drive, Calendar, Docs, Sheets, Slides, Forms, Tasks, Contacts, Chat, Custom Search and Apps Script, 120+ tools in total. Gmail contributes fifteen of them across three loadable tiers — core is search_gmail_messages, get_gmail_message_content, get_gmail_messages_content_batch and send_gmail_message; extended adds threads, attachments, drafts, labels and filters; complete adds the batch label operations. Run it with `uvx workspace-mcp --tools gmail` to load Gmail only, or `--tool-tier core` to keep the tool schemas small. Auth is your own Google Cloud OAuth client — the server ships no credentials and sends nothing anywhere except Google's APIs — and `--read-only` is a real, documented switch. The server most third-party guides still name, GongRzhe/Gmail-MCP-Server (npm @gongrzhe/server-gmail-autoauth-mcp), was archived on 2025-08-06 and its npm package has not been published since; it still installs, which is why it keeps getting recommended.
Who built Gmail MCP Server?
Gmail MCP Server was built by taylorwilsdon.
Is Gmail MCP Server free?
Yes, Gmail MCP Server has a free option. This MCP server is free and open-source. Check the GitHub repository for details.
How do I install Gmail MCP Server?
Install Gmail MCP Server with pip: uvx workspace-mcp --tools gmail
What does Gmail MCP Server integrate with?
Gmail MCP Server integrates with Claude Desktop, Cursor, VS Code, Windsurf.

Repo Health

Local install

Local/stdio install — runs on your machine, so there is no remote endpoint to verify live. Trust signal below is from the source repo.

Install
npm

Repo recency not yet available for this server.

Quick Info

Install Type
pip
Author
taylorwilsdon
Categories
2
Integrations
4

Related Servers

📋

Time

Time and timezone conversion capabilities for AI assistants.

Local
💻

21st.dev Magic

Create crafted UI components inspired by the best 21st.dev design engineers.

Local
📋

Notion MCP Server

The Notion MCP Server is the official integration from Notion that connects AI assistants directly to your Notion workspace via the Notion REST API. With 4,580+ GitHub stars, it is the canonical MCP tool for bringing Notion's knowledge management capabilities into Claude Desktop, Cursor, Windsurf, and any MCP-compatible client. The server exposes a rich set of tools: search your entire workspace by keyword and return matching pages and databases; retrieve full page content and block trees; create new pages inside any parent page or workspace section; update, append, or delete block content on existing pages; list all databases your integration has access to; query database entries with filter and sort parameters; retrieve individual blocks or nested children by block ID; and add comments to pages. Authentication uses a Notion integration token — create an internal integration at notion.so/my-integrations, share specific pages or databases with it, and set NOTION_TOKEN in your environment (the older OPENAPI_MCP_HEADERS form still works). Install with a single npx command. The Notion MCP Server is especially powerful for AI workflows that span documentation retrieval, project planning, and knowledge capture — Claude can read product specs from Notion, draft new pages from conversation output, log structured data into databases, and search across thousands of notes without any manual copy-paste.

Auth required📘
📋

Linear MCP Server

The Linear MCP server connects your AI assistant directly to Linear's project management platform via an officially hosted remote endpoint at mcp.linear.app — no local installation required. This is Linear's own first-party server, authenticated with OAuth 2.1 and centrally managed so you always run the latest version without updates. Available tools let you search issues by keyword, team, cycle, or filter; create new issues with title, description, and assignee; update status, priority, labels, and comments; and navigate Linear's project and cycle structure. In Claude Code, add it with: `claude mcp add --transport http linear-server https://mcp.linear.app/mcp`, then run /mcp to complete the OAuth flow. For older clients, use the mcp-remote bridge for backwards compatibility. Claude Desktop and Claude.ai users can connect via Settings > Connectors. Cursor and Codex have native support via their MCP config. Linear is used by thousands of engineering and product teams to plan, track, and ship software — the Linear MCP server brings that data into every AI-powered workflow without copy-paste or context-switching.

Auth required📘
💬

Slack MCP Server

The Slack MCP server (built by Ivan Korotovsky) connects AI assistants like Claude, Cursor, and Windsurf directly to Slack workspaces, enabling conversational access to your team communication channels without requiring workspace admin approval for a bot install. Its standout feature is a "no permission" stealth mode — it authenticates using your own personal Slack session tokens (xoxc/xoxd, or a stored browser session) rather than requiring a Slack App with OAuth scopes, so it works even in locked-down workspaces where you cannot create bots. It also supports full OAuth Bot Token auth and Enterprise/GovSlack deployments for teams that prefer a conventional app install. Tools exposed include reading channel and DM/group-DM history with smart pagination, searching messages across the workspace, posting messages and thread replies, listing channels and users, and adding reactions. Common use cases include automating standups by posting summaries directly to team channels, searching past Slack conversations to surface decisions or context, monitoring specific channels for keywords or alerts, and drafting replies to thread discussions — all from natural-language prompts. Supports both Stdio and SSE transports plus proxy configuration for corporate networks. Install with: `npx slack-mcp-server@latest --transport stdio`. A separate official-style integration exists from Zencoder (@zencoderai/slack-mcp-server) for teams that prefer standard Bot Token OAuth over session-token auth. Compatible with Claude Desktop, Cursor, VS Code, Windsurf, and Cline.

Local📘

Sponsored

ElevenLabs

Free Tier

The leading voice AI platform. Add lifelike text-to-speech to your Claude agents via the ElevenLabs MCP server.

Try ElevenLabs free →