
Several Gmail accounts: search, read, draft, send, labels and Google Calendar. Own OAuth client.
Public tool metadata for what this MCP can expose to an agent.
list_accountsLists the connected accounts and their aliasesLists 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 syntaxSearches 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 namesReturns 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 conversationReturns a whole conversation
No parameter schema in public metadata yet.
list_labelsLists a mailbox's labels and foldersLists 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 itSaves 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 awaySends a new message or reply right away
No parameter schema in public metadata yet.
list_draftsLists pending draftsLists pending drafts
No parameter schema in public metadata yet.
send_draftSends one of the pending draftsSends 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/attachmentsDownloads 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 onlyAdds 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 onlyCreates 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 onlyCalendar 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 accountFree 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 outCreates 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
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
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:
dist/server.js) runs locally, for Claude Desktop and Claude Code.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.
@yybd/multi-mail-mcp