Gmail MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Port for Streamable HTTP transport method | 3000 |
| CLIENT_ID | No | Google API client ID (found in GMAIL_OAUTH_PATH) | |
| CLIENT_SECRET | No | Google API client secret (found in GMAIL_OAUTH_PATH) | |
| REFRESH_TOKEN | No | OAuth refresh token (found in GMAIL_CREDENTIALS_PATH) | |
| MCP_CONFIG_DIR | No | Directory for storing configuration files | ~/.gmail-mcp |
| AUTH_SERVER_PORT | No | Port for the temporary OAuth authentication server | 3000 |
| GMAIL_OAUTH_PATH | No | Path to the Google API Client file | MCP_CONFIG_DIR/gcp-oauth.keys.json |
| GMAIL_CREDENTIALS_PATH | No | Path to the user credentials file | MCP_CONFIG_DIR/credentials.json |
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
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_draftB | Create a draft email in Gmail. Note the mechanics of the raw parameter. |
| delete_draftC | Delete a draft |
| get_draftC | Get a specific draft by ID |
| list_draftsC | List drafts in the user's mailbox |
| send_draftC | Send an existing draft |
| create_labelC | Create a new label |
| delete_labelC | Delete a label |
| get_labelA | Get a specific label by ID |
| list_labelsB | List all labels in the user's mailbox |
| patch_labelB | Patch an existing label (partial update) |
| update_labelC | Update an existing label |
| batch_delete_messagesB | Delete multiple messages |
| batch_modify_messagesB | Modify the labels on multiple messages |
| delete_messageA | Immediately and permanently delete a message |
| get_messageA | Get a specific message by ID with format options |
| list_messagesC | List messages in the user's mailbox with optional filtering |
| modify_messageB | Modify the labels on a message |
| send_messageC | Send an email message to specified recipients. Note the mechanics of the raw parameter. |
| trash_messageA | Move a message to the trash |
| untrash_messageB | Remove a message from the trash |
| get_attachmentC | Get a message attachment |
| delete_threadB | Delete a thread |
| get_threadB | Get a specific thread by ID |
| list_threadsB | List threads in the user's mailbox |
| modify_threadB | Modify the labels applied to a thread |
| trash_threadB | Move a thread to the trash |
| untrash_threadA | Remove a thread from the trash |
| get_auto_forwardingC | Gets auto-forwarding settings |
| get_imapC | Gets IMAP settings |
| get_languageC | Gets language settings |
| get_popC | Gets POP settings |
| get_vacationB | Get vacation responder settings |
| update_auto_forwardingC | Updates automatic forwarding settings |
| update_imapC | Updates IMAP settings |
| update_languageC | Updates language settings |
| update_popC | Updates POP settings |
| update_vacationC | Update vacation responder settings |
| add_delegateC | Adds a delegate to the specified account |
| remove_delegateC | Removes the specified delegate |
| get_delegateA | Gets the specified delegate |
| list_delegatesB | Lists the delegates for the specified account |
| create_filterD | Creates a filter |
| delete_filterB | Deletes a filter |
| get_filterC | Gets a filter |
| list_filtersB | Lists the message filters of a Gmail user |
| create_forwarding_addressB | Creates a forwarding address |
| delete_forwarding_addressB | Deletes the specified forwarding address |
| get_forwarding_addressC | Gets the specified forwarding address |
| list_forwarding_addressesB | Lists the forwarding addresses for the specified account |
| create_send_asB | Creates a custom send-as alias |
| delete_send_asB | Deletes the specified send-as alias |
| get_send_asA | Gets the specified send-as alias |
| list_send_asB | Lists the send-as aliases for the specified account |
| patch_send_asC | Patches the specified send-as alias |
| update_send_asC | Updates a send-as alias |
| verify_send_asB | Sends a verification email to the specified send-as alias |
| delete_smime_infoB | Deletes the specified S/MIME config for the specified send-as alias |
| get_smime_infoB | Gets the specified S/MIME config for the specified send-as alias |
| insert_smime_infoB | Insert (upload) the given S/MIME config for the specified send-as alias |
| list_smime_infoB | Lists S/MIME configs for the specified send-as alias |
| set_default_smime_infoC | Sets the default S/MIME config for the specified send-as alias |
| get_profileB | Get the current user's Gmail profile |
| watch_mailboxC | Watch for changes to the user's mailbox |
| stop_mail_watchB | Stop receiving push notifications for the given user mailbox |
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 64 tools
Most tools have distinct purposes targeting specific Gmail resources (e.g., messages, drafts, labels, filters), with clear action differentiation. However, some overlap exists between batch_modify_messages and modify_message, and between trash/untrash operations for messages and threads, which could cause minor confusion.
Tool names follow a highly consistent verb_noun pattern throughout, such as create_draft, delete_label, get_message, update_vacation, and list_threads. This predictability makes it easy for agents to understand and select tools based on their naming conventions.
With 64 tools, the count is excessive for a typical MCP server, making it heavy and potentially overwhelming for agents. While Gmail is a complex domain, this many tools suggests over-fragmentation of operations that could have been consolidated into fewer, more versatile tools.
The tool set provides comprehensive coverage of Gmail's domain, including CRUD operations for messages, threads, drafts, labels, filters, delegates, and settings like auto-forwarding and vacation responders. No obvious gaps are present, supporting a wide range of email management workflows.