gmail-mcp-multi
Allows managing multiple Gmail accounts, including searching, reading, sending, labeling, and deleting emails, with support for account aliases and batch operations.
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-multisearch for unread emails in my work account"
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-multi
A Gmail MCP server with native multi-account support. Manage multiple Gmail accounts from a single server instance.
Unlike other Gmail MCPs that require running separate server instances per account, this one lets you specify which account to use on each tool call—making it easy to manage personal and work inboxes from Claude Code, Cursor, or any MCP client.
Features
Multi-account support - Single server instance, unlimited Gmail accounts
Account aliases - Use friendly names like "work" or "personal" instead of email addresses
Full Gmail API - Search, read, send, label, and manage emails
Batch operations - Bulk modify or delete emails efficiently
Auto token refresh - Handles OAuth token refresh automatically
Installation
npm install -g gmail-mcp-multiOr run directly with npx:
npx gmail-mcp-multiQuick Start
1. Set up Google Cloud OAuth
You'll need OAuth credentials from Google Cloud Console:
Go to Google Cloud Console
Create a new project (or use existing)
Enable the Gmail API
Create OAuth 2.0 credentials (Desktop app type)
Download the credentials JSON
2. Configure the MCP
Create ~/.gmail-mcp/oauth-keys.json with your OAuth credentials.
3. Add to your MCP client
Claude Code (~/.claude/settings.json):
{
"mcpServers": {
"gmail": {
"command": "npx",
"args": ["gmail-mcp-multi"]
}
}
}4. Authenticate accounts
Once the MCP is running, use the authenticate tool:
authenticate({ alias: "work", email: "you@company.com" })
authenticate({ alias: "personal", email: "you@gmail.com" })5. Use it!
search_emails({ account: "work", query: "in:inbox is:unread" })
search_emails({ account: "personal", query: "from:mom" })Tools
All tools that interact with Gmail require an account parameter (alias or email).
Account Management
Tool | Description |
| List all configured accounts and auth status |
| Add or re-authenticate an account |
Email Operations
Tool | Description |
| Search emails using Gmail query syntax |
| Get full content of an email by ID |
| Send a new email |
| Create a draft |
| Add/remove labels, mark read/unread |
| Trash or permanently delete |
| Bulk label operations |
| Bulk delete |
Label Management
Tool | Description |
| Get all labels for an account |
| Create a new label |
| Delete a label |
Configuration
Credentials are stored in ~/.gmail-mcp/:
~/.gmail-mcp/
├── config.json # Account aliases and settings
├── oauth-keys.json # Your Google OAuth app credentials
└── accounts/
├── work/
│ └── credentials.json
└── personal/
└── credentials.jsonDevelopment
git clone https://github.com/dmorrill/gmail-mcp-multi.git
cd gmail-mcp-multi
npm install
npm run build
npm run devContributing
Contributions welcome! Please see CONTRIBUTING.md for guidelines.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/dmorrill/gmail-mcp-multi'
If you have feedback or need assistance with the MCP directory API, please join our Discord server