gmail-multiinstall walkthrough

Walkthrough · illustrative mockups

Three ways from your repo
to two inboxes in Claude

Every path starts on this GitHub repo and ends the same place: someone typing “what's unread in both my inboxes?” and getting both. What changes is how much of the setup you do yourself.

Path A Planned

One-click

Download one file, drag it onto Claude Desktop, sign in to Google in chat. No terminal, no Google Cloud.

Path B Planned

One-click, own Google keys

Same install, but they create their own Google Cloud app first and hand the installer its key file.

Path C Available now

From source

Clone, npm install, run the login script in Terminal, register with Claude Code or Desktop. The developer path — and the one that works today.

Side by side

Same result, three amounts of work

A · One-clickB · Own Google keysC · From source
Who it's forAnyone with Claude DesktopPrivacy-minded users, or anyone past your capDevelopers and Claude Code users
Time~3 min~25 min (20 is Google Cloud)~45 min
TerminalNeverNeverYes — clone, install, auth, register
Google CloudNoYes, one timeYes, one time
Whose OAuth appThe maintainer's, bundled in the fileTheirsTheirs
User cap100 total, shared across everyone on the maintainer's appNoneNone
ExistsPlanned · v1.0Planned · v1.0Today
github.com/DavidOloyede/gmail-multi-mcp/releases
DavidOloyede /gmail-multi-mcpPublic
v1.0.0 — One-click installLatest
Drag the .mcpb onto Claude Desktop, then say “connect my Gmail” in a chat.
Assets3
gmail-multi.mcpbExtension bundle
Source code (zip)
Source code (tar.gz)
Claude
+ New chatProjectsRecents
How can I help you today?
Drop to install extension
gmail-multi.mcpb
MCPB
gmail-multi.mcpb
Claude
New chat
Connect my work Gmail
gmail-multi wants to use gmail_connect_account
{ "account": "work" }
DenyAllow onceAlways allow
Open this link and sign in with the Gmail account you want saved as work:
Sign in with Google → connect “work”
I'll confirm here once Google sends you back.
accounts.google.com/o/oauth2/v2/auth?client_id=…
Choose an account
to continue to gmail-multi
P
Personal
you.personal@gmail.com
W
Work
you.work@gmail.com
+
Use another account
accounts.google.com/signin/oauth/warning
⚠ Google hasn't verified this app

The app is requesting access to sensitive info in your Google Account. Until the developer verifies this app with Google, you shouldn't use it.

AdvancedBack to safety

Continue only if you understand the risks and trust the developer.

Go to gmail-multi (unsafe)
accounts.google.com/signin/oauth/consent
gmail-multi wants access to your Google Account
Wyou.work@gmail.com
✓Read your email messages and settings
Make sure you trust gmail-multi. You can remove access any time in your Google Account.
CancelContinue
✓
Connected
you.work@gmail.com is saved as work. You can close this tab.
served by gmail-multi at 127.0.0.1:53682/oauth2callback
Connect my work Gmail
✓ Connected work → you.work@gmail.com
Now connect my personal Gmail
… same four screens, choosing the personal address …
✓ Connected personal → you.personal@gmail.com
What's unread in both inboxes this week?
gmail_search · account: "work" · is:unread newer_than:7d
gmail_search · account: "personal" · is:unread newer_than:7d
Work — 3 unread, one needs a reply today.
Personal — 7 unread, mostly promotions; one from your landlord.
(example output)
console.cloud.google.com/projectcreate
New Project
Project name *
gmail-mcp
Project ID: gmail-mcp-4xx01. It cannot be changed later.
Location
No organization
CreateCancel
console.cloud.google.com/apis/library/gmail.googleapis.com
M
Gmail API
Google Enterprise API

The Gmail API lets you view and manage Gmail mailbox data like threads, messages, and labels.

