Gmail MCP Server
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). Required for remote server connection | |
| CLIENT_SECRET | No | Google API client secret (found in GMAIL_OAUTH_PATH). Required for remote server connection | |
| REFRESH_TOKEN | No | OAuth refresh token (found in GMAIL_CREDENTIALS_PATH). Required for remote server connection | |
| 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 |
| TELEMETRY_ENABLED | No | Enable telemetry | true |
| 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_forwardingA | Gets auto-forwarding settings |
| get_imapB | Gets IMAP settings |
| get_languageB | Gets language settings |
| get_popB | 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_delegatesA | Lists the delegates for the specified account |
| create_filterD | Creates a filter |
| delete_filterB | Deletes a filter |
| get_filterC | Gets a filter |
| list_filtersA | 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_profileA | 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
Every tool has a clearly distinct purpose targeting specific Gmail resources and actions. The tools are well-organized by resource type (messages, threads, labels, delegates, etc.) with no ambiguous overlaps. For example, delete_message vs. trash_message have clear distinctions in permanent vs. temporary deletion.
The tool names follow a perfectly consistent verb_noun pattern throughout (e.g., create_draft, delete_label, get_profile, update_vacation). All tools use snake_case with clear action verbs followed by specific nouns, making the naming highly predictable and readable.
With 64 tools, this is an extremely large set that feels overwhelming for a single server. While Gmail has many features, this count suggests over-fragmentation of operations that could have been grouped more efficiently. The number exceeds typical well-scoped MCP servers (3-15 tools) by a significant margin.
The tool surface provides comprehensive coverage of Gmail's functionality including message/thread management, label operations, delegation, filters, forwarding, send-as aliases, S/MIME configuration, settings management, and mailbox watching. There are no obvious gaps for core Gmail workflows.