Gmail
Arcade.dev LLM tools for Gmail
The Gmail toolkit provides Arcade LLM tools for interacting with Gmail via the Gmail API. It enables agents and applications to read, compose, send, organize, and manage email on behalf of authenticated Google users.
Capabilities
- Reading & searching: List emails, threads, and drafts with built-in filtering that excludes automated/promotional mail by default (
exclude_automated=Falseto override); search threads by query or by header value; retrieve full threads by ID. - Composing & sending: Write new draft emails or draft replies, send emails directly, reply to existing messages, and send or delete existing drafts.
- Draft management: Update existing drafts (supports plain-text and HTML single-part bodies with smart content-type handling and reply-quote preservation; metadata-only updates for multipart/attachment drafts); delete drafts.
- Labels & organization: List, create, and apply/remove labels on emails; move emails to trash.
- Account info: Retrieve the authenticated user's profile, email address, profile picture, and Gmail account statistics via
WhoAmI.
OAuth
Authentication uses OAuth 2.0 via the Google provider. See the Arcade Google auth provider docs for configuration details.
Available tools(18)
| Tool name | Description | Secrets | |
|---|---|---|---|
Add and remove labels from an email using the Gmail API. | |||
Create a new label in the user's mailbox. | |||
Delete a draft email using the Gmail API. | |||
Get the specified thread by ID. | |||
Lists draft emails in the user's draft mailbox using the Gmail API. | |||
Read emails from a Gmail account and extract plain text content.
By default, obvious automated emails are excluded from results using
no-reply sender patterns and Gmail's non-primary category filters
(promotions, social, updates, forums). Set exclude_automated=False to
include all emails regardless of source. | |||
Search for emails by header using the Gmail API.
By default, obvious automated emails are excluded from results using
no-reply sender patterns and Gmail's non-primary category filters
(promotions, social, updates, forums). Set exclude_automated=False to
include all emails regardless of source. | |||
List all the labels in the user's mailbox. | |||
List threads in the user's mailbox.
By default, obvious automated threads are excluded from results using
no-reply sender patterns and Gmail's non-primary category filters
(promotions, social, updates, forums). Set exclude_automated=False to
include all threads regardless of source. | |||
Send a reply to an email message. | |||
Search for threads in the user's mailbox.
By default, obvious automated threads are excluded from results using
no-reply sender patterns and Gmail's non-primary category filters
(promotions, social, updates, forums). Set exclude_automated=False to
include all threads regardless of source. | |||
Send a draft email using the Gmail API. | |||
Send an email using the Gmail API. | |||
Move an email to the trash folder using the Gmail API. | |||
Update an existing email draft using the Gmail API.
Single-part ``text/plain`` and single-part ``text/html`` drafts both support full
body replacement; the rebuild follows the existing draft's content type, so a
plain draft stays plain and an HTML draft stays HTML. Plain-text input supplied
against an HTML draft is auto-converted to HTML, and HTML input supplied against
a plain draft is stored verbatim as ``text/plain``. Reply drafts preserve their
reply-quote tail (``> `` lines for plain, ``<blockquote>`` for HTML) when the
body is supplied as a top-only update.
Multipart drafts and drafts with attachments still fail when the body changes;
in those cases the tool succeeds only when the effective body is unchanged
(metadata-only update preserving the existing MIME tree). Edit those drafts in
Gmail directly.
For each of subject, body, recipient, cc, and bcc, omitting the parameter or passing
``None`` leaves that part of the draft unchanged (for cc/bcc, existing headers are kept;
pass an empty list to clear). | |||
Get comprehensive user profile and Gmail account information.
This tool provides detailed information about the authenticated user including
their name, email, profile picture, Gmail account statistics, and other
important profile details from Google services. | |||
Compose a new email draft using the Gmail API. | |||
Compose a draft reply to an email message. |
Selected tools
No tools selected.
Click "Show all tools" to add tools.
Requirements
Select tools to see requirements
Gmail.ChangeEmailLabels
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Add and remove labels from an email using the Gmail API.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
email_id | string | Required | The ID of the email to modify labels for |
labels_to_add | array<string> | Required | List of label names to add |
labels_to_remove | array<string> | Required | List of label names to remove |
Requirements
Output
json— Confirmation with labels that were added and removedGmail.CreateLabel
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Create a new label in the user's mailbox.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
label_name | string | Required | The name of the label to create |
Requirements
Output
json— The created label wrapped in label keyGmail.DeleteDraftEmail
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Delete a draft email using the Gmail API.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
draft_email_id | string | Required | The ID of the draft email to delete |
Requirements
Output
string— A confirmation message indicating successful deletionGmail.GetThread
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get the specified thread by ID.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
thread_id | string | Required | The ID of the thread to retrieve |
Requirements
Output
json— A dictionary containing the thread details with dates in descriptive UTC formatGmail.ListDraftEmails
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Lists draft emails in the user's draft mailbox using the Gmail API.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
n_drafts | integer | Optional | Number of draft emails to read (Min 1, Max 100, Default 25) |
Requirements
Output
json— A dictionary containing a list of draft email details with dates in descriptive UTC formatGmail.ListEmails
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Read emails from a Gmail account and extract plain text content. By default, obvious automated emails are excluded from results using no-reply sender patterns and Gmail's non-primary category filters (promotions, social, updates, forums). Set exclude_automated=False to include all emails regardless of source.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
n_emails | integer | Optional | Number of emails to read (Min 1, Max 100, Default 25) |
exclude_automated | boolean | Optional | Exclude obvious automated email using no-reply sender patterns and Gmail non-primary categories (promotions, social, updates, forums). Set to False when the user wants automated content like calendar invites, marketing emails, or other filtered categories. |
Requirements
Output
json— A dictionary containing a list of email details with dates in descriptive UTC formatGmail.ListEmailsByHeader
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Search for emails by header using the Gmail API. By default, obvious automated emails are excluded from results using no-reply sender patterns and Gmail's non-primary category filters (promotions, social, updates, forums). Set exclude_automated=False to include all emails regardless of source.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
sender | string | Optional | The name or email address of the sender of the email |
recipient | string | Optional | The name or email address of the recipient |
subject | string | Optional | Words to find in the subject of the email |
body | string | Optional | Words to find in the body of the email |
date_range | string | Optional | The date range of the emailtodayyesterdaylast_7_dayslast_30_daysthis_monthlast_monththis_year |
label | string | Optional | The label name to filter by |
max_results | integer | Optional | The maximum number of emails to return (Min 1, Max 100, Default 25) |
exclude_automated | boolean | Optional | Exclude obvious automated email using no-reply sender patterns and Gmail non-primary categories (promotions, social, updates, forums). Set to False when the user wants automated content like calendar invites, marketing emails, or other filtered categories. |
Requirements
Output
json— A dictionary containing a list of email details with dates in descriptive UTC formatGmail.ListLabels
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List all the labels in the user's mailbox.
Parameters
No parameters required.
Requirements
Output
json— A dictionary containing a list of label detailsGmail.ListThreads
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List threads in the user's mailbox. By default, obvious automated threads are excluded from results using no-reply sender patterns and Gmail's non-primary category filters (promotions, social, updates, forums). Set exclude_automated=False to include all threads regardless of source.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
page_token | string | Optional | Page token to retrieve a specific page of results in the list |
max_results | integer | Optional | The maximum number of threads to return (Min 1, Max 100, Default 25) |
include_spam_trash | boolean | Optional | Whether to include spam and trash in the results |
exclude_automated | boolean | Optional | Exclude obvious automated email using no-reply sender patterns and Gmail non-primary categories (promotions, social, updates, forums). Set to False when the user wants automated content like calendar invites, marketing emails, or other filtered categories. |
Requirements
Output
json— A dictionary containing a list of thread detailsGmail.ReplyToEmail
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Send a reply to an email message.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
body | string | Required | The body of the email, as plain text or HTML. |
reply_to_message_id | string | Required | The ID of the message to reply to |
reply_to_whom | string | Optional | Whether to reply to every recipient (including cc) or only to the original sender. Defaults to 'GmailReplyToWhom.ONLY_THE_SENDER'.every_recipientonly_the_sender |
cc | array<string> | Optional | Additional CC recipients. When replying to every recipient, merged with CC from the original message; duplicates are removed (RFC-aware). Duplicates of the reply's To recipients are dropped from Cc (RFC-aware mailbox comparison). The authenticated user's own email address is removed from Cc on replies. |
bcc | array<string> | Optional | BCC recipients of the email. The authenticated user's own email address is removed from Bcc on replies. |
content_type | string | Optional | How the body is encoded on the wire. `auto` (default) sends as HTML and auto-converts plain-text input to paragraphs. `html` sends the body verbatim as HTML (use this when it contains entities or non-allow-listed tags); `plain` is plain text.plainhtmlauto |
Requirements
Output
json— A dictionary containing the sent email details with date in descriptive UTC formatGmail.SearchThreads
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Search for threads in the user's mailbox. By default, obvious automated threads are excluded from results using no-reply sender patterns and Gmail's non-primary category filters (promotions, social, updates, forums). Set exclude_automated=False to include all threads regardless of source.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
page_token | string | Optional | Page token to retrieve a specific page of results in the list |
max_results | integer | Optional | The maximum number of threads to return (Min 1, Max 100, Default 25) |
include_spam_trash | boolean | Optional | Whether to include spam and trash in the results |
label_ids | array<string> | Optional | The IDs of labels to filter by |
sender | string | Optional | The name or email address of the sender of the email |
recipient | string | Optional | The name or email address of the recipient |
subject | string | Optional | Words to find in the subject of the email |
body | string | Optional | Words to find in the body of the email |
date_range | string | Optional | The date range of the emailtodayyesterdaylast_7_dayslast_30_daysthis_monthlast_monththis_year |
exclude_automated | boolean | Optional | Exclude obvious automated email using no-reply sender patterns and Gmail non-primary categories (promotions, social, updates, forums). Set to False when the user wants automated content like calendar invites, marketing emails, or other filtered categories. |
Requirements
Output
json— A dictionary containing a list of thread detailsGmail.SendDraftEmail
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Send a draft email using the Gmail API.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
email_id | string | Required | The ID of the draft to send |
Requirements
Output
json— A dictionary containing the sent email details with date in descriptive UTC formatGmail.SendEmail
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Send an email using the Gmail API.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
subject | string | Required | The subject of the email |
body | string | Required | The body of the email, as plain text or HTML. |
recipient | string | Required | The recipient of the email |
cc | array<string> | Optional | CC recipients of the email |
bcc | array<string> | Optional | BCC recipients of the email |
content_type | string | Optional | How the body is encoded on the wire. `auto` (default) sends as HTML and auto-converts plain-text input to paragraphs. `html` sends the body verbatim as HTML (use this when it contains entities or non-allow-listed tags); `plain` is plain text.plainhtmlauto |
Requirements
Output
json— A dictionary containing the sent email details with date in descriptive UTC formatGmail.TrashEmail
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Move an email to the trash folder using the Gmail API.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
email_id | string | Required | The ID of the email to trash |
Requirements
Output
json— Details of the trashed email with URL to view in Gmail trash folderGmail.UpdateDraftEmail
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Update an existing email draft using the Gmail API. Single-part ``text/plain`` and single-part ``text/html`` drafts both support full body replacement; the rebuild follows the existing draft's content type, so a plain draft stays plain and an HTML draft stays HTML. Plain-text input supplied against an HTML draft is auto-converted to HTML, and HTML input supplied against a plain draft is stored verbatim as ``text/plain``. Reply drafts preserve their reply-quote tail (``> `` lines for plain, ``<blockquote>`` for HTML) when the body is supplied as a top-only update. Multipart drafts and drafts with attachments still fail when the body changes; in those cases the tool succeeds only when the effective body is unchanged (metadata-only update preserving the existing MIME tree). Edit those drafts in Gmail directly. For each of subject, body, recipient, cc, and bcc, omitting the parameter or passing ``None`` leaves that part of the draft unchanged (for cc/bcc, existing headers are kept; pass an empty list to clear).
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
draft_email_id | string | Required | The ID of the draft email to update. |
subject | string | Optional | Draft subject. Omit or pass None to leave the existing subject unchanged. |
body | string | Optional | Updated body for the draft. There is no `content_type` argument — the body is encoded to match the existing draft, and reply drafts re-attach their existing reply-quote tail. Omit or pass None to leave the body unchanged. |
recipient | string | Optional | To header. Omit or pass None to leave the existing recipient unchanged. |
cc | array<string> | Optional | Cc recipients. Omit or pass None to preserve the existing Cc header; pass an empty list to clear Cc. |
bcc | array<string> | Optional | Bcc recipients. Omit or pass None to preserve the existing Bcc header; pass an empty list to clear Bcc. |
Requirements
Output
json— A dictionary containing the updated draft email details with date in descriptive UTC formatGmail.WhoAmI
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get comprehensive user profile and Gmail account information. This tool provides detailed information about the authenticated user including their name, email, profile picture, Gmail account statistics, and other important profile details from Google services.
Parameters
No parameters required.
Requirements
Output
json— Get comprehensive user profile and Gmail account information.Gmail.WriteDraftEmail
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Compose a new email draft using the Gmail API.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
subject | string | Required | The subject of the draft email |
body | string | Required | The body of the email, as plain text or HTML. |
recipient | string | Required | The recipient of the draft email |
cc | array<string> | Optional | CC recipients of the draft email |
bcc | array<string> | Optional | BCC recipients of the draft email |
content_type | string | Optional | How the body is encoded on the wire. `auto` (default) sends as HTML and auto-converts plain-text input to paragraphs. `html` sends the body verbatim as HTML (use this when it contains entities or non-allow-listed tags); `plain` is plain text.plainhtmlauto |
Requirements
Output
json— A dictionary containing the created draft email details with date in descriptive UTC formatGmail.WriteDraftReplyEmail
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Compose a draft reply to an email message.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
body | string | Required | The body of the email, as plain text or HTML. |
reply_to_message_id | string | Required | The Gmail message ID of the message to draft a reply to |
reply_to_whom | string | Optional | Whether to reply to every recipient (including cc) or only to the original sender. Defaults to 'GmailReplyToWhom.ONLY_THE_SENDER'.every_recipientonly_the_sender |
cc | array<string> | Optional | Additional CC recipients. When replying to every recipient, merged with CC from the original message; duplicates are removed (RFC-aware). Duplicates of the reply's To recipients are dropped from Cc (RFC-aware mailbox comparison). The authenticated user's own email address is removed from Cc on replies. |
bcc | array<string> | Optional | Bcc recipients of the draft reply email. The authenticated user's own email address is removed from Bcc on replies. |
content_type | string | Optional | How the body is encoded on the wire. `auto` (default) sends as HTML and auto-converts plain-text input to paragraphs. `html` sends the body verbatim as HTML (use this when it contains entities or non-allow-listed tags); `plain` is plain text.plainhtmlauto |
Requirements
Output
json— Draft details; use draft_email_id (or id) for update/send/delete—not message.id.