mcpField
M
multi-gmail-mcp

multi-gmail-mcp

Local
github.com/gx-55Communication19Updated 11w ago

About multi-gmail-mcp

multi-gmail-mcp is an MCP server for managing multiple Gmail accounts in Claude Desktop. It supports email search and reading, writing and organization, and stores and refreshes OAuth tokens locally.

Key features

  1. 01Connect and manage multiple Gmail accounts
  2. 02Search mail with Gmail syntax
  3. 03Read full email content
  4. 04Send, reply, and create drafts
  5. 05Manage labels, archive, and read status

Use cases

  1. 01Search across personal and work accounts
  2. 02Read an email and reply in its thread
  3. 03Send from an account or save a draft
  4. 04Organize labels and archive older messages

MCP support

It exposes tools for searching, reading, sending, and organizing email across multiple Gmail accounts to MCP clients. The server runs over stdio and opens no network port.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"gx-55-multi-gmail": {
"command": "npx",
"args": [
"-y",
"multi-gmail-mcp"
],
"env": {
"GOOGLE_CLIENT_ID": "<GOOGLE_CLIENT_ID>",
"GOOGLE_CLIENT_SECRET": "<GOOGLE_CLIENT_SECRET>"
}
}
}
}
Run commandnpx -y multi-gmail-mcp
Environment variables to set
GOOGLE_CLIENT_IDGoogle OAuth2 client ID from your Google Cloud project (alternative to ~/.gmail-mcp-oauth.json)
GOOGLE_CLIENT_SECRETSecretGoogle OAuth2 client secret from your Google Cloud project (alternative to ~/.gmail-mcp-oauth.json)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmmulti-gmail-mcp1.0.1

Tools

15

Saved tool list · updated 2w ago

This tool takes no parameters.

Details

From the project README

multi-gmail-mcp

A Model Context Protocol (MCP) server that lets Claude Desktop manage multiple Gmail accounts simultaneously. Listed on the official Anthropic MCP registry and published on npm.

demo


Features

  • Connect unlimited Gmail accounts — personal, work, side projects
  • Search any inbox using full Gmail search syntax
  • Read complete emails with MIME parsing
  • Send, reply in thread, and create drafts
  • Organize with labels: add, remove, list, archive
  • Mark as read / unread
  • Tokens stored locally in ~/.gmail-mcp-tokens.db — never committed to git
  • Auto-refreshes OAuth tokens silently

Requirements

  • Node.js >= 22.5.0
  • A Google Cloud project with the Gmail API enabled
  • Claude Desktop

Installation

npm install -g multi-gmail-mcp

This registers two global commands: gmail-mcp (the MCP server) and gmail-mcp-cli (account manager).


Google Cloud Setup

You only need to do this once.

  1. Go to console.cloud.google.com → create a project
  2. Enable the Gmail API (APIs & Services → Library)
  3. Configure the OAuth consent screen — External, add your Gmail addresses as test users
  4. Add scopes: gmail.readonly, gmail.send, gmail.modify, gmail.labels
  5. Create a Desktop app OAuth credential → download the JSON
  6. Save it to ~/.gmail-mcp-oauth.json

Alternatively, set environment variables in the Claude Desktop config (see below).


Authenticating Gmail Accounts

# Add accounts (opens browser for Google sign-in)
gmail-mcp-cli add [email protected]
gmail-mcp-cli add [email protected]

# List authenticated accounts
gmail-mcp-cli list

# Remove an account
gmail-mcp-cli remove [email protected]

Tokens are saved to ~/.gmail-mcp-tokens.db and refreshed automatically.


Claude Desktop Configuration

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "multi-gmail": {
      "command": "gmail-mcp"
    }
  }
}

If you prefer environment variables over ~/.gmail-mcp-oauth.json:

{
  "mcpServers": {
    "multi-gmail": {
      "command": "gmail-mcp",
      "env": {
        "GOOGLE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
        "GOOGLE_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Restart Claude Desktop after saving. Click the hammer icon to confirm 19 tools are loaded.


Available Tools

Account Management
ToolDescription
list_accountsList all authenticated Gmail accounts
initiate_authStart OAuth flow — returns a URL to open in browser
complete_authFinalize auth after completing Google sign-in
remove_accountRemove an account and its stored credentials
Reading Email
ToolDescription
search_emailsSearch with Gmail syntax (is:unread, from:, after:, etc.)
get_emailFetch full email content by message ID
Writing Email
ToolDescription
send_emailSend an email (supports To, CC, BCC)
reply_to_emailReply in thread, preserving References headers
create_draftSave an email as a draft
Organization
ToolDescription
list_labelsList all Gmail labels for an account
add_labelAdd one or more labels to a message
remove_labelRemove one or more labels from a message
archive_emailRemove from Inbox
mark_as_readRemove the UNREAD label
mark_as_unreadAdd the UNREAD label

Example Prompts

List all my authenticated Gmail accounts.
Search my [email protected] inbox for unread emails from this week.
Reply to that email from my personal account saying I'll be there Saturday.
Send an email from [email protected] to [email protected]
with subject "Dinner plans" and body "Are you free Saturday?"
Archive everything older than a week in my side-project inbox that's already read.
Check both my accounts for emails from GitHub and summarize them.

Security

  • ~/.gmail-mcp-oauth.json and ~/.gmail-mcp-tokens.db live in your home directory — outside the project, never committed
  • .gitignore excludes *.db, .gmail-mcp-oauth.json, and .env
  • The server runs over stdio only — no network port is opened
  • OAuth scopes are limited to the minimum required

See SECURITY.md for full details: token storage, network behavior, scope rationale, revocation steps, and how to report a vulnerability.


Registry

Listed on the official Anthropic MCP registry:

io.github.gx-55/multi-gmail-mcp
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.gx-55"

Project Structure

multi-gmail-mcp/
├── bin/
│   ├── gmail-mcp.js        # Entry point for the MCP server command
│   └── gmail-mcp-cli.js    # Entry point for the CLI command
├── src/
│   ├── server.js           # MCP server — all 19 tools
│   ├── gmail-client.js     # Gmail API wrapper
│   ├── auth.js             # OAuth2 flow with auto-refresh
│   ├── db.js               # SQLite token storage (node:sqlite)
│   └── cli.js              # Account management CLI
└── package.json

Troubleshooting

"No OAuth credentials found" Make sure ~/.gmail-mcp-oauth.json exists or set GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET in the Claude Desktop config.

"Account not found. Authenticate it first" Run gmail-mcp-cli add [email protected] before using that account in Claude.

Tools not appearing in Claude Desktop Confirm gmail-mcp is in your PATH (which gmail-mcp) and restart Claude Desktop.

Token expired errors Tokens auto-refresh if a valid refresh token is stored. If refresh fails, remove the account and re-authenticate: gmail-mcp-cli remove [email protected] && gmail-mcp-cli add [email protected].

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.