gmail-mcp-server
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 | List all Gmail accounts currently connected to this server. Call this first whenever it's unclear which account a request should use, and ask the user to clarify if more than one account could match. |
| search_threadsA | Search Gmail threads using Gmail's search syntax (e.g. |
| get_threadA | Fetch a full Gmail thread by thread ID, including every message's headers and decoded body text. Use search_threads first to find the thread ID. |
| get_messageA | Fetch a single Gmail message by ID, including decoded plain-text/HTML body and attachment metadata (filenames and sizes, not the attachment contents themselves). |
| list_labelsA | List all Gmail labels (system labels like INBOX/UNREAD and user-created labels) for an account. |
| create_labelA | Create a new Gmail label. Fails with a clear message if a label with that exact name already exists. |
| label_messageA | Apply one or more existing labels to a single Gmail message. Label IDs come from list_labels. |
| label_threadA | Apply one or more existing labels to every message in a Gmail thread. Label IDs come from list_labels. |
| unlabel_messageB | Remove one or more labels from a single Gmail message. |
| unlabel_threadA | Remove one or more labels from every message in a Gmail thread. |
| create_draftA | Create a draft email in the account's Drafts folder. This does NOT send anything — it's safe to call freely, including when you're not fully sure the user wants to send yet. The user reviews and sends the draft themselves from Gmail. |
| list_draftsA | List existing drafts for an account, with basic metadata (subject, recipient, snippet). |
| send_emailA | ⚠️ IRREVERSIBLE: Sends a real email immediately on behalf of the user — there is no undo, no "are you sure" prompt from Gmail, and no draft-review step once this is called. Only call this tool after the human user has explicitly and unambiguously confirmed the exact recipient(s), subject, and body of THIS specific email in the current conversation. If there is any ambiguity about content, recipients, or intent — or if you have not shown the user the exact text you're about to send — use create_draft instead and ask the user to review and send it themselves. Never call this proactively, as part of a speculative multi-step plan, or based on inferred rather than explicitly stated intent. |
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 13 tools
Each tool targets a distinct Gmail operation (drafting, sending, labeling, searching, listing) with clear boundaries. The only similar pairs (label_message/label_thread, unlabel_message/unlabel_thread) operate on different entities, and send_email has an explicit warning to distinguish it from create_draft.
All tool names follow a consistent verb_noun pattern with underscores (create_draft, search_threads, unlabel_message, etc.), making it easy to predict the function of each tool based on its name.
13 tools is appropriate for a Gmail MCP server, covering essential operations without being overwhelming. It's well-scoped for the domain.
The set provides solid CRUD-like coverage for emails and labels, including create, read, search, label, and send. Minor gaps exist (e.g., no ability to trash/delete messages or edit drafts), but these do not severely hinder typical email workflows.