← Back to all apps

Gmail

Communicationby Google
Launched Mar 18, 2026 on Claude

Connect Gmail to Claude to quickly find important emails and understand long conversations. Claude can search through your messages, read entire email threads to give you context, and help you stay on top of your inbox. Perfect for finding that message you remember sending, catching up on email chains you missed, or preparing for meetings.

26ChatGPT Tools
5Claude Tools
GoogleDeveloper
CommunicationCategory

Use Cases

communication

Available Tools

Apply Labels To Emails

apply_labels_to_emails
Full Description

Apply labels to Gmail messages using label names rather than Gmail label IDs. This is the preferred labeling action for models because it avoids a separate label-id lookup step.

Parameters (1 required, 3 optional)
Required
message_idsarray

Gmail message IDs returned by Gmail search/read results. Use `message_ids` from search_email_ids or `id` fields from email results. Do not pass placeholder values like `dummy`, `latest`, `gmail:<id>`, draft IDs, thread IDs, email addresses, subjects, or Gmail UI URLs.

Optional
add_label_namesarray

Gmail label display names. This action accepts names and can create missing labels when create_missing_labels is true; batch_modify_email requires existing Gmail label IDs.

Default: null
create_missing_labelsboolean

Whether to create missing labels before applying them.

Default: False
remove_label_namesarray

Gmail label display names. This action accepts names and can create missing labels when create_missing_labels is true; batch_modify_email requires existing Gmail label IDs.

Default: null

Archive Emails

archive_emails
Full Description

Archive one or more existing Gmail messages by removing Gmail's INBOX label. The messages remain in Gmail and can still be found later.

Parameters (1 required)
Required
message_idsarray

Gmail message IDs returned by Gmail search/read results. Use `message_ids` from search_email_ids or `id` fields from email results. Do not pass placeholder values like `dummy`, `latest`, `gmail:<id>`, draft IDs, thread IDs, email addresses, subjects, or Gmail UI URLs.

Batch Modify Email

batch_modify_email
Full Description

Add or remove Gmail labels on a batch of individual messages. This modifies messages, not whole threads. To label by subject, sender, or search query, search first or use bulk_label_matching_emails/apply_labels_to_emails.

Parameters (1 required, 2 optional)
Required
message_idsarray

Gmail message IDs returned by Gmail search/read results. Use `message_ids` from search_email_ids or `id` fields from email results. Do not pass placeholder values like `dummy`, `latest`, `gmail:<id>`, draft IDs, thread IDs, email addresses, subjects, or Gmail UI URLs.

Optional
add_labelsarray

Existing Gmail label IDs to add, not label display names. Prefer apply_labels_to_emails when you have label names or want missing labels created. Do not pass search operators such as -in:trash, ALL, or display names.

Default: null
remove_labelsarray

Existing Gmail label IDs to remove, not label display names. Prefer apply_labels_to_emails when you have label names. Do not pass search operators such as -in:trash, ALL, or display names.

Default: null

Batch Read Email

batch_read_email
Full Description

Read multiple Gmail messages in a single call. Each successful result includes the message body plus metadata such as sender/recipient fields, subject, snippet, labels, timestamp, and attachment metadata.

Parameters (1 required, 3 optional)
Required
message_idsarray

Gmail message IDs returned by Gmail search/read results. Use `message_ids` from search_email_ids or `id` fields from email results. Do not pass placeholder values like `dummy`, `latest`, `gmail:<id>`, draft IDs, thread IDs, email addresses, subjects, or Gmail UI URLs.

Optional
max_messagesinteger

Ignored compatibility alias; message_ids controls the batch.

Default: null
max_output_tokensinteger

Ignored compatibility alias; output size is not token-limited here.

Default: null
max_resultsinteger

Ignored compatibility alias; message_ids controls the batch.

Default: null

Batch Read Email Personalization

batch_read_email_personalization
Full Description

Read Gmail emails with personalization parsing.

Parameters (1 required)
Required
message_idsarray

Batch Read Email Threads

batch_read_email_threads
Full Description

Fetch multiple Gmail conversation threads in one call. Pass message ids by default, or pass id_type='thread' when the provided ids are thread ids. Do not mix message IDs and thread IDs in one call. Responses are deduplicated by resolved thread_id, preserving the first occurrence, and exact duplicate input ids are coalesced before fetching.

Parameters (1 required, 2 optional)
Required
idsarray

