gmail-mcp
Allows interacting with Gmail accounts, providing tools for reading, searching, labeling, and drafting emails, as well as retrieving attachments via signed download links.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@gmail-mcpfind emails from alice in account work"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
gmail-mcp
Remote MCP server on Cloudflare Workers exposing multiple Gmail accounts to Claude through one connector. Tool names, descriptions, and response shapes replicate Anthropic's built-in Gmail connector; the additions are a required account parameter on every tool (plus account: "all" fan-out on search_threads) and get_message_attachment, which the built-in connector does not expose. That tool returns a short-lived signed download link rather than attachment content, so files reach disk without passing through the model's context.
Architecture
/mcp: Streamable HTTP MCP endpoint. Two auth paths: MCP OAuth (what claude.ai uses; dynamic client registration + PKCE viaworkers-oauth-provider, with the/authorizeapproval page gated bySETUP_SECRET) or a static bearer secret (MCP_SECRET) for CLI clients and tests./attachment?...&signature=<hmac>: serves one attachment's raw bytes.get_message_attachmentmints these links, signing account, message id, attachment id and a 10-minute expiry withMCP_SECRET. The link carries its own authorization so a plaincurl -oworks, and within its window it unlocks that one attachment and nothing else./connect/<alias>?key=<SETUP_SECRET>: browser route that runs the Google OAuth flow for one account and stores its refresh token in KV./oauth/callback: Google OAuth redirect target.Tokens live in the
GMAIL_KVnamespace (refresh:<alias>plus a short-livedaccess:<alias>cache). Scope isgmail.modify: read, search, labels, drafts; no send.Requires a Workers paid plan:
search_threadsandlist_draftsmake one Gmail request per result, so a largepageSize(oraccount: "all") exceeds the free plan's 50-subrequest cap.
Related MCP server: gmail-mcp
Configuration
ACCOUNTSvar inwrangler.jsonc: comma-separated account aliases. Rerunnpx wrangler deployafter changing it.Secrets (set with
npx wrangler secret put <NAME>):MCP_SECRET: bearer token Claude sends; anyone holding it can read the connected mailboxes.SETUP_SECRET: gates the/connectroutes.GOOGLE_CLIENT_ID_<ALIAS>/GOOGLE_CLIENT_SECRET_<ALIAS>per account, alias uppercased (e.g.GOOGLE_CLIENT_ID_CANDIX).
Per-account Google setup (~10 min, once per Workspace org)
Go to https://console.cloud.google.com and create a project inside that Workspace org (top-left project picker > New project).
APIs & Services > Library > search "Gmail API" > Enable.
APIs & Services > OAuth consent screen: User type Internal (no verification, refresh tokens do not expire), fill in the app name and contact email.
APIs & Services > Credentials > Create credentials > OAuth client ID > Application type Web application. Add the authorized redirect URI:
https://gmail-mcp.<your-subdomain>.workers.dev/oauth/callback.Copy the client ID and secret into Worker secrets:
npx wrangler secret put GOOGLE_CLIENT_ID_<ALIAS> npx wrangler secret put GOOGLE_CLIENT_SECRET_<ALIAS>Visit
https://gmail-mcp.<your-subdomain>.workers.dev/connect/<alias>?key=<SETUP_SECRET>in a browser while signed in to that Google account, and approve.
Re-run step 6 anytime to reconnect (e.g. after revoking access).
Connect to Claude
Settings > Connectors > Add custom connector:
URL:
https://gmail-mcp.<your-subdomain>.workers.dev/mcpLeave the OAuth client ID/secret fields empty (Claude registers itself dynamically).
Click Add, then Connect: an approval page opens; paste
SETUP_SECRETand approve.
The connector then works on claude.ai web, mobile, desktop, and Claude Code.
Rotating the bearer secret
npx wrangler secret put MCP_SECRETThen update the Authorization header in the Claude connector settings.
This server cannot be deployed
Maintenance
Related MCP Connectors
Cloudflare Workers MCP server: ai-model-router
9 remote MCP servers on Cloudflare Workers for AI agents. Free tier + Pro API keys.
Cloudflare Workers MCP server: claude-skill-validator
Cloudflare Workers MCP server: ai-gateway
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceA Gmail MCP server running on Cloudflare Workers that enables reading, searching, labeling, drafting, sending, and managing Gmail messages, including fetching raw attachment bytes, with per-user OAuth authorization.89 npmMIT
- AlicenseNot gradedqualityCmaintenanceA Gmail MCP server that lets AI assistants search, read, send, and manage email across multiple Google accounts, deployed on Cloudflare Workers.89 npmMIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that connects Gmail to AI assistants, enabling search, read, send, reply-all, forward, attachment handling, and draft management across multiple Google accounts, deployable on your own Cloudflare Worker.89 npmMIT
- AlicenseNot gradedqualityCmaintenanceDeployable MCP server on Cloudflare Workers that connects Gmail to AI assistants, enabling search, read, send, reply-all, forward, attachment handling, and label/thread management across multiple Google accounts simultaneously.89 npmMIT