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 neededThe 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.readonlysearch and read messages, threads, and labelsgmail.sendsend mailgmail.composecreate draftsgmail.modifylabel changes (implies the scopes above)gmail.settings.basicmanage 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.
Works alongside
All services: Gmail MCP·Google Drive MCP·Google Calendar MCP·Google Docs MCP·Google Sheets MCP·Google Slides MCP·Google Forms MCP·Google Tasks MCP·Google Contacts MCP·Google Chat MCP·Google Custom Search MCP·Google Apps Script MCP