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 |
|---|---|
| gmail_list_accountsA | List all configured Gmail accounts and their authentication status |
| gmail_switch_accountA | Switch the active Gmail account for this session. All subsequent tool calls use this account by default unless overridden. |
| gmail_authenticateB | Authenticate a Gmail account via OAuth. Opens a browser for Google consent. |
| gmail_search_messagesC | Legacy search returning an array of Gmail message metadata using Gmail query syntax. |
| gmail_search_emailsA | Paginated rich Gmail search. Prefer this for triage because it returns messages, nextPageToken, and resultSizeEstimate. |
| gmail_read_messageA | Read a specific Gmail message by ID, including full body content |
| gmail_batch_read_messagesA | Read explicit shortlisted Gmail message IDs. Use after search when snippets are insufficient. |
| gmail_read_threadB | Read a Gmail thread. Pass thread_id for legacy behavior, or id plus id_type=message/thread. max_messages returns the most recent N messages. |
| gmail_list_labelsA | List all Gmail labels for an account |
| gmail_create_labelA | Create a Gmail label, or return the existing label if one already has this name. |
| gmail_create_filterB | Create a Gmail filter. Label names must already exist and are resolved to label IDs. |
| gmail_list_filtersA | List all Gmail filters for an account |
| gmail_delete_filterB | Delete one Gmail filter by its filter ID |
| gmail_apply_labels_to_messagesB | Apply or remove Gmail labels on explicit message IDs. Does not accept queries. |
| gmail_archive_messagesA | Archive explicit Gmail message IDs by removing INBOX. Does not accept queries. |
| gmail_stage_trash_messagesA | Stage explicit messages for Trash. Must be confirmed with gmail_confirm_trash_messages. |
| gmail_confirm_trash_messagesB | Confirm and move previously staged messages to Trash using the confirmation code. |
| gmail_prepare_bulk_label_queryA | Preview and stage a capped query-based bulk label operation. Nothing changes until gmail_confirm_bulk_label_operation. |
| gmail_confirm_bulk_label_operationB | Confirm a staged bulk label operation using the confirmation code. |
| gmail_create_draftA | Create a draft email (does NOT send it) |
| gmail_list_draftsC | List Gmail drafts with summarized metadata. |
| gmail_update_draftA | Update an existing Gmail draft. Omitted fields preserve current values. Drafts with attachments are rejected. |
| gmail_create_forward_draftB | Create draft forwards for source messages. Source attachments are not preserved in v1. |
| gmail_get_profileA | Get Gmail profile info for an account (message/thread counts) |
| gmail_send_draftA | Stage a draft for sending. Returns a preview and confirmation code. The draft is NOT sent until gmail_confirm_send. |
| gmail_confirm_sendA | Confirm and send a previously staged draft. Code expires after 60 seconds. |
| gmail_download_attachmentA | Download an email attachment to a sandboxed quarantine directory. Returns local path, SHA-256 hash, and image flag. |
| drive_search_docsB | Search Google Docs visible to an account by title using Drive metadata only. |
| drive_get_file_metadataA | Get Google Drive file metadata visible to an account. Does not download file content. |
| drive_list_commentsA | List comments on a Google Drive file visible to an account. Uses existing narrow Drive access and does not broaden scopes. |
| drive_list_revisionsB | List coarse Drive revisions for a file visible to an account. For native Docs, this is not the full editor version history. |
| docs_read_documentA | Read text and tables from a Google Doc visible to an account. |
| drive_create_folderA | Create a Google Drive folder visible to an account. Uses the narrow drive.file scope. |
| drive_upload_fileA | Upload an explicit local file to Google Drive for an account. Uses the narrow drive.file scope. |
| drive_create_text_docA | Create a native Google Doc from plain text in Google Drive. Uses the narrow drive.file scope. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/arkaigrowth/gmail-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server