Gmail MCP server
A super simple and tiny MCP server for gmail in python
claude-gmail-mcp
A super tiny Gmail MCP server for Claude Code. Lets Claude send, search, and read Gmail on your behalf.
Two backends are supported and auto-selected at startup:
- Gmail API (OAuth) — recommended. No app password. Batch search. Direct Gmail web URLs on every result.
- SMTP/IMAP (app password) — simpler setup. Fallback when the OAuth token isn't present.
I needed something for my projects — there were a bunch around which seemed super complicated. So why not have Claude CLI build one for me :-p
Prerequisites
- uv installed
- One of:
- A Google Cloud OAuth client (Desktop app) — for the API backend, OR
- A Gmail App Password — for the SMTP/IMAP backend
Install (Gmail API backend — recommended)
-
In Google Cloud Console, create a project, enable the Gmail API, and configure the OAuth consent screen (External, add your Gmail as a test user). Create an OAuth client of type Desktop app and download the credentials JSON.
-
Run the auth helper, pointing at the downloaded file:
uvx --from claude-gmail-mcp claude-gmail-mcp-auth /path/to/credentials.jsonBrowser opens → sign in → approve (scope:
gmail.modify). Refresh token is saved to~/.config/claude-gmail-mcp/token.json(perms600). -
Register the MCP server with Claude Code (no env vars needed):
claude mcp add gmail --scope user -- uvx claude-gmail-mcp
Install (SMTP/IMAP backend — fallback)
claude mcp add gmail --scope user \
-e [email protected] \
-e GMAIL_APP_PASSWORD=your-app-password \
-- uvx claude-gmail-mcp
Replace [email protected] and your-app-password with your actual credentials. Drop --scope user to install only for the current project directory.
Verify
claude mcp list
You should see gmail listed as a configured server. To see which backend is active, run:
uvx claude-gmail-mcp 2>&1 | head -1
Expected: [gmail-mcp] backend=api or [gmail-mcp] backend=imap. Ctrl-C to exit.
Backend selection
At startup the server picks exactly one backend:
- Token file at
GMAIL_TOKEN_PATH(default~/.config/claude-gmail-mcp/token.json) exists → API backend. - Else
GMAIL_ADDRESS+GMAIL_APP_PASSWORDenv vars set → IMAP backend. - Else tools return a "no backend configured" error.
To force a switch to the IMAP backend when a token file exists, set GMAIL_TOKEN_PATH to a non-existent path (or delete the token file).
Usage
Ask Claude to send an email:
Send an email to [email protected] with subject "Hello" and body "Hi from Claude!"
Tools exposed:
send_email—to,subject,body, optionalcc/bcc,html,attachments(local file paths; unreadable files are skipped with a warning).search_emails—queries(single string or list of strings),max_results(per query when a list is passed). Results include the Gmail message ID in hex and a direct Gmail web URL per hit.read_email—uid(the hex ID fromsearch_emails). Output includes the Gmail web URL at the top.
Batch search example:
Search Gmail for "is:unread from:alice" and "is:unread from:bob" — show me both side by side.
Claude passes both queries in a single tool call. The response is sectioned per query. API backend executes the list step in one HTTP roundtrip; IMAP backend iterates.
Attachment example:
Send an email to [email protected] with subject "Report" and attach ~/Documents/report.pdf
Publishing to PyPI
python -m build && twine upload dist/*
For Development
git clone https://github.com/pliablepixels/claude-gmail-mcp.git
cd claude-gmail-mcp
uv sync
uv run pytest
Run the server locally:
uv run claude-gmail-mcp
Test with Claude Code using your local copy instead of the published package:
claude mcp add gmail --scope user \
-- uv run --directory /path/to/claude-gmail-mcp claude-gmail-mcp
(For the IMAP backend add -e GMAIL_ADDRESS=... -e GMAIL_APP_PASSWORD=....)
Máy chủ liên quan
notifyhub
Unified notification MCP server with 36 tools to send messages across 23 channels — Email, SMS, Slack, Telegram, Discord, Teams, WhatsApp, Firebase Push, and more.
Gmail MCP
A standardized interface for managing, sending, and retrieving emails through the Gmail API.
KimpalbokTV Slack
A Slack server for managing workspace channels, messages, and users, created by KimpalbokTV.
MCP IDE Bridge
An open-source messaging server for client-to-client communication using MCP HTTP Streamable messaging.
Mac Messages MCP
A Python bridge for interacting with the macOS Messages app.
Telegram Notify MCP
Send Telegram notifications from AI agents - text, photos, and documents via Bot API
Hacker News MCP Server
Integrate real-time Hacker News data and discussions into your applications and workflows.
Gmail AutoAuth MCP Server
An MCP server for integrating Gmail with auto-authentication support.
X (Twitter)
An MCP server for interacting with the X (Twitter) API, requiring developer credentials.
Facebook MCP Server
Automate and manage interactions on a Facebook Page using the Facebook Graph API.