What you can do with Gmail

Built for

Executive Assistants, Sales Teams, Recruiting Operations, Customer Support Leads

Example workflows

Triage important threads

Turns mailbox search and thread context into a prioritized queue.

Try this

Search Gmail for unread customer or investor threads from the last 7 days, summarize what each person needs, and group them by urgency.

Draft follow-up replies

Uses thread history while keeping send actions explicit.

Try this

Find recent email threads waiting on my response and create concise draft replies that acknowledge the context and propose the next step.

Organize inbox labels

Combines Gmail search operators with label workflows.

Try this

Review messages matching invoices, contracts, and recruiting updates, then suggest a label structure and apply labels where appropriate.

Extract attachment context

Surfaces attachment-heavy workflows without manually opening threads.

Try this

Find recent Gmail messages with attachments from partners, inspect the available attachment metadata, and summarize which files need review.

Context to know first

What Gmail workflows can MCPBundles support?

It can search messages, inspect threads, read message content when permission allows, list attachments, manage labels, work with drafts, send email, and inspect mailbox history or filters.

Does Gmail access depend on permissions?

Yes. Gmail has scoped permission sets. Sending and label-definition workflows can use narrower access, while reading inbox content, modifying mailbox state, drafts, and filters require broader permissions.

Can agents send email automatically?

Agents should draft and summarize before sending. Sending is a distinct action and should happen only when the prompt explicitly asks for it.

AI Skill
SKILL.md

Domain knowledge for Gmail — workflow patterns, data models, and gotchas for your AI agent.

Gmail

Tool calls target the authenticated mailbox. Messages live in threads; labels organize them. Which reads and writes succeed depends on what the connected identity is allowed to do.

Data Model

  • Messages — individual MIME parts addressed by id; mailbox search supports Gmail operators (has:attachment, newer_than:7d, etc.). Load full body content when snippets are not enough.
  • Threads — conversational groupings; expand the whole thread when context matters.
  • Labels — system mailboxes (INBOX, SENT, …) plus user-defined tags; label mutations fail when the connection cannot change mailbox state.
  • Drafts — unsent composer state. Create new drafts for new messages, update existing drafts when a draft id is already known, inspect drafts before changing them, and delete stale drafts only when the user explicitly wants them removed. Create/update/send accept optional attachments (filename + base64 content_base64).
  • Filters — mailbox rules for labeling/forwarding; managing them fails when those settings are not exposed for the connection.
  • History — incremental sync via startHistoryId checkpoints.

Gotchas

  • historyId: Persist the latest checkpoint from message/thread payloads for reliable delta sync.
  • Message vs thread ids: Never interchange them—per-message edits need message ids.
  • Draft ids vs message ids: Draft operations use the draft id. The draft payload also contains a message id, but that is not the identifier for updating or deleting the draft.
  • Updating drafts: When revising an existing unsent message, update the draft in place instead of creating a replacement draft.
  • Sending drafts: Sending an existing draft is a distinct action from creating or updating it; only send when the user explicitly asks for send.
  • Permission failures on write or settings: Usually means send, label change, filter edit, or similar is outside what the connection allows—stick to reads or narrower operations.
  • Batching: When you already hold many message ids, batch content retrieval reduces round trips (max 25 ids per call).
  • Inbox triage: Search or list messages, then batch-fetch normalized content with include_body=false (headers + snippet only) or a small body_max_chars to classify many messages without huge payloads. Load full thread content only for conversations that need a reply. When body_truncated is true on a row, the plain-text body was shortened (HTML conversion cap or body_max_chars).
  • HTML bodies: body_html is omitted by default. When a message has an HTML MIME part, rows include html_body_available=true and html_body_hint — pass include_html=true for broadcast/layout QA or to inspect links in the HTML part.

Tools in this Server (30)

Gmail Batch Modify Message Labels

Add/remove labels on multiple Gmail messages in one call.

Gmail Create Draft

Create a Gmail draft. Supports reply drafts via thread_id + in_reply_to + references and optional file attachments.

Gmail Create Filter

