4,500+ servers built on MCP Fusion
Vinkius

Gmail MCP. Manage your entire inbox through your AI agent.

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
See Vinkius in Action

Works with every AI agent you already use

…and any MCP-compatible client

Gmail MCP on Cursor AI Code Editor MCP Client Gmail MCP on Claude Desktop App MCP Integration Gmail MCP on OpenAI Agents SDK MCP Compatible Gmail MCP on Visual Studio Code MCP Extension Client Gmail MCP on GitHub Copilot AI Agent MCP Integration Gmail MCP on Google Gemini AI MCP Integration Gmail MCP on Lovable AI Development MCP Client Gmail MCP on Mistral AI Agents MCP Compatible Gmail MCP on Amazon AWS Bedrock MCP Support

Just plug in your AI agents and start using Vinkius.

Gmail MCP Server lets your AI agent manage your entire inbox. Read full threads, search with advanced queries (like `from:boss@company.com is:unread`), draft responses, and label messages without leaving your IDE or chat client.

It gives your agent the power to read, filter, and act on your email history directly.

What your AI agents can do

Batch delete messages

This is NOT reversible — messages cannot be recovered. Use trash instead for safe deletion.

Permanently delete multiple messages

Batch modify messages

Useful for bulk operations like "mark all as read" (remove UNREAD) or "archive all" (remove INBOX). Provide message IDs as a JSON array string.

Bulk-modify labels on multiple messages

Create draft

The user can review and modify the draft in Gmail or send it later using send_draft. Safer than sending directly.

Create an email draft

+ 27 more capabilities included
Search and Filter Messages

Runs advanced queries across your inbox to narrow down message lists by sender, subject, or date.

Read and Summarize Threads

Retrieves the full content of an email or an entire conversation thread for analysis or summary.

Compose and Send Emails

Drafts and sends complete, formatted emails directly through the Gmail API.

Manage Message Status

Adds, removes, or modifies labels on messages, and changes their read/unread state.

View Mailbox Structure

Lists all available system and custom labels and retrieves your general account identity.

Supported MCP Clients

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
+ other MCP clients
Free for Subscribers

Waiting for input…

AI Agent

Gmail MCP Server: 12 Tools for Email & Mail Ops

These tools give your agent granular control over every part of your mailbox, letting you search, list, read, and modify emails and conversations.

batch019e9a80

batch delete messages

This is NOT reversible — messages cannot be recovered. Use trash instead for safe deletion. Permanently delete multiple messages

batch019e9a80

batch modify messages

Useful for bulk operations like "mark all as read" (remove UNREAD) or "archive all" (remove INBOX). Provide message IDs as a JSON array string. Bulk-modify labels on multiple messages

create019e9a80

create draft

The user can review and modify the draft in Gmail or send it later using send_draft. Safer than sending directly. Create an email draft

create019e9a80

create inbox filter

Criteria fields: from, to, subject, query, hasAttachment, negatedQuery. Action fields: addLabelIds, removeLabelIds, forward, star, markImportant. Provide criteria and action as JSON strings. Create an inbox filter rule

create019e9a80

create label

Labels act as tags — one message can have multiple labels. Use list_mailbox_labels to see existing labels before creating duplicates. Create a custom label

delete019e9a80

delete draft

This is not reversible. Delete a draft permanently

delete019e9a80

delete label

System labels (INBOX, SENT, etc.) cannot be deleted. This is not reversible. Delete a label permanently

find019d75a6

find emails from sender

Filters and searches the inbox specifically by the sender's email address.

get019e9a80

get attachment

Returns base64-encoded data and size. First use get_message_content to find attachment IDs in the message payload parts. Download an email attachment

get019e9a80

get draft

Use this to review a draft before sending. Read a specific draft

get019d75a6

get gmail profile

Retrieves basic identity and metadata for the connected mailbox.

get019e9a80

get label details

Get details about a specific label

get019d75a6

get message content

Reads the full text body and headers of a single, specified email.

get019d75a6

get thread details

Reads all messages within a specific email conversation thread.

get019e9a80

get vacation settings

Check vacation auto-responder status

list019e9a80

list drafts

Returns draft IDs and attached message snippets. Use get_draft for full content or send_draft to dispatch. List email drafts

list019d75a6

list gmail messages

Lists all messages in the mailbox, supporting advanced search queries via the 'q' parameter.

