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=....)
संबंधित सर्वर
notify-mcp
A lightweight Bash-based MCP server for sending desktop notifications via notify-send.
Sinch
Interact with Sinch APIs for communication services like conversation, email, verification, and voice.
Universal Contract AI Interface (UCAI)
Universal Contract AI Interface (UCAI) 🔗 ABI to MCP | The open standard for connecting AI agents to blockchain. MCP server generator for smart contracts. Claude + Uniswap, Aave, ERC20, NFTs, DeFi. Python CLI, Web3 integration, transaction simulation. Polygon, Arbitrum, Base, Ethereum EVM chains. Claude, GPT, LLM tooling, Solidity, OpenAI.
Deepseek R1
An MCP server for the Deepseek R1 model, using the Deepseek API.
Email MCP Server
Send emails via SMTP. Requires SMTP server credentials to be configured through environment variables.
Zundamon Voice Synthesis
A voice synthesis server for Zundamon using the VOICEVOX engine.
Multi Chat MCP Server (Google Chat)
Connect AI assistants like Cursor to Google Chat and beyond — enabling smart, extensible collaboration across chat platforms.
Clash of Clans
Interact with the Clash of Clans API to retrieve game data. Requires a CLASH_API_KEY environment variable.
Gmail
Query live Gmail data using LLMs via CData's read-only MCP server.
Slack
Interact with Slack workspaces to read and send messages directly through your AI assistant.