communicationoauth2

Gmail

Search threads, draft replies, triage inbox.

Verdict

Gmail via MCP is the integration that lets the model see your inbox, search threads, and draft replies. The bar for "AI access to your email" is high — the upside is high too, because so much of what people procrastinate on lives in their inbox. What we notice: read-only Gmail use is the unambiguous win — "summarise my unread", "find the email from the legal team last week", "what did I tell the customer about pricing in March" all work cleanly. Drafting replies needs a model with good voice (Sonnet 4.7 or GPT-5) — the cheaper models nail the structure but flatten the tone. Sending without human review is the line most teams shouldn't cross. Best for: inbox triage and summarisation; finding threads that are deeper than search; drafting first-pass replies for human review; pulling decisions or commitments from email into a system of record (Notion, Linear, your CRM). Avoid for: unsupervised reply sending (the trust ladder is too steep); legal, HR, or sensitive-customer email (compliance and privacy matter more than convenience); workflows where Gmail labels and filters already do the job. Practical frame: free with a Gmail account; OAuth handles auth. Token cost depends on how much email body you load — running a "summarise inbox" across 50 threads costs $0.05-0.20 on Sonnet. The privacy tradeoff is the real budget item — review the scopes the model has and what the data flow is.

Common use cases

  • Triage support tickets from shared inbox
  • Draft customer replies with team input
  • Surface email thread context during calls
  • Label and archive messages in bulk
  • Pull contact details for outreach prep

Integration

Vendor
Gmail
Category
communication
Auth
OAUTH2
Tools
23
Composio slug
gmail

Tools

  • Create email draft

    Creates a gmail email draft, supporting to/cc/bcc, subject, plain/html body (ensure `is html=true` for html), attachments, and threading.

  • Create label

    Creates a new label with a unique name in the specified user's gmail account.

  • Delete Draft
    destructive

    Permanently deletes a specific gmail draft using its id; ensure the draft exists and the user has necessary permissions for the given `user id`.

  • Delete message
    destructive

    Permanently deletes a specific email message by its id from a gmail mailbox; for `user id`, use 'me' for the authenticated user or an email address to which the authenticated user has delegated access.

  • Fetch emails

    Fetches a list of email messages from a gmail account, supporting filtering, pagination, and optional full content retrieval.

  • Fetch message by message ID

    Fetches a specific email message by its id, provided the `message id` exists and is accessible to the authenticated `user id`.

  • Fetch Message by Thread ID

    Retrieves messages from a gmail thread using its `thread id`, where the thread must be accessible by the specified `user id`.

  • Get contacts

    Fetches contacts (connections) for the authenticated google account, allowing selection of specific data fields and pagination.

  • Get Gmail attachment

    Retrieves a specific attachment by id from a message in a user's gmail mailbox, requiring valid message and attachment ids.

  • Get People

    Retrieves either a specific person's details (using `resource name`) or lists 'other contacts' (if `other contacts` is true), with `person fields` specifying the data to return.

  • Get Profile

    Retrieves key gmail profile information (email address, message/thread totals, history id) for a user.

  • List drafts

    Retrieves a paginated list of email drafts from a user's gmail account. use verbose=true to get full draft details including subject, body, sender, and timestamp.

  • List Gmail labels

    Retrieves a list of all system and user-created labels for the specified gmail account.

  • List threads

    Retrieves a list of email threads from a gmail account, identified by `user id` (email address or 'me'), supporting filtering and pagination.

  • Modify email labels

    Adds and/or removes specified gmail labels for a message; ensure `message id` and all `label ids` are valid (use 'listlabels' for custom label ids).

  • Modify thread labels

    Adds or removes specified existing label ids from a gmail thread, affecting all its messages; ensure the thread id is valid.

  • Move to Trash

    Moves an existing, non-deleted email message to the trash for the specified user.

  • Patch Label

    Patches the specified label.

  • Remove label
    destructive

    Permanently deletes a specific, existing user-created gmail label by its id for a user; cannot delete system labels.

  • Reply to email thread

    Sends a reply within a specific gmail thread using the original thread's subject, requiring a valid `thread id` and correctly formatted email addresses. supports attachments via the `attachment` parameter with valid `s3key`, `mimetype`, and

  • Search People

    Searches contacts by matching the query against names, nicknames, emails, phone numbers, and organizations, optionally including 'other contacts'.

  • Send Draft

    Sends the specified, existing draft to the recipients in the to, cc, and bcc headers.

  • Send Email

    Sends an email via gmail api using the authenticated user's google profile display name, requiring `is html=true` if the body contains html and valid `s3key`, `mimetype`, `name` for any attachment.