list019d75a6

list gmail threads

Lists conversations (threads) in the mailbox, supporting advanced search queries via the 'q' parameter.

list019e9a80

list inbox filters

Filters automatically process incoming messages based on criteria (from, to, subject, query) and perform actions (add/remove labels, forward, archive, etc.). List inbox filter rules

list019e9a80

list mailbox history

Get the starting history ID from get_gmail_profile. Useful for incremental sync and change detection. Track mailbox changes since a point in time

list019d75a6

list mailbox labels

Retrieves a list of all system and custom labels available on the account.

list019d75a6

list unread emails

Lists all messages that are currently marked as unread.

modify019d75a6

modify message labels

Adds, removes, or updates labels on one or more specified messages.

send019e9a80

send draft

The draft is removed after sending. Send an existing draft

send019e9a80

send email

Supports plain text and HTML body, CC, BCC, and reply threading via inReplyTo/references headers. The email is sent immediately. Compose and send an email

trash019d75a6

trash gmail message

Moves a specified email message permanently to the trash folder.

untrash019d75a6

untrash gmail message

Recovers a message that was previously moved to the trash.

update019e9a80

update draft

The draft ID is required — get it from list_drafts. Edit an existing draft

update019e9a80

update vacation settings

Optionally restrict to contacts only or domain members. Dates are Unix timestamps in milliseconds. Toggle vacation auto-responder

verify019d75a6

verify api connection

Checks the OAuth credentials and confirms the connection status with the Gmail API.

Choose How to Get Started

Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.

Build Your Own

Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.

  • Import from OpenAPI, Swagger, or YAML specs
  • Create Agent Skills with progressive disclosure
  • Deploy to edge with MCPFusion framework
  • Built in DLP, auth, and compliance on every call
  • Real time usage dashboard and cost metering
  • Publish to catalog or keep private
Start building

Make Your AI Do More

Start with Gmail, then connect any of our 4,700+ other servers whenever your AI needs more. One click, no limits.

  • Use this MCP plus 4,700+ others, all in one place
  • Add new capabilities to your AI anytime you want
  • Every connection is secured and compliant automatically
  • Track usage and costs across all your servers
  • Works with Claude, ChatGPT, Cursor, and more
  • New servers added to the catalog every week

What you can do with this MCP connector

Gmail MCP Server lets your AI agent manage your entire inbox. You'll read full threads, search using advanced queries like from:boss@company.com is:unread, draft responses, and label messages—all without leaving your IDE or chat client. It gives your agent the power to read, filter, and act on your whole email history directly.

Search and Filter Messages

Your agent can run advanced queries across your inbox to narrow down message lists. You can use list_gmail_messages to list all messages, supporting advanced search queries via the 'q' parameter. You'll use list_gmail_threads to list conversations, also supporting advanced search queries via the 'q' parameter. You can find_emails_from_sender to filter and search the inbox specifically by a sender's email address.

You can also list_unread_emails to pull up every message marked as unread.

Read and Summarize Threads

To get the full scoop, your agent reads the full text body and headers of a single email using get_message_content. To read all the back-and-forth in a conversation, it uses get_thread_details. View Mailbox Structure

Your agent can list all system and custom labels with list_mailbox_labels. It can also use get_gmail_profile to pull basic identity and metadata for the connected mailbox. Manage Message Status

Your agent controls the organization of your inbox. It can use modify_message_labels to add, remove, or update labels on one or more specified messages. You can also use list_mailbox_labels to see what labels are available. For handling messages that get misplaced, your agent can move a message permanently to the trash using trash_gmail_message, and it can restore a message using untrash_gmail_message.

Compose and Send Emails

While the listing doesn't explicitly provide a single

How Gmail MCP Works

  1. 1 First, subscribe to the server and link your Google Workspace account using OAuth credentials.
  2. 2 Next, prompt your AI agent with a clear goal (e.g., 'Find all unread emails from my manager about Q3').
  3. 3 The agent runs the necessary tools (like list_gmail_messages or find_emails_from_sender), retrieves the data, and presents the final answer or confirmation of action.

The bottom line is, your AI client acts as your agent, using the exposed tools to interact with Gmail on your behalf.

Who Is Gmail MCP For?

This is for anyone whose day involves reading, organizing, or responding to high volumes of email. It targets the technical roles—like the Site Reliability Engineer who needs to parse monitoring alerts, the Marketing Manager drafting personalized campaigns, or the Operations Specialist needing to triage massive update streams.

