Gmail MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GMAIL_CLIENT_ID | Yes | OAuth 2.0 Client ID from a Google Cloud OAuth Desktop app client. | |
| GMAIL_ACCESS_LEVEL | No | Controls what the server is allowed to do. One of READONLY, BASIC, or FULL. READONLY is the default and only allows reading/searching; BASIC adds drafts; FULL adds sending and organizing mail. | READONLY |
| GMAIL_CLIENT_SECRET | Yes | OAuth 2.0 Client Secret from a Google Cloud OAuth Desktop app client. | |
| GMAIL_REFRESH_TOKEN | Yes | Long-lived refresh token obtained from the one-time gmail-mcp-authorize consent flow. |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_profileA | Get the authorized Gmail account's address and message/thread totals. |
| list_labelsA | List every label on this account (system labels like INBOX/SENT/TRASH plus user labels), with their IDs. Label IDs from here are what modify_message_labels and search_messages' label_ids argument expect. |
| search_messagesA | Search messages using Gmail's own search syntax.
|
| get_messageB | Get one message in full: headers, labels, and its plain-text body. |
| get_threadB | Get an entire conversation thread as an ordered list of messages. |
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 5 tools
The five tools cover distinct operations: account info (get_profile), label enumeration (list_labels), search (search_messages), single-message retrieval (get_message), and thread retrieval (get_thread). The only wrinkle is that list_labels' description points at a modify_message_labels tool that does not exist, which could send an agent hunting for a phantom tool.
Every tool follows a clean verb_noun snake_case pattern (get_profile, list_labels, search_messages, get_message, get_thread). No mixed conventions or stray casing.
Five tools is a coherent, tightly scoped read-only surface with no redundant entries. It is on the lean side for a full Gmail integration, but nothing feels padded or wasteful.
The surface is read-only: no send, draft, reply, trash, archive, or label-modification operations, and Gmail's primary action (sending mail) is entirely absent. Worse, list_labels references a modify_message_labels tool that is not exposed, a dead end an agent will hit.