gmail-multi-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_accountsA | Multi-account Gmail (all connected accounts). List the connected Gmail accounts (alias + email). Call this when unsure which accounts exist or what to pass as "account". |
| add_accountA | Multi-account Gmail (all connected accounts). Connect a new Gmail account via OAuth: opens a browser for authorization and stores the token locally. If this times out before the user finishes, run instead in a terminal: npm run auth -- --alias (in the gmail-mcp project). |
| search_threadsA | Multi-account Gmail (all connected accounts). Search email threads in one account using full Gmail search syntax (e.g. "from:alice is:unread newer_than:7d has:attachment subject:invoice"). Returns compact thread summaries. |
| get_threadA | Multi-account Gmail (all connected accounts). Read a full email thread (all messages, bodies, attachment metadata). |
| get_messageA | Multi-account Gmail (all connected accounts). Read a single email message in full (untruncated up to ~20k chars). |
| download_attachmentA | Multi-account Gmail (all connected accounts). Download an email attachment to ~/Downloads. Get attachmentId from get_thread/get_message. |
| create_draftA | Multi-account Gmail (all connected accounts). Create a draft email (does NOT send). Supports replies via replyToMessageId. |
| list_draftsA | Multi-account Gmail (all connected accounts). List saved drafts with their subjects and recipients. |
| delete_draftA | Multi-account Gmail (all connected accounts). Delete a draft permanently (use this to discard a draft the user rejected). Does not affect sent mail. |
| send_draftA | Multi-account Gmail (all connected accounts). Send an existing draft. Sends immediately as the account's email address — only after the user approved it. |
| send_messageA | Multi-account Gmail (all connected accounts). Send an email immediately as the account's email address. Prefer create_draft unless the user has explicitly approved sending. Supports replies via replyToMessageId. |
| list_labelsA | Multi-account Gmail (all connected accounts). List all labels in one account (system + user labels). |
| create_labelC | Multi-account Gmail (all connected accounts). Create a new label. |
| update_labelB | Multi-account Gmail (all connected accounts). Rename a label. |
| delete_labelA | Multi-account Gmail (all connected accounts). Delete a label (does not delete the emails carrying it). |
| label_threadB | Multi-account Gmail (all connected accounts). Add labels to a thread. |
| unlabel_threadB | Multi-account Gmail (all connected accounts). Remove labels from a thread. |
| label_messageB | Multi-account Gmail (all connected accounts). Add labels to a single message. |
| unlabel_messageB | Multi-account Gmail (all connected accounts). Remove labels from a single message. |
| archive_threadA | Multi-account Gmail (all connected accounts). Archive a thread (remove it from the inbox; it stays searchable in All Mail). |
| trash_threadB | Multi-account Gmail (all connected accounts). Move a whole thread to Trash (recoverable for 30 days). |
| trash_messageA | Multi-account Gmail (all connected accounts). Move a single message to Trash (recoverable for 30 days). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
Every tool targets a distinct action and resource (accounts, threads, messages, drafts, labels, attachments). There is no ambiguity between similar operations like trash_thread vs trash_message or label_thread vs label_message, as the descriptions clearly differentiate the scope.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., create_draft, list_labels, send_message). The verbs are clear and uniform, making the tool set predictable for an agent.
With 22 tools, the server covers the core Gmail API surface comprehensively, including account management. While this is above the typical 3-15 range for a well-scoped server, each tool serves a distinct purpose and the count is justified by the multi-account complexity.
The tool set covers CRUD operations for threads, messages, drafts, and labels, plus search, attachments, and account management. Minor gaps exist (e.g., no explicit mark-as-read or spam tools), but these are handled indirectly through labeling and the core workflows are well-supported.