Site Reliability Engineer

Pulls monitoring alerts and reads pull request threads without opening the Gmail web interface.

Marketing Manager

Drafts hyper-personalized outbound messages and reviews draft content directly from the prompt context.

Operations Specialist

Parses huge incoming updates to locate and act upon isolated context files immediately.

What Changes When You Connect

  • Read complex email threads without copy-pasting. Use get_thread_details to pull the entire history of a conversation into your agent's context, allowing for accurate summarization or analysis.
  • Find specific messages instantly. Instead of scrolling, use list_gmail_messages with advanced query parameters to target messages by sender, subject, or date.
  • Automate inbox organization. Use modify_message_labels to automatically categorize and update labels on messages, keeping your system organized without manual effort.
  • Handle communication flow directly. Use the agent's ability to draft and send responses to reply emails, completing the task cycle without leaving your workflow.
  • Focus on what's new. Use list_unread_emails to get a quick snapshot of only the messages you haven't seen, bypassing the noise of archived emails.
  • Check system health first. Run verify_api_connection to ensure your OAuth credentials are working before the agent attempts any data retrieval.

Real-World Use Cases

01

Triaging a project launch announcement.

A project manager needs to know what the executive team thinks about the new launch plan. They prompt their agent: 'Find the last 3 unread emails from the leadership team about Project Nova.' The agent runs list_unread_emails and find_emails_from_sender to narrow the focus, then uses get_thread_details to summarize the consensus from the threads.

02

Responding to a vendor invoice delay.

The finance team gets an email about a delayed invoice. They ask the agent to 'Draft a polite reply to Acme Corp confirming the delay and suggesting we reschedule the call.' The agent uses the composition tool to generate the text and sends it via the API.

03

Cleaning up old promotional emails.

You need to clear out old, irrelevant promotional spam from your inbox. You ask the agent to 'Mark all messages matching 'Promotions 2022' as read.' The agent uses modify_message_labels to change the status of the messages in bulk.

04

Searching for a specific file attachment.

A colleague mentions a document sent last month by a specific person. You prompt: 'Find any email from Jane Doe containing the word 'Q2 budget' sent after May 1st.' The agent runs list_gmail_messages with the advanced query 'from:jane@company.com after:2024/05/01' to locate the exact thread.

The Tradeoffs

Treating the inbox like a single search bar.

Just typing 'Find all emails from my boss' into the agent without specifying 'unread' or a date range. This floods the agent with hundreds of irrelevant results, wasting context tokens and time.

Always scope the search. Use list_gmail_messages or list_unread_emails combined with the q parameter, like 'from:boss@company.com is:unread', to limit results to exactly what you need.

Copy-pasting entire threads for context.

Copying 50 emails into a prompt just to summarize the discussion. This is messy, exceeds token limits, and loses structural context.

Use get_thread_details to pull the full, clean conversation history directly into the agent. This preserves structure and keeps the context clean.

Assuming one tool does everything.

Trying to find a message and then summarize it, but forgetting the message ID. The agent fails because it can't pass the necessary state.

Use list_gmail_messages to identify the message ID first. Then, use that ID as the input for get_message_content or get_thread_details to get the required data.

When It Fits, When It Doesn't

Use this server if your workflow requires reading, searching, or modifying email data based on specific criteria (e.g., 'unread from boss', 'labeled 'Finance''). You need to act on structured email data—you'll use list_gmail_messages, find_emails_from_sender, or list_unread_emails to gather the data first. Don't use this if your goal is just to draft a simple email. For simple drafting, the agent can do that without the server. You only need this if the action is contingent on the data already in your inbox. If you just want to read a single, known email, get_message_content is enough, but if you need to find it first, you must use a listing tool.

Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by Gmail. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.

VINKIUS INFRASTRUCTURE

Cloud Hosted

Managed infra

V8 Isolated

Sandboxed per request

Zero-Trust Proxy

No stored credentials

DLP Enforced

Policy on every call

GDPR Compliant

EU data residency

Token Compression

~60% cost reduction

How we secure it →

Works with Claude, ChatGPT, Cursor, and more

The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.

This server provides 30 capabilities that interface natively with Claude, ChatGPT, Cursor, and any MCP client. No middleware. No custom integration required.