Gmail message IDs when id_type='message' or Gmail thread IDs when id_type='thread'. Every entry must use the same ID type; split mixed message/thread IDs into separate calls.

Optional
id_typestring

Interpret each entry in `ids` as `message` or `thread`. Set to `thread` only when every value came from thread_id or thread_ids.

Options:messagethread
Default: message
max_messagesinteger

Maximum number of messages to include per thread.

Default: 20

Batch Read Thread

batch_read_thread
Full Description

Fetch multiple known Gmail threads without resolving message IDs first.

Parameters (1 required, 1 optional)
Required
thread_idsarray

Gmail thread IDs returned by Gmail thread search/read results or email `thread_id` fields. Do not pass message IDs, draft IDs, placeholder values like `dummy` or `latest`, email addresses, subjects, or Gmail UI URLs.

Optional
max_messagesinteger

Maximum number of messages to include per thread.

Default: 20

Bulk Label Matching Emails

bulk_label_matching_emails
Full Description

Apply a label to every Gmail message matching a Gmail search query. This action performs the search and label batching server-side, so it is suitable for very large backfills without sending message IDs through the model context.

Parameters (2 required, 2 optional)
Required
label_namestring

Label name to apply to all matching messages.

querystring

Gmail search query used to find messages to label.

Optional
archiveboolean

Whether to archive matching messages after labeling them.

Default: False
create_label_if_missingboolean

Whether to create the label first if it does not already exist.

Default: True

Create Draft

create_draft
Full Description

Create a Gmail draft without sending it. Use this when the user wants to review or manually send the message later in Gmail.

Parameters (2 required, 8 optional)
Required
subjectstring

Draft subject line.

tostring

Comma-separated recipient email addresses.

Optional
attachment_filesarray

Optional file references to attach to the outgoing Gmail message. Pass file handles or workspace file paths; do not pass base64 content.

Default: null
bccstring

Optional comma-separated BCC recipients.

bodystring

Email body content. By default this is interpreted as Markdown and sent as multipart plain text plus rendered HTML. For raw HTML, pass html_body or set content_type='text/html'.

Default: null
body_fileobject

Optional file reference containing the outgoing body. Pass file handles or workspace/local HTML or text file paths; do not pass base64 content. HTML files are sent as text/html unless content_type explicitly requests text/plain or text/markdown.

Default: null
ccstring

Optional comma-separated CC recipients.

content_typestring

How to interpret body or body_file when html_body is not provided. Use text/markdown for existing Markdown behavior, text/html to preserve raw HTML, or text/plain for a plain-text-only message.

Options:text/markdowntext/htmltext/plain
Default: text/markdown
html_bodystring

Optional raw HTML body to send as the message's text/html part. This preserves explicit email-client HTML such as tables, inline styles, width rules, and spacer layouts. Provide body as the plain-text fallback when possible.

Default: null
reply_message_idstring

Optional Gmail message ID to reply to so the draft stays threaded. Gmail message ID returned by Gmail search/read results. Use the `id` or `message_id` field from an email result. Do not pass placeholder values like `dummy`, `latest`, `gmail:<id>`, draft IDs, thread IDs, email addresses, subjects, or Gmail UI URLs.

Default: null

Create Label

create_label
Full Description

Create a Gmail label. If the label already exists, the existing label is returned instead of creating a duplicate.

Parameters (1 required, 2 optional)
Required
namestring

Name of the Gmail label to create.

Optional
label_list_visibilitystring

Visibility of the label itself in Gmail label lists.

Options:labelShowlabelShowIfUnreadlabelHide
Default: labelShow
message_list_visibilitystring

Visibility of messages carrying this label in Gmail message lists.

Options:showhide
Default: show

Delete Emails

delete_emails
Full Description

Move one or more existing Gmail messages to Trash. This matches Gmail's delete behavior and does not permanently delete the messages.

Parameters (1 required)
Required
message_idsarray

Gmail message IDs returned by Gmail search/read results. Use `message_ids` from search_email_ids or `id` fields from email results. Do not pass placeholder values like `dummy`, `latest`, `gmail:<id>`, draft IDs, thread IDs, email addresses, subjects, or Gmail UI URLs.

Forward Emails

forward_emails
Full Description

