Multi Gmail Mcp

io.github.gx-55Published by GitHub account gx-55v1.0.1Updated Oct 24, 2026

Manage multiple Gmail accounts in Claude Desktop — search, send, reply, draft, and organize.

Overview

AI-generated overview

A local MCP server that lets Claude Desktop manage several Gmail accounts: search, read, send, reply, draft and organize mail.

What you can do
Manage accounts: list authenticated Gmail accounts, start and finish OAuth sign-in, remove an account and its stored credentials. Read mail: search any inbox with Gmail search syntax and fetch full message content by ID. Write mail: send, reply in thread and save drafts. Organize: list, add and remove labels, archive messages, and mark them read or unread.
When to use it
Useful when you work across several Gmail accounts (personal, work, side projects) and want an assistant to search, summarize, reply to or tidy up mail from one place.
Requirements
Runs locally over stdio via the npm package multi-gmail-mcp; needs Node.js 22.5.0 or newer and Claude Desktop. Requires a Google Cloud project with the Gmail API enabled and a Desktop app OAuth credential, saved to a local JSON file or supplied through the GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET environment variables. Each account must be authenticated once through the browser.
Before you install
Holds Google OAuth credentials and per-account tokens on disk in your home directory, and the client secret can be placed in the Claude Desktop config. Requested scopes allow reading, sending and modifying mail, so the assistant can send messages, reply, archive and change labels. Review prompts before letting it send or delete anything, and remove accounts to revoke stored tokens.

Installation

In SourceWeft

  1. Open Multi Gmail Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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

bash
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

bash
# Add accounts (opens browser for Google sign-in)gmail-mcp-cli add [email protected]gmail-mcp-cli add [email protected]
# List authenticated accountsgmail-mcp-cli list
# Remove an accountgmail-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:

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

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

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
bash
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].

Source: README.md at commit 7c28cb2

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts