Skip to main content
Glama
japan08

multi-gmail-mcp

by japan08

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ACCOUNTS_DIRNoAbsolute or config-home-relative path to token files.
MULTI_GMAIL_MCP_HOMENoBase directory for credentials, tokens, and local data. Default: ~/.multi-gmail-mcp
FOLLOWUP_REMINDERS_PATHNoAbsolute or config-home-relative reminder store file path.
GOOGLE_CREDENTIALS_PATHNoAbsolute or config-home-relative path to OAuth credentials JSON file.
GMAIL_REVIEW_MARKDOWN_DIRNoAbsolute or config-home-relative inbox export directory.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
multi_gmail_helpA

Shows setup and the recommended inbox workflow: fetch mode=list, triage metadata, get_thread one thread at a time, draft, send after approval.

helpA

Shows setup and the recommended inbox workflow: fetch mode=list, triage metadata, get_thread one thread at a time, draft, send after approval.

multi_gmail_connectA

Start Gmail login with Connect you@example.com personal or Connect you@example.com work. Browser opens for approval. Then run connect_finish immediately to finish setup.

connectA

Start Gmail login with Connect you@example.com personal or Connect you@example.com work. Browser opens for approval. Then run connect_finish immediately to finish setup.

multi_gmail_connect_finishC

Finish Gmail login after browser approval. Waits if needed; no manual code copy required. After success, run set_signer, then fetch.

connect_finishC

Finish Gmail login after browser approval. Waits if needed; no manual code copy required. After success, run set_signer, then fetch.

multi_gmail_setup_labelsA

Calls the Gmail API to create the configured user labels (FOLLOW_UP_GMAIL_LABEL_*, GMAIL_REVIEW_GMAIL_LABEL_*) so they appear under Labels in Gmail—no manual label setup. Use this if labels did not appear after connect or fetch (e.g. old OAuth token missing gmail.modify — re-run npm run auth -- --alias ... then reconnect). Pass accountAlias / chatScope like other Gmail tools.

setup_labelsA

Calls the Gmail API to create the configured user labels (FOLLOW_UP_GMAIL_LABEL_*, GMAIL_REVIEW_GMAIL_LABEL_*) so they appear under Labels in Gmail—no manual label setup. Use this if labels did not appear after connect or fetch (e.g. old OAuth token missing gmail.modify — re-run npm run auth -- --alias ... then reconnect). Pass accountAlias / chatScope like other Gmail tools.

multi_gmail_accountsA

Returns token file aliases (strings). Pass one as accountAlias on other tools when the MCP client shares one default session across chats.

accountsA

Returns token file aliases (strings). Pass one as accountAlias on other tools when the MCP client shares one default session across chats.

multi_gmail_set_signerB

Saves the display name used on reply drafts for this session, and optionally the Gmail follow-up label name. Call after login when the user says how they want to sign. Advanced: chatScope / accountAlias only if README multi-account or shared-session section applies.

set_signerA

Saves the display name used on reply drafts for this session, and optionally the Gmail follow-up label name. Call after login when the user says how they want to sign. Advanced: chatScope / accountAlias only if README multi-account or shared-session section applies.

multi_gmail_set_modeB

Choose standard (default) or compact response mode for this chat scope.

set_modeA

Choose standard (default) or compact response mode for this chat scope.

multi_gmail_statusB

Shows account connection, signer name, last inbox batch, due follow-ups, and local paths. Use this first when unsure what to do next.

statusB

Shows account connection, signer name, last inbox batch, due follow-ups, and local paths. Use this first when unsure what to do next.

multi_gmail_diagnosticsB

Verifies credentials path, accounts storage, reminders store, and active account binding, then suggests the next action.

diagnosticsC

Verifies credentials path, accounts storage, reminders store, and active account binding, then suggests the next action.

multi_gmail_fetchA

Recommended: mode=list (default) returns lightweight metadata for triage (subject, snippet, threadId). Snippets are not full email bodies — call get_thread(threadId) for each thread the user should read or reply to, and present message.text verbatim (do not summarize). Never load multiple full threads in one context. queryMode=inbox (default) prepends inbox review filters (in:inbox, exclude follow-up label). queryMode=raw passes query to Gmail unchanged — use for sent mail, archives, all-mail, and date-filtered analysis (e.g. in:sent after:2026/01/01). Legacy mode=full batch-loads bodies and auto-drafts every thread (token-heavy; avoid for normal inbox review). Nothing is sent automatically.

fetchA

Recommended: mode=list (default) returns lightweight metadata for triage (subject, snippet, threadId). Snippets are not full email bodies — call get_thread(threadId) for each thread the user should read or reply to, and present message.text verbatim (do not summarize). Never load multiple full threads in one context. queryMode=inbox (default) prepends inbox review filters (in:inbox, exclude follow-up label). queryMode=raw passes query to Gmail unchanged — use for sent mail, archives, all-mail, and date-filtered analysis (e.g. in:sent after:2026/01/01). Legacy mode=full batch-loads bodies and auto-drafts every thread (token-heavy; avoid for normal inbox review). Nothing is sent automatically.

multi_gmail_get_threadA

Load one Gmail thread at a time (use after fetch mode=list). format=full (default) returns plain-text message bodies. Use stripped=false to read the full email; stripped=true removes quoted reply history when drafting in multi-message threads. format=latest trims to first + latestN messages. Present message.text verbatim to the user — do not summarize. Call separately per thread.

get_threadA

Load one Gmail thread at a time (use after fetch mode=list). format=full (default) returns plain-text message bodies. Use stripped=false to read the full email; stripped=true removes quoted reply history when drafting in multi-message threads. format=latest trims to first + latestN messages. Present message.text verbatim to the user — do not summarize. Call separately per thread.

multi_gmail_archiveA

Archive a Gmail thread for the active account by removing the INBOX label. Use threadId from fetch, followup_due, or get_thread.

archiveA

Archive a Gmail thread for the active account by removing the INBOX label. Use threadId from fetch, followup_due, or get_thread.

multi_gmail_sendA

Send one approved reply. Requires messageId (marks source read, threads send). Provide body; set format to text/html for HTML (default text/plain). Legacy html still supported. quoteOriginal (default true) appends Gmail-style quoted parent history below the new body. appendSignature (default true) appends the account Gmail signature from Settings above the quote block. For new outbound / campaigns use send_new instead. Never run without explicit approval.

sendA

Send one approved reply. Requires messageId (marks source read, threads send). Provide body; set format to text/html for HTML (default text/plain). Legacy html still supported. quoteOriginal (default true) appends Gmail-style quoted parent history below the new body. appendSignature (default true) appends the account Gmail signature from Settings above the quote block. For new outbound / campaigns use send_new instead. Never run without explicit approval.

multi_gmail_send_newA

Send one approved new email. Use for campaigns and cold outreach — no messageId. Optional threadId from a prior send to add the next message in the same Gmail thread (campaign email 2+). Requires to and subject; German/Unicode subjects are RFC 2047–encoded automatically. Provide body with format text/html for HTML campaigns (default text/plain). Legacy htmlBody still supported. Never run without explicit approval.

send_newA

Send one approved new email. Use for campaigns and cold outreach — no messageId. Optional threadId from a prior send to add the next message in the same Gmail thread (campaign email 2+). Requires to and subject; German/Unicode subjects are RFC 2047–encoded automatically. Provide body with format text/html for HTML campaigns (default text/plain). Legacy htmlBody still supported. Never run without explicit approval.

multi_gmail_set_draftC

Save/update a Gmail draft reply for a thread without sending. Requires messageId, to, subject, and body; use format text/html for HTML drafts (default text/plain). quoteOriginal (default true) appends Gmail-style quoted parent history so drafts show the collapsible history expander in Gmail. appendSignature (default true) appends the account Gmail signature from Settings above the quote block.

