gmail-mcp-server
Provides tools for searching, reading, and summarizing emails, as well as creating drafts, sending drafts, and applying custom labels through the Gmail API, with safety boundaries preventing deletions and system-label modifications.
Click on "Install 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-mcp-serverSearch my inbox for emails from Acme Corp this week and flag anything urgent"
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 Server
A working example of connecting Claude to a real business tool — Gmail — the way it should be done: with proper login security, the AI only able to do what it's explicitly allowed to do, and no way for it to take an irreversible action (like sending an email) without a clear checkpoint.
The problem this solves
AI assistants like Claude are increasingly expected to do things, not just talk — search an inbox, draft a reply, flag something urgent — instead of a person copy-pasting between a chat window and their actual tools. That capability is genuinely useful, but connecting an AI assistant directly to something as sensitive as an email account raises an obvious question: what happens if it gets it wrong, or is tricked into doing something it shouldn't?
Most quick "connect my AI to my inbox" setups skip past that question — they hand over broad access and hope for the best. That's the gap this project is built to close. It's a demonstration, using a real Google account and the real Gmail API (not a mock or toy example), of what a properly scoped AI-to-business-tool integration looks like: the AI gets exactly the access it needs for the job, nothing more, and the riskiest action (sending real email) requires an explicit extra step rather than happening automatically.
Related MCP server: gmail-mcp-server
How it stays safe, in plain terms
A specific, limited key — not the master key. Logging in grants three narrow permissions (read mail, draft/send mail, apply labels). There is no permission to delete anything, change account settings, or touch anything outside Gmail.
The key is locked in a safe. Once you log in, the credentials that let Claude access your inbox are encrypted on your own computer. They're never sent anywhere else, and the encryption key lives only in a local file that's never shared or uploaded.
Drafting and sending are two separate, deliberate steps. Claude can prepare a reply as a draft at any time — that's harmless and reversible, the same as you starting an email and not hitting send. Actually sending it is a separate action, clearly flagged to whatever app is running Claude as a sensitive one-way step, so it isn't something that happens as a side effect of Claude just being "helpful."
Labels can't be used to hide or destroy mail. Claude can tag messages with custom labels you create (e.g. "Needs Reply"), but it's structurally blocked from touching Gmail's built-in Trash/Spam/Archive controls through that same feature — a subtle way "just add a label" could otherwise be misused.
The full technical breakdown — exact permissions requested, what's
reversible vs. not, and what the honest residual risk is — is in
SECURITY.md.
Why build this instead of using Google's own Gmail MCP integration
Google has since released its own first-party remote MCP server for Gmail. For someone who just wants Gmail-in-Claude working today, that's the faster path. This project exists for a different reason: to show, on a tool everyone recognizes, the underlying skill of building this kind of integration from scratch — the login flow, the credential storage, the tool design, the safety boundaries — for the many business tools (CRMs, ad platforms, shipping, payments, internal systems) that don't have a ready-made AI integration and need someone to build one deliberately.
See it in action
One-time login: run the authorize command, sign in with Google in the browser that opens, and approve access.
Ask Claude: "Search my inbox for anything from [sender] this week" — it searches, nothing else.
Ask: "Check my inbox and tell me if anything looks urgent" — it pulls a fast summary of recent mail and reasons over it.
Ask: "Draft a reply to that saying I'll follow up tomorrow" — a real draft appears in Gmail. Nothing has been sent.
Only if you then say so, ask Claude to send it — that's the one deliberate, irreversible step in the whole flow.
Under the hood
Tools
Tool | Scope | Description |
| read | Search messages with Gmail search syntax |
| read | Fetch one message's full body |
| read | Fast metadata/snippet fetch for periodic triage |
| write | Create a draft (never sends) |
| write | Send a previously created draft |
| write | Attach a custom (non-system) label |
Setup
Install dependencies (requires Python 3.10+; this repo uses uv):
uv syncSet up Google OAuth and authorize an account — follow
workflows/setup_google_oauth.md. Short version:cp .env.example .env python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" # paste the output into .env as TOKEN_ENCRYPTION_KEY # download credentials.json from Google Cloud Console into the project root python -m tools.gmail_mcp.authorize personalPoint Claude Desktop/Code at the server. Add to your MCP client config (e.g.
claude_desktop_config.json):{ "mcpServers": { "gmail": { "command": "/absolute/path/to/mcp-business-tools/.venv/bin/python", "args": ["-m", "tools.gmail_mcp.server"], "cwd": "/absolute/path/to/mcp-business-tools" } } }Restart Claude Desktop/Code so it picks up the new server.
Adding more accounts
See workflows/add_gmail_account.md.
Project layout
workflows/ SOPs: OAuth setup, adding accounts, inbox-summary pattern
tools/gmail_mcp/ the MCP server package
config.py env-driven settings, scopes
auth.py OAuth flow + encrypted token storage
gmail_client.py Gmail API wrapper functions
server.py MCP tool definitions
authorize.py one-time per-account OAuth CLI
tokens/ encrypted per-account tokens (gitignored)Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceA minimal MCP server that enables Claude to search, read, and manage Gmail messages and threads using official Google API libraries. It supports actions like sending emails, creating drafts, replying to threads, and managing labels through secure OAuth2 authentication.Last updatedMIT
- Alicense-qualityCmaintenanceA secure MCP server that enables Claude to read, search, send, reply, forward, and manage Gmail messages and labels through natural language commands.Last updated1701MIT
- Alicense-qualityCmaintenanceA custom MCP server that gives Claude full Gmail control — send directly, read, reply, search, label, and delete emails.Last updated170MIT
- Alicense-qualityDmaintenanceAn MCP server that provides Claude with access to your Gmail, featuring a full OAuth 2.1 authorization server with dynamic client registration and tools to list, read, search, send, reply, draft, archive, trash, manage labels, and download attachments.Last updated4231MIT
Related MCP Connectors
Read, search, send, organize, draft and schedule email across your inboxes from any MCP client.
Manage Gmail end-to-end: search, read, send, draft, label, and organize threads. Automate workflow…
Manage Gmail messages, threads, labels, drafts, and settings from your workflows. Send and organiz…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hjerkic/gmail-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server