Gmail MCP Server

Search, read, send, and organize Gmail through the Model Context Protocol.

$ uvx workspace-mcp --tools gmail runs only the Gmail MCP tools — combine services as needed

The Gmail service is the largest in Workspace MCP: fifteen tools spanning the full lifecycle of email, from search_gmail_messages with native Gmail query operators through send_gmail_message with reply threading and attachments.

Batch variants (get_gmail_messages_content_batch, batch_modify_gmail_message_labels) keep token usage low when an assistant works across dozens of messages at once, and draft_gmail_message lets you keep a human in the loop before anything is sent.

What you can ask

  • “Find every email from my accountant since March that I never replied to, and draft polite follow-ups”
  • “Search for invoices with attachments from last quarter and label them Finance/2026”
  • “Summarize this morning’s unread messages in three bullets each”

All 15 Gmail MCP tools

Tiers control how many tools the server registers: start lean with --tool-tier core and step up to extended or complete when a workflow needs more. Parameters and examples for every tool are in the API reference.

search_gmail_messages Core Search mail using Gmail query operators.
get_gmail_message_content Core Retrieve full message content.
get_gmail_messages_content_batch Core Batch fetch message content.
send_gmail_message Core Send email messages (supports replies and attachments).
get_gmail_thread_content Extended Retrieve full thread content.
modify_gmail_message_labels Extended Add/remove labels on a message.
list_gmail_labels Extended List account labels.
list_gmail_filters Extended List configured Gmail filters.
manage_gmail_label Extended Create/update/delete labels.
manage_gmail_filter Extended Create/delete Gmail filters.
draft_gmail_message Extended Create Gmail drafts.
get_gmail_threads_content_batch Complete Batch fetch thread content.
batch_modify_gmail_message_labels Complete Batch label modifications.
get_gmail_attachment_content Complete Download Gmail attachments to attachment storage.
start_google_auth Complete Legacy OAuth 2.0 auth helper (disabled with OAuth 2.1).

OAuth scopes

The server requests only the scopes for the services you enable. In read-only mode it requests just the readonly variants and skips registering write tools entirely.

  • gmail.readonly search and read messages, threads, and labels
  • gmail.send send mail
  • gmail.compose create drafts
  • gmail.modify label changes (implies the scopes above)
  • gmail.settings.basic manage filters

Gmail MCP questions

Can the assistant read my mail without being able to send anything?
Yes. Read-only mode requests only the gmail.readonly scope and disables every write tool, so send_gmail_message, draft_gmail_message, and label management are never registered. You can also run the core tier and simply not grant send.
Does search support Gmail query operators?
search_gmail_messages passes your query straight to Gmail, so from:, to:, label:, has:attachment, before:/after:, and every other operator you use in the Gmail search bar works unchanged.
How do replies and threading work?
send_gmail_message accepts a thread context so replies land in the existing conversation rather than starting a new one, and get_gmail_thread_content gives the assistant the full back-and-forth before it writes a response.
Can I keep a human in the loop before email goes out?
Use draft_gmail_message: the assistant composes the draft, and it sits in your Drafts folder until you review and hit send yourself.