
multi-mail
Several Gmail accounts: search, read, draft, send, labels and Google Calendar. Own OAuth client.
- tools
- 17
- transport
- STDIO
- env vars
- 4
- last updated
- Nov 7, 2026
Tools
17 toolsPublic tool metadata for what this MCP can expose to an agent.
list_accountsLists the connected accounts and their aliases
Lists the connected accounts and their aliases
No parameter schema in public metadata yet.
search_emailsSearches one mailbox, or all of them with account="all", using Gmail search syntax
Searches one mailbox, or all of them with account="all", using Gmail search syntax
No parameter schema in public metadata yet.
read_emailReturns a full message: headers, the body as text (HTML is converted), and attachment names
Returns a full message: headers, the body as text (HTML is converted), and attachment names
No parameter schema in public metadata yet.
read_threadReturns a whole conversation
Returns a whole conversation
No parameter schema in public metadata yet.
list_labelsLists a mailbox's labels and folders
Lists a mailbox's labels and folders
No parameter schema in public metadata yet.
create_draftSaves a new message or reply as a draft, without sending it
Saves a new message or reply as a draft, without sending it
No parameter schema in public metadata yet.
send_emailSends a new message or reply right away
Sends a new message or reply right away
No parameter schema in public metadata yet.
list_draftsLists pending drafts
Lists pending drafts
No parameter schema in public metadata yet.
send_draftSends one of the pending drafts
Sends one of the pending drafts
No parameter schema in public metadata yet.
get_attachmentDownloads one attachment: text and PDFs come back as text, images as an image, anything else (and scanned PDFs) is saved under ~/.multi-mail/attachments
Downloads one attachment: text and PDFs come back as text, images as an image, anything else (and scanned PDFs) is saved under ~/.multi-mail/attachments
No parameter schema in public metadata yet.
modify_labelsAdds or removes labels on messages or a thread: mark read or unread, archive, star, file under a label. Accounts connected with --labels only
Adds or removes labels on messages or a thread: mark read or unread, archive, star, file under a label. Accounts connected with --labels only
No parameter schema in public metadata yet.
create_labelCreates a label (Projects/Acme nests). Accounts connected with --labels only
Creates a label (Projects/Acme nests). Accounts connected with --labels only
No parameter schema in public metadata yet.
list_eventsCalendar events between two times, across every calendar you see in Google Calendar, for one account or all of them. Accounts connected with --calendar only
Calendar events between two times, across every calendar you see in Google Calendar, for one account or all of them. Accounts connected with --calendar only
No parameter schema in public metadata yet.
find_free_timeFree slots of a given length inside working hours, checked against every calendar of every calendar-enabled account
Free slots of a given length inside working hours, checked against every calendar of every calendar-enabled account
No parameter schema in public metadata yet.
create_eventCreates an event on your own calendar. Nobody is invited and no email goes out
Creates an event on your own calendar. Nobody is invited and no email goes out
No parameter schema in public metadata yet.
searchSearches every mailbox, in the shape ChatGPT expects (connectors, deep research)
Searches every mailbox, in the shape ChatGPT expects (connectors, deep research)
No parameter schema in public metadata yet.
fetchFetches one message, in the shape ChatGPT expects (connectors, deep research)
Fetches one message, in the shape ChatGPT expects (connectors, deep research)
No parameter schema in public metadata yet.
Sponsors
Configuration
MULTI_MAIL_DEFAULTAccount used when a tool call names none (email or alias)
MULTI_MAIL_HOMEFolder holding credentials.json and account tokens (default ~/.multi-mail)
MULTI_MAIL_SENDSet to off for drafts-only mode: no tool can send mail
MULTI_MAIL_TZIANA time zone for calendar tools, overriding each calendar's own setting
Readme
English · עברית
multi-mail MCP
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.
It has two transports:
- stdio (
dist/server.js) runs locally, for Claude Desktop and Claude Code. - Streamable HTTP (
dist/http.js) is for ChatGPT, or any client that connects by URL. A token is required.
Each user brings their own Google OAuth client. Because of that, no Google app verification is needed and nothing passes through a third party. Mail goes only between your machine and Google.
The story behind it, with the comparison and examples: One MCP server for every Gmail account, in Claude and ChatGPT.
Tools
Details
- Repository
- github.com/yybd/multi-mail-mcp
- Website
- github.com/yybd/multi-mail-mcp#readme
- Categories
- Communication & Messaging, Search & Web Crawling, Productivity & Office
- Package
@yybd/multi-mail-mcp- Transport
- STDIO
- Registry
- MCP registry, active