Create a Gmail inbox filter that auto-labels, archives, or forwards matching mail. criteria selects messages (from, to, subject, query, hasAttachment,...

Gmail Create Label

Create a new Gmail label.

Gmail Delete Draft

Delete an existing Gmail draft by draft ID. This permanently removes the unsent draft.

Gmail Delete Filter

Delete a Gmail filter by ID.

Gmail Delete Label

Delete a Gmail label by ID.

Gmail Fetch Labels Details

Fetch detailed information about a specific Gmail label using its label ID. Use this when you need in-depth details about a label, like its type and m...

Gmail Fetch Messages Details

Fetch a Gmail message by ID. Use format=metadata when you only need headers; use format=full to include payload.

Gmail Fetch Threads Details

Fetch a Gmail thread by ID and return the raw Gmail API thread object (full MIME payload tree). Use when you need unprocessed structure, nested parts,...

Gmail Get Attachment Content

Fetch a Gmail attachment, store it in S3, and return a short-lived download URL.

Gmail Get Draft

Get a Gmail draft by draft ID, including headers and readable body content.

Gmail Get Message Content

Fetch a Gmail message and return normalized content (headers + plain-text body). Skips attachments. When html_body_available is true, pass include_htm...

Gmail Get Messages Content Batch

Fetch up to 25 Gmail messages and return normalized content (headers, snippet, optional plain-text body). Skips attachments. For inbox triage, pass in...

Gmail Get Thread Content

Fetch a Gmail thread and return normalized content for all messages (headers + plain-text bodies). Skips attachments.

Gmail Get Threads Content Batch

Fetch multiple Gmail threads and return normalized content for each. Skips attachments. Pass include_html=true when you need raw HTML (see html_body_a...

Gmail List Drafts

List saved email drafts in Gmail. Supports pagination and optional inclusion of spam/trash.

Gmail List Filters

List Gmail filters (settings).

Gmail List History Changes

List Gmail history changes starting from a history ID. Returns history records with message IDs suitable for message detail or normalized content read...

Gmail List Labels

Retrieve all labels present in your Gmail account. Use this to manage or organize your emails based on categories or custom tags. It returns a list of...

Gmail List Message Attachments

List attachments for a Gmail message (attachment_id, filename, mimeType, size).

Gmail List Messages

List Gmail messages. Supports pagination, native Gmail search (q), label filtering, and optional inclusion of spam/trash.

Gmail List Profile

Retrieve your Gmail profile information such as email address, messages total, and threads total. Use this when you need a summary of your account's b...

Gmail List Threads

List Gmail threads. Supports pagination, native Gmail search (q), label filtering, and optional inclusion of spam/trash.

Gmail Modify Message Labels

Add/remove labels on a Gmail message. To archive: remove INBOX. To mark unread: add UNREAD.

Gmail Send Draft

Send an existing Gmail draft by draft ID. Delivers the draft as a sent message and removes it from Drafts.

Gmail Send Message

Send an email using Gmail. Supports replies via thread_id + in_reply_to + references and optional file attachments.

Gmail Update Draft

Update an existing Gmail draft by replacing its subject, body, recipients, optional threading headers, and attachments.

Gmail Update Label

Update an existing Gmail label.

Gmail Validate Token

Validate the Gmail OAuth token and confirm required scopes are granted.

Frequently Asked Questions

What Gmail workflows can MCPBundles support?

It can search messages, inspect threads, read message content when permission allows, list attachments, manage labels, work with drafts, send email, and inspect mailbox history or filters.

Does Gmail access depend on permissions?

Yes. Gmail has scoped permission sets. Sending and label-definition workflows can use narrower access, while reading inbox content, modifying mailbox state, drafts, and filters require broader permissions.

Can agents send email automatically?

Agents should draft and summarize before sending. Sending is a distinct action and should happen only when the prompt explicitly asks for it.

What is the difference between messages and threads?

Messages are individual email items. Threads are conversations containing one or more messages. Use message ids for per-message operations and thread ids when conversation context matters.

How do I connect Gmail to my AI agent?

Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/gmail. Authentication is handled automatically.

How many tools does Gmail provide?

Gmail provides 30 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.

What authentication does Gmail require?

Gmail uses One-click sign in. Gmail requires credentials. Connect via MCPBundles and authentication is handled automatically.

Setup Instructions

Connect Gmail to any MCP client in minutes

MCP URL
https://mcp.mcpbundles.com/bundle/gmail

One-click install:

The link prefills the Add custom connector dialog — you still review the values and click Add, then Connect to complete OAuth.

Or add manually

  1. Open claude.ai → Settings → Connectors.
  2. Click the + button and choose Add custom connector.
  3. Set Name to Gmail and paste the MCP URL into Remote MCP server URL.
  4. Click Add. Gmail will appear under Not connected — select it and click Connect to complete OAuth.
Name: Gmail
Remote MCP server URL: https://mcp.mcpbundles.com/bundle/gmail
Authentication: OAuth

Custom connectors at claude.ai require a paid Claude plan (Pro, Max, Team, or Enterprise).

Ready to use Gmail?

Sign in to connect your credentials and start running tools from the chat.

Gmail MCP Server & Skill