Skip to main content
Glama
dmorrill

gmail-mcp-multi

by dmorrill

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-multi

Or run directly with npx:

npx gmail-mcp-multi

Quick Start

1. Set up Google Cloud OAuth

You'll need OAuth credentials from Google Cloud Console:

  1. Go to Google Cloud Console

  2. Create a new project (or use existing)

  3. Enable the Gmail API

  4. Create OAuth 2.0 credentials (Desktop app type)

  5. 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_accounts

List all configured accounts and auth status

authenticate

Add or re-authenticate an account

Email Operations

Tool

Description

search_emails

Search emails using Gmail query syntax

read_email

Get full content of an email by ID

send_email

Send a new email

draft_email

Create a draft

modify_email

Add/remove labels, mark read/unread

delete_email

Trash or permanently delete

batch_modify_emails

Bulk label operations

batch_delete_emails

Bulk delete

Label Management

Tool

Description

list_labels

Get all labels for an account

create_label

Create a new label

delete_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.json

Development

git clone https://github.com/dmorrill/gmail-mcp-multi.git
cd gmail-mcp-multi
npm install
npm run build
npm run dev

Contributing

Contributions welcome! Please see CONTRIBUTING.md for guidelines.

License

MIT

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Issues opened vs closed

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