multi-account-gmail-mcp
Provides tools for managing multiple Gmail accounts, including searching, reading messages and threads, managing labels, creating drafts, and fetching attachments.
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., "@multi-account-gmail-mcpsearch my work account for unread emails from Alice"
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.
Multi-Account Gmail MCP
An experimental v0.1.0, local-first TypeScript MCP server that keeps multiple Gmail OAuth grants separate and requires an explicit account alias for drafts and mailbox changes.
This project is intended for one person running it on their own computer. Hosted or multi-user deployment is outside the v0.1.0 security model.
Architecture
flowchart TD
C["Codex or MCP client"] --> S["Multi-Account Gmail MCP"]
subgraph L["Local trust boundary"]
S --> R["Account router"]
R --> A1["personal"]
R --> A2["work"]
S --> G["Gmail service"]
S --> V["Credential-store interface"]
V --> K["OS credential vault"]
V -. explicit fallback .-> E["AES-256-GCM local vault"]
G --> P["Safety policy"]
end
A1 --> G
A2 --> G
K --> G
E --> G
P --> API["Gmail API"]Every operation resolves one account record before its credential is loaded. Stored grants are keyed by a stable hash of the Google-verified Gmail address; aliases never select credentials directly.
Related MCP server: gmail-mcp-local
Setup
Create your own Google Cloud project, enable the Gmail API, configure an OAuth consent screen, and create your own Desktop app OAuth client. Never reuse credentials supplied by another user or repository. Add every Gmail address you will connect as a test user while the consent screen is in testing mode.
Run
npm install, thennpm run setup:local. This creates an ignored.envwith a fresh encryption key. Add your own OAuth client ID and client secret to its first two lines, or runnpm run setup:google -- /path/to/your-downloaded-client-secret.json. Do not commit.envor downloaded client-secret JSON.Run
npm run build, thennpm start.Ask the MCP client to call
start_account_authorizationwith an alias such aspersonal. Open the returned URL and finish Google consent.Repeat with another alias. Use
set_default_accountfor read-only operations; drafts and mutations always requireaccountexplicitly.
By default, the server uses stdio for MCP and listens only on 127.0.0.1 for OAuth callbacks. Set GMAIL_MCP_TRANSPORT=http for a local Streamable HTTP endpoint at /mcp.
Codex configuration
[mcp_servers.multi-account-gmail]
command = "node"
args = ["--env-file=/absolute/path/to/multi-account-gmail-mcp/.env", "/absolute/path/to/multi-account-gmail-mcp/dist/index.js"]Restart Codex after changing MCP configuration.
Tools
Area | Tools | Status |
Accounts |
| Implemented |
Standard retrieval |
| Implemented |
Mail reads |
| Implemented |
Attachments |
| Implemented; fetch returns base64 for local materialization |
Organization |
| Implemented; covers archive and read state through system labels |
Drafts |
| Implemented |
Direct send/reply/forward | — | Intentionally deferred until approval and confirmation UX is validated |
Trash/bulk destructive changes | — | Intentionally deferred |
Development
npm install
npm run check
npm run secret-scanSee SECURITY.md, docs/THREAT_MODEL.md, and docs/PRIVACY.md.
Current limitations
v0.1.0 is experimental, single-user, and local-first; it is not a hosted or multi-tenant service.
Gmail OAuth apps in testing mode and sensitive scopes are subject to Google limitations and verification rules.
HTML-only mail falls back to decoded source text; rich HTML sanitization is not included.
Attachments are returned as base64 because local MCP hosts differ in file-reference support.
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.
Related MCP Servers
- FlicenseAqualityCmaintenanceLocal-first MCP server for agents that need to work across multiple Gmail and Microsoft 365 accounts without cloud token storage.6
- AlicenseAqualityAmaintenanceLocal-first Gmail MCP server using PKCE + loopback OAuth flow that stores refresh tokens in the OS keychain, enabling secure read/write Gmail access via MCP tools without tokens leaving the device.20MIT
- Flicense-qualityCmaintenanceEnables interacting with multiple Gmail accounts through a single MCP server, supporting search, labels, drafts, and thread management with per-account OAuth.
- Flicense-qualityCmaintenanceMulti-account Gmail MCP server for reading threads, managing labels, and creating drafts across multiple Gmail accounts.
Related MCP Connectors
Read, search, send, organize, draft and schedule email across your inboxes from any MCP client.
Self-hosted federated MCP gateway: one OAuth 2.1 MCP server in front of N apps, user-level scopes.
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/zack-bolich/multi-account-gmail-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server