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=....)
Verwandte Server
ChatMCP
A cross-platform AI chat client supporting desktop, mobile, and web platforms.
mcp-max-messenger
mcp-max-messenger
KimpalbokTV Slack
A Slack server for managing workspace channels, messages, and users, created by KimpalbokTV.
Reddit MCP Server
A server for fetching and creating content on Reddit using its API.
mcp-linkedin
Publish LinkedIn posts, comments, and reactions via Unipile — dry_run by default for safety.
LLM Chat Assistant
A chat assistant that integrates an MCP client with an LLM and other external MCP servers.
TradingView Backtest Assistant”
exposes a remote MCP endpoint so agents can: run strategy backtests by symbol/timeframe/date range, pass strategy inputs programmatically,receive structured backtest results (trades, win rate, profit, drawdown).
SendGrid
Access SendGrid's Marketing API for email marketing and contact management.
Fast Intercom
A high-performance MCP server for analyzing Intercom conversations, offering speeds up to 100x faster than the REST API.
Hacker News MCP Server
Integrate real-time Hacker News data and discussions into your applications and workflows.