Available Capabilities

batch_delete_messages batch_modify_messages create_draft create_inbox_filter create_label delete_draft delete_label find_emails_from_sender get_attachment get_draft get_gmail_profile get_label_details get_message_content get_thread_details get_vacation_settings list_drafts list_gmail_messages list_gmail_threads list_inbox_filters list_mailbox_history list_mailbox_labels list_unread_emails modify_message_labels send_draft send_email trash_gmail_message untrash_gmail_message update_draft update_vacation_settings verify_api_connection

Dealing with email threads and labels is a manual, clicking nightmare.

Today, you open Gmail, scroll past dozens of irrelevant newsletters, click into a thread, and then manually scroll back through 40 replies to find the one key decision point. If you need to organize that thread or reference a specific attachment, you're stuck copy-pasting everything into a prompt.

With the Gmail MCP Server, your agent reads the whole thread using `get_thread_details` and pulls out the key updates automatically. You don't copy a thing; you just ask, 'What was the final decision on the budget?' and get the answer.

Gmail MCP Server: Organize emails & threads

The old way meant manually setting up filters, remembering which labels meant 'needs action,' and having to open the web client just to check status. You'd waste time clicking through views and performing bulk operations.

Now, your agent handles it. It can run `modify_message_labels` to sort your inbox, or use `list_unread_emails` to show you only what needs attention. It's a system change, not just a feature update.

Common Questions About Gmail MCP

How do I use the `list_gmail_messages` tool to find emails from a specific sender? +

You pass the sender's email address to the query parameter (q) when calling list_gmail_messages. This lets your agent search the entire mailbox for messages from that source.

Can I use `get_message_content` to summarize an entire conversation? +

No. get_message_content only reads a single email. To summarize a conversation, you must first use list_gmail_threads to find the thread ID, and then use get_thread_details.

Is `list_unread_emails` the best way to check for urgent messages? +

Yes, it's the cleanest method. list_unread_emails gives you a list of messages that are currently unread, filtering out the noise of read archives.

What is the difference between `list_gmail_messages` and `list_gmail_threads`? +

Messages are individual emails. Threads are the conversations. Use list_gmail_messages for a list of standalone emails, and list_gmail_threads if you want to see the full conversation flow.

How does `list_gmail_messages` handle advanced search queries using the 'q' parameter? +

It uses the standard Gmail search query syntax. You pass complex strings like 'from:boss@company.com is:unread' directly to the query parameter, allowing you to filter results by sender, date, subject, or specific labels.

What should I use to manage labels, like adding or removing categories, using `modify_message_labels`? +

You provide the message ID and the list of labels you want to add or remove. This tool handles both adding labels to messages and removing existing labels to keep your inbox organized.

If I need to find all conversations with a specific person, should I use `list_gmail_threads` or `list_gmail_messages`? +

list_gmail_threads is designed for conversations. It groups related messages into single threads, so it's best for getting the full context of a discussion rather than just a list of individual emails.

Can I check the connection status before running any other operation using `verify_api_connection`? +

Yes. Running verify_api_connection confirms that your OAuth credentials are valid and that the AI agent has proper access to your Gmail account. This prevents errors later when you try to read or send emails.

Can the AI send emails autonomously on my behalf? +

Yes, if authorized by you in the conversational context. The send_email tool allows fully crafting, attaching subject lines, and dispatching payloads out of your alias.

How does searching work in a massively clogged inbox? +

The integration exposes a wrapper around Google's native filtering syntax. You simply supply native params like "is:unread from:dev" and the egress bounds automatically stream only small context snippets.

Is my email data retained or trained by the server? +

No, Vurb MCP architecture operates exclusively locally. The network connection executes your query endpoint-to-endpoint securely matching Google standard scopes directly to your client.

More in this category

You might also like

Built & Managed by Vinkius 30s setup 30 tools

We've already built the connector for Gmail. Just plug in your AI agents and start using Vinkius.

No hosting. No infrastructure. No complex setup.
All 30 tools are live and waiting. You're up and running in seconds.

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
+ other MCP clients

Vinkius gives your AI agents access to the full catalog of app connectors, all fully managed, secure, and enterprise-ready. One subscription, every tool you need.

Zero hosting required Full MCP catalog included Enterprise-grade security Auto-updated by Vinkius

Built, hosted, and secured by Vinkius. You just connect and go.