Open source · multi-mail MCP

Every Gmail account, in one MCP server

An MCP server for several Gmail accounts at once. It searches, reads, drafts and sends mail, and works with Claude Desktop, Claude Code and ChatGPT. Each user brings their own Google OAuth client, so no Google app verification is needed and mail goes only between your machine and Google.

  • MIT licence
  • Node.js 20+
  • stdio · Streamable HTTP
  • No delete permission

What it does

Several mailboxes, one request

One search, every mailbox

Gmail's own search syntax (from:, is:unread, newer_than:7d) on one mailbox, or on all of them with account="all". An account is named by address, by alias or by the part before the @.

Read threads and attachments

A message or a whole thread, with HTML turned into text. get_attachment returns text files and PDFs as text and images as an image; anything else is saved under ~/.multi-mail/attachments.

Replies in the right thread

reply_to_message_id puts a reply in the original conversation and fills in the recipient and subject; reply_all adds every original recipient. Save it as a draft, or send it.

Labels, if you turn them on

With add --labels for an account: mark read or unread, archive, star, file under a label, create labels. Trash and spam are refused, and there is no trash tool.

Google Calendar, if you turn it on

With add --calendar: events across every calendar you see, free slots of a given length across every calendar-enabled account, and new events on your own calendar, with nobody invited.

Drafts-only mode

Start it with --drafts-only and the send tools are not registered at all. For unattended runs, where an incoming email could carry instructions: nothing leaves until you press Send in Gmail.

Install

Your own OAuth client, then npx

You need Node.js 20 or newer. Nothing is installed: every command runs the published package through npx.

Connect each mailbox, once
# after creating your Google OAuth client (see the README)
npx -y @yybd/multi-mail-mcp add --alias work
npx -y @yybd/multi-mail-mcp add --alias home --calendar
Claude Code
claude mcp add multi-mail -s user -- npx -y @yybd/multi-mail-mcp

Each add opens a browser where you pick the Google account and approve access. First create a Desktop-app OAuth client in your own Google Cloud project, with the Gmail API enabled, and publish its consent screen: in Testing mode access expires every 7 days. The README walks through it, and through Claude Desktop's config and the ChatGPT tunnel.

Good to know

What it asks for, and where it stops

  • Two scopes by default. gmail.readonly and gmail.compose: it reads, drafts and sends, and cannot delete mail, move it to trash or change settings. Labels and the calendar each add their own scope, per account, only when asked.
  • ChatGPT needs a tunnel you run. The HTTP mode listens on 127.0.0.1 only and won't start without a token of at least 24 characters. Anyone with the full URL can read and send from your mailboxes, so treat it like a password.
  • Setup has a Google Cloud step. Every user creates their own OAuth client. That is what keeps mail between you and Google.
  • Not yet: attaching files to outgoing mail. For the rest of Workspace, such as Drive or Docs, google_workspace_mcp is the mature choice.

Writing

The article about multi-mail

  1. One MCP server for every Gmail account, in Claude and ChatGPT

    Where the built-in Gmail connectors stop, what several connected mailboxes make possible, and how multi-mail keeps its scope narrow. November 2026.

    he

More open source

From the same desk

  • telegram-notify MCP

    MCP server

    Send-only Telegram notifications from Claude to one chat fixed in configuration, with no polling.

    Project page
  • App Factory

    Claude Code skills

    42 skills that build, describe, ship and announce apps, to the App Store and Google Play and outside them.

    Project page
  • RepoGuards

    Claude Code hooks

    Refuses a blind commit or a push into a repo the session is not standing in, and shows the agent what is there.

    Project page

Contact

Questions, bugs, or help setting it up

Issues and pull requests are welcome on GitHub. Email reaches the developer directly.

support@bdtech.app