set_draftB

Save/update a Gmail draft reply for a thread without sending. Requires messageId, to, subject, and body; use format text/html for HTML drafts (default text/plain). quoteOriginal (default true) appends Gmail-style quoted parent history so drafts show the collapsible history expander in Gmail. appendSignature (default true) appends the account Gmail signature from Settings above the quote block.

multi_gmail_followup_triggerB

Create follow-up reminders using daysList or pattern, or update the existing open follow-up plan for the same thread. For daysList: [1, 3]: follow-up 1 is due in 1 day from now; follow-up 2 is due 3 days after follow-up 1 is sent (not 3 days from today). Each value after the first is always an interval after the previous follow-up send. Example: 1 day, then 3 days after the first — use [1, 3], not [1, 2].

followup_triggerB

Create follow-up reminders using daysList or pattern, or update the existing open follow-up plan for the same thread. For daysList: [1, 3]: follow-up 1 is due in 1 day from now; follow-up 2 is due 3 days after follow-up 1 is sent (not 3 days from today). Each value after the first is always an interval after the previous follow-up send. Example: 1 day, then 3 days after the first — use [1, 3], not [1, 2].

multi_gmail_followup_dueC

List reminders due now for the active account and refresh thread state before review. Returns the refreshed full thread context for each due reminder. Always present the full draft to the user for proof-reading before any send action. Never call followup_send without explicit user approval.

followup_dueA

List reminders due now for the active account and refresh thread state before review. Returns the refreshed full thread context for each due reminder. Always present the full draft to the user for proof-reading before any send action. Never call followup_send without explicit user approval.

multi_gmail_followup_sendA

Send one approved follow-up reminder. Re-checks the thread first and blocks send if customer already replied. Optional overrides: body, format (text/plain default, text/html for HTML), quoteOriginal (default true), appendSignature (default true). IMPORTANT: NEVER call without explicit user approval after showing the draft.

followup_sendA

Send one approved follow-up reminder. Re-checks the thread first and blocks send if customer already replied. Optional overrides: body, format (text/plain default, text/html for HTML), quoteOriginal (default true), appendSignature (default true). IMPORTANT: NEVER call without explicit user approval after showing the draft.

multi_gmail_followup_cleanupA

Remove follow-up reminder(s) from the local store. Pass reminderIds, messageId, messageHeaderId, sourceThreadId, or followUpChainId. Use cancelChain: true with reminderIds to drop an entire chained sequence. Use deleteAll: true with confirm: true to clear all reminders for the account. Optionally removes the Gmail follow-up label when no reminders remain for a thread.

followup_cleanupA

Remove follow-up reminder(s) from the local store. Pass reminderIds, messageId, messageHeaderId, sourceThreadId, or followUpChainId. Use cancelChain: true with reminderIds to drop an entire chained sequence. Use deleteAll: true with confirm: true to clear all reminders for the account. Optionally removes the Gmail follow-up label when no reminders remain for a thread.

multi_gmail_fetch_draftsA

List drafts saved in Gmail Drafts folder. Separate from inbox. Use to review unsent drafts.

fetch_draftsA

List drafts saved in Gmail Drafts folder. Separate from inbox. Use to review unsent drafts.

multi_gmail_fetch_sentA

Deprecated — prefer multi_gmail_fetch with queryMode=raw and a Gmail query such as in:sent after:2026/01/01 before:2026/04/01 for filtered sent-mail analysis. This tool still lists the latest messages in Gmail Sent without date/query filters.

fetch_sentB

Deprecated — prefer multi_gmail_fetch with queryMode=raw and a Gmail query such as in:sent after:2026/01/01 before:2026/04/01 for filtered sent-mail analysis. This tool still lists the latest messages in Gmail Sent without date/query filters.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/japan08/MCP-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server