Forward one or more existing Gmail messages. Each source message is sent as a separate forwarded email, with the original message inlined below any optional note in the forwarded body and the original attachments preserved on the new outbound email. The note is rendered from Markdown and inserted at the top of each forwarded message. When Gmail thread metadata is available, the sent forward is also kept associated with the original conversation in the sender's mailbox.

Parameters (2 required, 3 optional)
Required
message_idsarray

Gmail message IDs returned by Gmail search/read results. Use `message_ids` from search_email_ids or `id` fields from email results. Do not pass placeholder values like `dummy`, `latest`, `gmail:<id>`, draft IDs, thread IDs, email addresses, subjects, or Gmail UI URLs.

tostring

Comma-separated recipient email addresses.

Optional
bccstring

Optional comma-separated BCC recipients.

ccstring

Optional comma-separated CC recipients.

notestring

Optional note to place at the top of each forwarded email body. Supports Markdown formatting.

Get Profile

get_profile
Full Description

Return the current Gmail user's profile information.

Get Recent Emails

get_recent_emails
Full Description

Return the most recently received Gmail messages.

Parameters (0 required, 3 optional)
Optional
label_idsarray

Optional Gmail label IDs, not Gmail search operators and not display names. Use exact label IDs such as INBOX, UNREAD, SENT, TRASH, SPAM, CATEGORY_PROMOTIONS, or user label IDs returned in list_labels.labels[].id. Put Gmail search syntax such as -in:spam, -in:trash, -category:promotions, label:Newsletters, category:promotions, newer_than:7d, or from:alice@example.com in query. Do not pass ALL, label display names like Newsletters, or custom names like DA/30 Waiting - Cody unless list_labels returned that exact value as id.

Default: null
tagsarray
Default: null
top_kinteger

Maximum number of results to return. Must be at least 1.

Default: 5

List Drafts

list_drafts
Full Description

List Gmail drafts with summarized metadata so they can be reviewed or selected.

Parameters (0 required, 2 optional)
Optional
max_resultsinteger

Maximum number of results to return. Must be at least 1.

Default: 10
next_page_tokenstring

Pagination token from a previous drafts list.

List Labels

list_labels
Full Description

List Gmail labels with per-label counts. Use this for questions like how many emails are in the inbox or unread, because Gmail exposes those totals directly on labels without paging through messages. For search label filters, copy labels[].id, not labels[].name.

Parameters (0 required, 1 optional)
Optional
label_namesarray

Optional Gmail label display names to filter by. For search label filters, copy labels[].id from the response, not labels[].name.

Default: null

Oai User Fetch

oai_user_fetch
Full Description

Uses mfetch to perform document fetch for link following and citations.

Parameters (2 required)
Required
content_locationstring

Content location returned by oai_user_search.

document_idstring

Document id returned by oai_user_search.

Oai User Search

oai_user_search
Full Description

Uses synced RAG index to perform semantic search against query. The index is refreshed until (now - 2h).

Parameters (1 required)
Required
querystring

Semantic search query for the synced knowledge store.

Read Attachment

read_attachment
Full Description

Read one attachment from a Gmail message. First read/search the parent message and select an entry from its attachments or inline_images. Pass the parent message id as message_id. Prefer the entry's non-null attachment_id; when no attachment_id is present, pass the exact filename instead. Do not synthesize attachment IDs from filenames, content IDs, x-attachment IDs, URLs, or user text.

Parameters (1 required, 2 optional)
Required
message_idstring

Gmail message ID returned by Gmail search/read results. Use the `id` or `message_id` field from an email result. Do not pass placeholder values like `dummy`, `latest`, `gmail:<id>`, draft IDs, thread IDs, email addresses, subjects, or Gmail UI URLs. Use the parent message ID.

Optional
attachment_idstring

Exact Gmail attachment_id copied from the selected attachment's attachments[].attachment_id or inline_images[].attachment_id on the parent message. Do not pass filenames, message IDs, thread IDs, Content-ID, X-Attachment-Id, URLs, or guessed values.

filenamestring

Exact attachment filename from the parent message's attachments or inline_images. Use only when attachment_id is absent or unknown. If multiple attachments share this filename, retry with attachment_id.

Read Attachment Personalization

read_attachment_personalization
Full Description

Read a Gmail attachment using personalization behavior.

Parameters (2 required)
Required
filenamestring
message_idstring

Read Email

read_email
Full Description

Fetch a single Gmail message including its body.

Parameters (1 required, 1 optional)
Required
message_idstring