EnableTry this API
✓ API enabled
console.cloud.google.com/auth/audience
Audience
User typeExternal
Publishing statusTestingIn production
Publish app
console.cloud.google.com/auth/scopes
Update selected scopes
✓…/auth/gmail.readonlyRestricted
…/auth/gmail.send (v0.2)Restricted
…/auth/gmail.modifyRestricted
Update
console.cloud.google.com/auth/clients/create
Create OAuth client ID
Application type *
Desktop app▾
Name *
gmail-mcp-desktop
Create
Claude
github.com/DavidOloyede/gmail-multi-mcp
DavidOloyede /gmail-multi-mcpPublic
main · 6 files<> Code ▾
📁 srcconfig.js · auth.js · gmail-client.js · index.js
manifest.json
package.json
README.md
gmail-multi
Give Claude more than one Gmail account. Self-hosted MCP server, per-account OAuth.
Clone · HTTPS
https://github.com/DavidOloyede/gmail-multi-mcp.git
⧉
Download ZIP
Terminal — zsh
~ % git clone https://github.com/DavidOloyede/gmail-multi-mcp.git ~/gmail-mcp-server
Cloning into '/Users/you/gmail-mcp-server'...
~ % cd ~/gmail-mcp-server
gmail-mcp-server % npm install
added … packages, and audited … packages in 4s
found 0 vulnerabilities
gmail-mcp-server % node --version
v22.x
gmail-mcp-server % ▍
B1
New project
B2
Enable Gmail API
B3
External + Publish
B4
Two scopes
B5
Desktop client JSON
Terminal — zsh
~ % mkdir -p ~/.gmail-mcp && chmod 700 ~/.gmail-mcp
~ % mv ~/Downloads/client_secret_*.json ~/.gmail-mcp/credentials.json
~ % chmod 600 ~/.gmail-mcp/credentials.json
~ % ls -la ~/.gmail-mcp
drwx------  you  staff   .
-rw-------  you  staff   credentials.json
Terminal — node src/auth.js work
gmail-mcp-server % node src/auth.js work

Authorizing "work"

1. Open this URL (use an incognito window for the 2nd account):

https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&scope=…

2. You will hit "Google hasn't verified this app" — click Advanced → Continue.

Waiting for you to finish in the browser...
  ↳ browser: choose account → Advanced → Continue   (screens A5–A7)
Saved token to ~/.gmail-mcp/token-work.json (chmod 600).
gmail-mcp-server % node src/auth.js personal   # incognito this time
Option 1 · Claude Code
gmail-mcp-server % claude mcp add --scope user gmail-multi -- node "$(pwd)/src/index.js"
Added stdio MCP server gmail-multi with command: node /Users/you/gmail-mcp-server/src/index.js to user config
Option 2 · Claude Desktop → Settings → Extensions → Advanced settings
Extension Developer
Install ExtensionInstall Unpacked ExtensionOpen Extensions Folder
Settings → Connectors → Gmail (built-in)
Tool permissions
Choose when Claude is allowed to use these tools.
Get email message — denied✓✋⊘
Get email thread✓✋⊘
List labels — denied✓✋⊘
Search email threads — denied✓✋⊘
Create draft email — denied✓✋⊘
Terminal — claude
> /mcp
  gmail-multi   ✔ connected   4 tools
    gmail_search · gmail_get_message · gmail_list_labels · gmail_create_draft

> what's unread in both inboxes this week?

⏺ gmail-multi · gmail_search  account: "work"      is:unread newer_than:7d
⏺ gmail-multi · gmail_search  account: "personal"  is:unread newer_than:7d

Work — 3 unread, one needs a reply today.
Personal — 7 unread, mostly promotions; one from your landlord.
(example output)

Where this is going

Path C today. One-click next.

VersionWhat it addsInstall pathStatus
v0.1Search, read and list labels across named Gmail accounts — two by default, more by editing one file. Drafting needs one extra scope.C · from sourceAvailable
v0.2Send mail from a chosen account; account list moves from code into a config fileC · from sourcePlanned
v0.3Reply, forward, labels, trash, spam — parity with Claude's built-in Gmail toolsC · from sourcePlanned
v1.0Sign in from chat instead of Terminal; packaged as a single .mcpb fileA and BPlanned

Screens in this walkthrough are illustrative mockups of Google, GitHub and Claude Desktop, not screen captures. Wording on the real screens may differ.

Arrow keys to step · each screen replays its clicks when it opens