Setup

Setup guide

  1. 11. Open your Switchy workspace settings and navigate to the Integrations tab. 2. Find Gmail in the MCP directory and click Connect. 3. You'll be redirected to Google's OAuth consent screen; sign in with the account whose mail you want to access. 4. Grant the requested scopes: read/write mail, manage labels, and read contacts (Switchy requests only what the tools require). 5. After authorizing, you'll return to Switchy and see Gmail listed as connected. 6. Open any Space and type '@Gmail fetch my last 5 emails' to confirm the connection works. 7. If the MCP returns a list of message subjects and senders, you're ready to use all 23 tools in your workflows.

What teammates see: by default, memories from Gmail are scoped to the Space (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.

Works well with

Top models

Compatibility data appears once enough Spaces have used this MCP together with a given model.

How Switchy teams use it

Not enough Spaces yet to publish anonymised usage stats (we require ≥ 50 Spaces per week).

Starter prompts

Fetch Unread Support Emails

@Gmail fetch the last 10 unread emails from my inbox and show me the sender, subject, and a one-sentence summary of each.
Open in a Space →

Draft Reply with Context

@Gmail create a draft reply to message ID [paste ID here] thanking the sender for their patience and confirming we'll ship their order by Friday.
Open in a Space →

Label High-Priority Threads

@Gmail create a label called 'Q1 Launch' and apply it to all emails in my inbox with 'product launch' in the subject line.
Open in a Space →

Retrieve Thread History

@Gmail fetch all messages in thread ID [paste ID here] and summarize the main points of the conversation.
Open in a Space →

Export Contact List

@Gmail get the first 50 contacts from my account and return their names, email addresses, and phone numbers in a table.
Open in a Space →

Example outputs

Illustrative - representative of the model's voice and quality, not literal recordings.

Prompt

@Gmail fetch all unread emails from the last 3 days that mention 'budget approval' and summarize the key action items by sender

Output

Found 7 unread messages matching your criteria. From Sarah Chen (Finance): needs Q4 budget reallocation signed by Friday, $45K shift from marketing to engineering. From Mike Torres (Ops): requesting approval for $12K server upgrade, waiting since Monday. From Jennifer Park (Product): asking to reallocate $8K from unused travel budget to user research. The remaining 4 messages are FYIs or automated notifications with no action required. All three requests include attached spreadsheets breaking down the line items.

Notes

This example shows fetch + AI synthesis working together. The MCP retrieves message metadata and bodies; the AI extracts action items. Requires Gmail read scope. Note that 'last 3 days' filtering uses Gmail's query syntax under the hood, which may behave unexpectedly with timezone boundaries or complex boolean logic.

Prompt

@Gmail create a draft reply to the most recent email from james@vendor.com thanking him for the proposal and asking for a revised timeline with Q2 milestones

Output

Draft created and saved to your Gmail drafts folder. The reply is threaded under James's original message (subject: 'Proposal for Infrastructure Refresh'). Draft body: 'Hi James, Thanks for sending over the proposal—the scope looks solid. Before we move forward, could you revise the timeline to include specific Q2 milestones? We need to align this with our board reporting calendar. Best, [Your Name]'. You can edit or send this draft from Gmail.

Notes

Demonstrates draft creation with threading context. The MCP finds the most recent message from the sender, then creates a reply draft in the same thread. This is a write operation but non-destructive—you review before sending. Requires Gmail compose scope. If multiple recent emails exist from that sender, the MCP picks the newest by date.

Prompt

@Gmail create a label called 'Q1-2025-Contracts' and move all emails from legal@company.com in January to that label, then tell me how many were moved

Output

Label 'Q1-2025-Contracts' created successfully. Searched for messages from legal@company.com sent between January 1-31, 2025, and applied the new label to 14 messages. These emails remain in your inbox (labels in Gmail don't remove messages from other views—they're tags, not folders). The labeled messages include 9 contract PDFs, 3 signature request threads, and 2 follow-up reminders.

Notes

Shows label creation plus batch message modification. This is a write operation that changes your mailbox organization. Gmail labels are additive—messages keep their existing labels and locations. Requires Gmail modify scope. If you later delete the label, the messages stay in your inbox. Be cautious with broad date ranges; this could label hundreds of messages if the sender is prolific.

Use-case deep-dives

Customer support email triage

When Gmail MCP beats a ticketing system for small teams

A 3-person support team handling 40-60 inbound emails daily can use the Gmail MCP to triage, label, and draft responses without paying for Zendesk. The fetch-and-filter tools let you pull unread messages by sender domain or subject pattern, then auto-label them by urgency or product area. The draft tool supports threading, so follow-ups stay grouped. This works until you hit about 100 emails per day or need SLA tracking—at that volume, you want a real ticketing system with assignment rules. Below that threshold, the Gmail MCP keeps your workflow in one place and costs nothing beyond OAuth setup. If your team already lives in Gmail and you're pre-revenue, this is the right call for the next six months.

Weekly newsletter send coordination

Why the Gmail MCP isn't built for bulk sends

A 2-person marketing team drafting a weekly newsletter to 300 subscribers should not use the Gmail MCP for the actual send. Gmail's API rate limits and deliverability rules make it a poor fit for bulk email—you'll hit sending caps fast and risk your domain reputation. The MCP is useful for the prep work: fetching replies from last week's send, pulling contact lists via the Get Contacts tool, and creating labeled drafts for review. Once the draft is approved, hand off to Mailchimp or SendGrid for the actual blast. The boundary is simple: if you're sending to more than 50 recipients at once, the Gmail MCP is a research and drafting tool, not your delivery layer.

Sales follow-up automation for founders

When Gmail MCP handles outbound without a CRM

A solo founder or 2-person sales team doing 10-15 outbound touches per week can use the Gmail MCP to automate follow-ups and thread tracking without buying HubSpot. The Fetch Message by Thread ID tool lets you check if a prospect replied, then the Create Draft tool queues a follow-up with the right context. The label tools let you tag threads by deal stage or next action date. This breaks down around 50 active threads—beyond that, you lose visibility and need a real CRM's pipeline view. But if you're pre-Series A and your deal count is low, the Gmail MCP keeps your outbound workflow in the inbox you already check. Pair it with a calendar MCP for meeting scheduling and you're covered through first revenue.

Frequently asked

What can the Gmail MCP do in Switchy?

It lets your AI agents read emails, create drafts, manage labels, delete messages, and fetch contacts from your Gmail account. Agents can search your inbox with filters, retrieve full message threads, and prepare emails with attachments or HTML formatting. It doesn't send emails directly — only creates drafts you review and send yourself.

What OAuth scopes does the Gmail MCP request?

It requests Gmail read/write access and Google Contacts read access through OAuth2. You'll authenticate once via Google's consent screen, which shows exactly which permissions Switchy is requesting. The MCP uses 'me' as the user ID for most operations, meaning it acts on behalf of whoever connected their Google account.

Can it automatically send emails or only create drafts?

Only drafts. The MCP creates drafts with full formatting, threading, and attachments, but you must manually send them from Gmail. This is intentional — it prevents agents from sending email on your behalf without review. If you need automated sending, use Gmail's API directly or a dedicated email automation tool.

How is this different from using Gmail's web interface?

Agents can search and process your email programmatically — filtering by date, sender, or label, then summarizing threads or extracting data. The web interface requires manual clicking and reading. For one-off tasks, Gmail's UI is faster. For repetitive email triage or data extraction across dozens of messages, the MCP saves hours.

Who on the team should connect their Gmail account?

Whoever owns the inbox the agents need to access. The MCP can't read other people's email unless they've delegated access to your account. If agents need to draft emails from a shared alias, connect the Google Workspace account that owns that alias. Each connection counts as one integration in your Switchy plan.

Compare with

Compare with anything else →
Data last verified 7 hours ago.Sources aggregated hourly to weekly. See docs/architecture/model-directory.md.