Gmail message ID returned by Gmail search/read results. Use the `id` or `message_id` field from an email result. Do not pass placeholder values like `dummy`, `latest`, `gmail:<id>`, draft IDs, thread IDs, email addresses, subjects, or Gmail UI URLs.

Optional
include_raw_mimeboolean

When true, bypass the text sync cache and include the original RFC822 MIME source plus Gmail raw base64url payload. Use this to verify HTML layout, MIME boundaries, and exact content headers.

Default: False

Read Email Thread

read_email_thread
Full Description

Fetch an entire Gmail conversation thread. Pass a message id by default, or pass id_type='thread' when you already have a thread id. Do not pass placeholder values, Gmail URLs, subjects, or email addresses. If max_messages is provided, return the N most recent messages in the thread; it defaults to 20.

Parameters (1 required, 2 optional)
Required
idstring

A Gmail message ID when id_type='message'; a Gmail thread ID when id_type='thread'. Do not mix message IDs and thread IDs in this field.

Optional
id_typestring

Interpret `id` as `message` or `thread`. Set to `thread` only when the value came from a thread_id or thread_ids field.

Options:messagethread
Default: message
max_messagesinteger

Maximum number of messages to include from the thread.

Default: 20

Search Email Ids

search_email_ids
Full Description

Retrieve Gmail message IDs that match a search. Put Gmail search operators in query, not label_ids. Prefer list_labels for label counts.

Parameters (0 required, 5 optional)
Optional
label_idsarray

Optional Gmail label IDs, not Gmail search operators and not display names. Use exact label IDs such as INBOX, UNREAD, SENT, TRASH, SPAM, CATEGORY_PROMOTIONS, or user label IDs returned in list_labels.labels[].id. Put Gmail search syntax such as -in:spam, -in:trash, -category:promotions, label:Newsletters, category:promotions, newer_than:7d, or from:alice@example.com in query. Do not pass ALL, label display names like Newsletters, or custom names like DA/30 Waiting - Cody unless list_labels returned that exact value as id.

Default: null
max_resultsinteger

Maximum number of results to return. Must be at least 1.

Default: 10
next_page_tokenstring

Pagination token from a previous search.

querystring

Gmail search query. Put Gmail search operators here, including -in:spam, -in:trash, -category:promotions, category:promotions, label:<display name>, from:, to:, after:, before:, newer_than:, and has:attachment.

tagsarray
Default: null

Search Emails

search_emails
Full Description

Search Gmail for emails matching a query or exact label IDs. Put all Gmail search operators in query, including after:, before:, from:, to:, subject:, has:attachment, -in:spam, -in:trash, -category:promotions, and label:<display name>. Examples: query="-in:spam -in:trash", label_ids=None; query="", label_ids=["INBOX", "UNREAD"]; query="label:Newsletters newer_than:30d", label_ids=None. Non-examples: label_ids=["-in:spam"], label_ids=["ALL"], label_ids=["Newsletters"].

Parameters (0 required, 5 optional)
Optional
label_idsarray

Optional Gmail label IDs, not Gmail search operators and not display names. Use exact label IDs such as INBOX, UNREAD, SENT, TRASH, SPAM, CATEGORY_PROMOTIONS, or user label IDs returned in list_labels.labels[].id. Put Gmail search syntax such as -in:spam, -in:trash, -category:promotions, label:Newsletters, category:promotions, newer_than:7d, or from:alice@example.com in query. Do not pass ALL, label display names like Newsletters, or custom names like DA/30 Waiting - Cody unless list_labels returned that exact value as id.

Default: null
max_resultsinteger

Maximum number of results to return. Must be at least 1.

Default: 10
next_page_tokenstring

Pagination token from a previous search.

querystring

Gmail search query. Put Gmail search operators here, including -in:spam, -in:trash, -category:promotions, category:promotions, label:<display name>, from:, to:, after:, before:, newer_than:, and has:attachment.

tagsarray
Default: null

Search Emails Personalization

search_emails_personalization
Full Description

Search Gmail for email summaries using personalization behavior.

Parameters (0 required, 4 optional)
Optional
max_resultsinteger
Default: 10
next_page_tokenstring
querystring
tagsarray
Default: null

Search Thread Ids

search_thread_ids
Full Description

Retrieve Gmail thread IDs that match a search. Put Gmail search operators in query, not label_ids.

Parameters (0 required, 4 optional)
Optional
label_idsarray

Optional Gmail label IDs, not Gmail search operators and not display names. Use exact label IDs such as INBOX, UNREAD, SENT, TRASH, SPAM, CATEGORY_PROMOTIONS, or user label IDs returned in list_labels.labels[].id. Put Gmail search syntax such as -in:spam, -in:trash, -category:promotions, label:Newsletters, category:promotions, newer_than:7d, or from:alice@example.com in query. Do not pass ALL, label display names like Newsletters, or custom names like DA/30 Waiting - Cody unless list_labels returned that exact value as id.

Default: null
max_resultsinteger

Maximum number of results to return. Must be at least 1.

Default: 10
next_page_tokenstring

Pagination token from a previous search.

querystring

Gmail search query. Put Gmail search operators here, including -in:spam, -in:trash, -category:promotions, category:promotions, label:<display name>, from:, to:, after:, before:, newer_than:, and has:attachment.

Send Draft

send_draft
Full Description

Send an existing Gmail draft as currently stored. Use this after the user has reviewed the draft or after you update it with update_draft.

Parameters (1 required)
Required
draft_idstring

Gmail draft ID returned by create_draft, update_draft, or list_drafts as `draft_id`. Do not pass the draft's underlying message_id, thread_id, subject, recipient email, placeholder values, or Gmail UI URLs.

Send Email

send_email
Full Description

Send an email from the authenticated Gmail account.

Parameters (2 required, 8 optional)
Required
subjectstring

Email subject line.

tostring

Comma-separated recipient email addresses.

Optional
attachment_filesarray

Optional file references to attach to the outgoing Gmail message. Pass file handles or workspace file paths; do not pass base64 content.

Default: null
bccstring

Optional comma-separated BCC recipients.

bodystring

Email body content. By default this is interpreted as Markdown and sent as multipart plain text plus rendered HTML. For raw HTML, pass html_body or set content_type='text/html'.

Default: null
body_fileobject

Optional file reference containing the outgoing body. Pass file handles or workspace/local HTML or text file paths; do not pass base64 content. HTML files are sent as text/html unless content_type explicitly requests text/plain or text/markdown.

Default: null
ccstring

Optional comma-separated CC recipients.

content_typestring

How to interpret body or body_file when html_body is not provided. Use text/markdown for existing Markdown behavior, text/html to preserve raw HTML, or text/plain for a plain-text-only message.

Options:text/markdowntext/htmltext/plain
Default: text/markdown
html_bodystring

Optional raw HTML body to send as the message's text/html part. This preserves explicit email-client HTML such as tables, inline styles, width rules, and spacer layouts. Provide body as the plain-text fallback when possible.

Default: null
reply_message_idstring

Optional Gmail message ID to reply to so the email stays threaded.

Default: null

Update Draft

update_draft
Full Description

Update an existing Gmail draft in place. Omitted fields preserve the current draft content; pass an empty string only when the user explicitly wants to clear that field. Drafts with attachments are not editable through this action.

Parameters (1 required, 8 optional)
Required
draft_idstring

Gmail draft ID returned by create_draft, update_draft, or list_drafts as `draft_id`. Do not pass the draft's underlying message_id, thread_id, subject, recipient email, placeholder values, or Gmail UI URLs.

Optional
bccstring

New BCC list. Leave null to keep the existing value.

Default: null
bodystring

New draft body content. Leave null to keep the existing value unless html_body or body_file is provided.

Default: null
body_fileobject

Optional file reference containing the outgoing body. Pass file handles or workspace/local HTML or text file paths; do not pass base64 content. HTML files are sent as text/html unless content_type explicitly requests text/plain or text/markdown.

Default: null
ccstring

New CC list. Leave null to keep the existing value.

Default: null
content_typestring

How to interpret body or body_file when html_body is not provided. Use text/markdown for existing Markdown behavior, text/html to preserve raw HTML, or text/plain for a plain-text-only message.

Options:text/markdowntext/htmltext/plain
Default: text/markdown
html_bodystring

Optional raw HTML body to send as the message's text/html part. This preserves explicit email-client HTML such as tables, inline styles, width rules, and spacer layouts. Provide body as the plain-text fallback when possible.

Default: null
subjectstring

New subject line. Leave null to keep the existing value.

Default: null
tostring

New recipient list. Leave null to keep the existing value.

Default: null