Gmail
Connect Gmail once and hand every teammate a governed MCP endpoint with 57 tools ready to call from Claude, ChatGPT, Cursor, or any MCP client, inside the same permissions they already have, with every call checked and logged.
Automations & dashboards
From answering questions to doing the work
A person no longer has to ask. A trigger starts the work, inside the same permissions and the same audit log as everything else. Automations and live dashboards ship on the Black plan.
Automations
Put Gmail work on a schedule.
A trigger starts a sequence of steps: call a Gmail tool, transform the result, branch, wait, and ask a person when it matters.
Gmail digest
Run 418 · started 2 minutes ago · on behalf of Emma Laurent
-
✓
Schedule
Every weekday at 08:00
0.2s -
✓
Fetch drafts
Gmail
1.4s -
✓
Group by owner
Transform
0.1s -
✓
Draft the digest
Agent step
Ran with 4 tools, returned a structured summary
6.2s -
Approve the digest
Needs approval
Assigned to Michael Brennan
Approve Deny -
Post the digest
Gmail
Queued
Collections and dashboards
Report on Gmail without asking.
Collections hold your own data, written by an automation and read by a dashboard that refreshes on a schedule.
Gmail health
Refreshed 4 minutes ago · every 15 minutes · from the drafts collection
Drafts
1,284 ↓ 12%
Labels
96 ↓ 8%
Needs attention
3 ↑ 2
Updated this week
412 ↑ 9%
Drafts created
Last 14 days
By workspace
Share of activity
Engineering 34%
Product 27%
Support 21%
Sales 18%
AI tools
Gmail tools for your AI agents
57 tools are ready to call through Elaichi's MCP endpoint the moment you connect Gmail, governed by the same roles, restrictions, and audit log as everything else in Elaichi.
list_all_gmail_messages
Search and list Gmail messages matching a query. Use when locating specific emails by sender, subject, label, or unread state. Pass q with Gmail search syntax (from:, to:, subject:, label:, is:unread, has:attachment, after:, before:). Results are summaries (id and threadId only); hydrate via this resource's get with format=metadata. For conversation previews with snippets, prefer threads list instead. Returns one page; pass the response's next_cursor to fetch subsequent pages.
get_single_gmail_message_by_id
Read a single Gmail message: sender, subject, date, and snippet by default via format=metadata. Use when you know the exact message to inspect. Pass format=full only when you need the body to reply or summarize — metadata is faster and usually enough. Obtain id from messages list or threads get.
create_a_gmail_message
Send a Gmail message on behalf of the authenticated user. Provide the email as plain-text RFC 2822 MIME in the raw field (headers + blank line + body); Truto base64url-encodes it before sending, so do NOT pre-encode. For attachments, build a multipart/mixed MIME and pass the whole thing as raw. Returns the sent message resource including its id and threadId.
update_a_gmail_message_by_id
Modify labels on a Gmail message (addLabelIds / removeLabelIds) without changing the body. Use when starring, marking read/unread, archiving (remove INBOX), or applying user labels. Does NOT edit subject or body — use drafts for composition. Obtain id from messages.
gmail_messages_trash
Move a Gmail message to Trash (recoverable). Use when the user asks to delete an email and a soft delete is acceptable. Prefer this over messages delete. Obtain id from messages.
list_all_gmail_threads
Search and list Gmail conversations (threads) with a preview snippet per thread. Use when browsing recent correspondence or getting a conversation overview. Pass q with Gmail search syntax. For pinpointing one specific email, use messages list instead. Use threads get only when you need every message in the conversation. Returns one page; pass the response's next_cursor to fetch subsequent pages.
get_single_gmail_thread_by_id
Read a full Gmail conversation (thread) including its messages. Use when summarizing or replying in-thread and you need the complete exchange. For a single message, use messages get instead. Obtain id from threads.
update_a_gmail_thread_by_id
Modify labels on every message in a Gmail thread. Use when archiving, starring, or labeling a whole conversation at once. Obtain id from threads.
gmail_threads_trash
Move an entire Gmail conversation (thread) to Trash, including all messages. Use when the user wants to discard a whole thread. Prefer this over threads delete. Obtain id from threads.
create_a_gmail_batch
The batch endpoint allows you to group multiple Gmail API requests (such as sending messages, modifying labels, deleting drafts, etc.) into a single HTTP request. Each request is executed independently, and its responses are returned in a multipart response. This is especially useful for bulk operations such as modifying labels on many messages or sending multiple emails at once.
list_all_gmail_userinfo
Retrieves basic profile information about the authenticated user in Google Calendar. The response includes essential details such as the user's unique identifier (sub), full name (name), first name (given_name), last name (family_name), profile picture URL (picture), and email address (email).
get_single_gmail_attachment_by_id
Get a specific attachment from a Gmail message by attachment id. Returns the attachment payload including its base64url-encoded data and size. Required: message_id and id. user_id defaults to "me" (the authenticated user).
list_all_gmail_drafts
List Gmail drafts with each draft id and underlying message/thread ids (no body). Use when browsing unsent mail or resolving a draft to edit or send. Results are summaries; fetch content via this resource's get method. Pass q with Gmail search syntax when filtering. Returns one page; pass the response's next_cursor to fetch subsequent pages.
get_single_gmail_draft_by_id
Read one Gmail draft including its message headers and snippet (format=metadata) or full MIME (format=full). Use when reviewing or editing an unsent message before send. Obtain id from drafts.
create_a_gmail_draft
Create a Gmail draft (an unsent message saved in the mailbox). Pass the email as plain-text RFC 2822 MIME in message.raw and Truto base64url-encodes it before saving. Do not pre-encode. Returns the created draft including its id.
update_a_gmail_draft_by_id
Update an existing Gmail draft by its id, replacing its content. Pass the email as plain-text RFC 2822 MIME in message.raw and Truto base64url-encodes it before saving. Do not pre-encode. Returns the updated draft.
delete_a_gmail_draft_by_id
Permanently delete a Gmail draft by id (not moved to Trash). Use when discarding an unsent message. This delete is permanent and cannot be undone; confirm the exact id and get explicit user confirmation before calling. Obtain id from drafts.
gmail_drafts_send
Send an existing Gmail draft by its id. Obtain the id from create draft or list drafts. Returns the sent message including its id and threadId.
list_all_gmail_history
List the history of all changes to the mailbox for user_id after the specified startHistoryId in Gmail. Returns history records with id, messages, messagesAdded, messagesDeleted, labelsAdded, and labelsRemoved fields.
list_all_gmail_labels
List all Gmail labels (system and user-created) in one response. Use when resolving a label name to its id before filtering mail or applying labels. Gmail does not paginate this endpoint. To apply labels to mail, use messages update or threads update — not this method.
get_single_gmail_label_by_id
Read one Gmail label: name, type, and visibility settings. Use when inspecting a known label id. Obtain id from labels.
create_a_gmail_label
Create a user-defined Gmail label. Use when the user wants a new mailbox label for organizing mail. Returns the created label including its id. System labels cannot be created this way.
delete_a_gmail_label_by_id
Permanently delete a user-created Gmail label by its immutable id (e.g. Label_31 from labels). Use when removing a custom label. System labels (INBOX, STARRED, …) cannot be deleted — remove them from messages via messages update instead. This delete is permanent and cannot be undone; confirm the exact id and get explicit user confirmation before calling. Obtain id from labels.
update_a_gmail_label_by_id
Update a user-created Gmail label's name or visibility. Use when renaming a label. Obtain id from labels. System labels cannot be renamed.
list_all_gmail_settings_sendas
List send-as aliases for the specified user_id in Gmail. Returns the primary send-as address and any custom 'from' aliases in the sendAs array.
get_single_gmail_settings_senda_by_id
Get the specified send-as alias for user_id in Gmail. Returns the send-as alias details including email address and configuration. Fails with 404 if alias is not found.
create_a_gmail_settings_senda
Create a custom 'from' send-as alias for user_id in Gmail. Returns the created alias with fields including verification status and sanitized signature if provided.
update_a_gmail_settings_senda_by_id
Update a send-as alias for user_id and id in Gmail. Returns the updated send-as alias including fields like signature and email address. Note: Only service account clients with domain-wide authority can update non-primary addresses.
delete_a_gmail_settings_senda_by_id
Delete the specified send-as alias for user_id in Gmail. Revokes any verification required for using the alias. Returns an empty JSON object on success.
list_all_gmail_settings_filters
Get message filters for a Gmail user with user_id. Returns a list of filters including criteria and actions for each filter.
get_single_gmail_settings_filter_by_id
Get a filter by id for the user identified by user_id in Gmail. Returns the filter's id, criteria, and action fields.
create_a_gmail_settings_filter
Create a filter for the user identified by user_id in Gmail. Returns the created filter including its id, criteria, and action. Note: maximum of 1,000 filters can be created.
delete_a_gmail_settings_filter_by_id
Delete a filter by id for the user_id in Gmail. Returns an empty JSON object on success.
list_all_gmail_settings_forwarding_addresses
Get the list of forwarding addresses for the specified user_id in Gmail. Returns forwardingAddresses array containing addresses that may be used for forwarding.
get_single_gmail_settings_forwarding_address_by_id
Get the specified forwarding address for user_id in Gmail. Returns forwardingEmail and verification status fields.
create_a_gmail_settings_forwarding_address
Create a forwarding address for user_id in Gmail. Returns the forwarding address resource including verification status which may be 'pending' if ownership verification is required.
delete_a_gmail_settings_forwarding_address_by_id
Delete the specified forwarding address for user_id in Gmail. Returns an empty JSON object on success. Requires forwardingEmail as id.
list_all_gmail_settings_delegates
List delegates for the specified userId in Gmail. Returns delegates array with delegate details including verification status.
get_single_gmail_settings_delegate_by_id
Get the specified delegate for user_id in Gmail. Returns delegate's email and related delegate information. Note: delegateEmail must be the primary email address.
create_a_gmail_settings_delegate
Create a delegate for the user identified by user_id in Gmail. Returns the delegate's email address and verification status. The delegate must be in the same Google Workspace organization and is added with status accepted without verification email.
delete_a_gmail_settings_delegate_by_id
Remove the specified delegate by delegate_email for the user identified by user_id in Gmail. The delegate user must be referred to by their primary email address. Response is an empty JSON object.
list_all_gmail_settings_cse_keypairs
List client-side encryption key pairs for a user in Gmail. Requires user_id. Returns cseKeyPairs array with key pair details and nextPageToken for pagination.
get_single_gmail_settings_cse_keypair_by_id
Get an existing client-side encryption key pair by user_id and id in Gmail. Returns key pair details including encryption keys and metadata.
create_a_gmail_settings_cse_keypair
Create and upload a client-side encryption S/MIME public key certificate chain and private key metadata for the authenticated user in Gmail. Requires user_id. Returns the created CseKeyPair including public key certificate chain and metadata.
list_all_gmail_settings_cse_identities
List client-side encrypted identities for a user in Gmail. Requires user_id. Returns cseIdentities array with identity details and nextPageToken for pagination.
get_single_gmail_settings_cse_identity_by_id
Get client-side encryption identity configuration for user_id and id in Gmail. Returns fields of the CseIdentity resource.
create_a_gmail_settings_cse_identity
Create and configure a client-side encryption identity authorized to send mail from the user account in Gmail. Requires user_id. Returns the created CseIdentity with its configuration details.
update_a_gmail_settings_cse_identity_by_id
Update a client-side encryption identity in Gmail by associating a different key pair. Requires user_id and id (emailAddress). Returns the updated CseIdentity fields including emailAddress and key_pair_configuration.
delete_a_gmail_settings_cse_identity_by_id
Delete a client-side encryption identity for the authenticated user in Gmail. Requires user_id and cse_email_address. The identity cannot be restored after deletion.
get_single_gmail_settings_auto_forwarding_by_id
Get the auto-forwarding setting for the specified account in Gmail. Requires user_id. Returns auto-forwarding configuration including enabled status, email address, and disposition.
update_a_gmail_settings_auto_forwarding_by_id
Update the auto-forwarding setting for the specified user_id in Gmail. Requires a verified forwarding address when auto-forwarding is enabled. Returns the updated AutoForwarding configuration.
get_single_gmail_settings_imap_by_id
Get IMAP settings for the user identified by user_id in Gmail. Returns fields including enabled status, auto-expunge, and folder size limits.
update_a_gmail_settings_imap_by_id
Update IMAP settings for a user in Gmail. Requires userId as the user's email address or 'me'. Returns the updated ImapSettings object.
get_single_gmail_settings_language_by_id
Get language settings for a user in Gmail. Requires user_id. Returns language code and display name fields in the response.
update_a_gmail_settings_language_by_id
Update language settings for a user in Gmail using user_id. Returns the saved displayLanguage which may differ from the requested value if a close variant is used.
get_single_gmail_settings_pop_by_id
Get POP settings for a user in Gmail. Requires user_id. Returns fields including accessWindow, disposition, and enable status.
update_a_gmail_settings_pop_by_id
Update POP settings for the user identified by user_id in Gmail. Returns the updated PopSettings including access window and disposition fields.
No tools match your search.
How it works
From Gmail account to governed MCP endpoint
Connect
Link a Gmail account through Elaichi's hosted connect flow. Credentials are vaulted, so nobody, including the AI, ever sees them.
Compose
The connection becomes a toolbox instantly. Curate which Gmail tools are exposed, rename them, or freeze arguments.
Authorize
Point Claude, ChatGPT, Cursor, or any MCP client at the one Elaichi endpoint and sign in with OAuth, governed by roles, restrictions, and audit logs.
Put your agents to work in the tools you already use
Start a 14-day Gold trial. Connect a product, curate a toolbox, and paste a governed MCP endpoint into Claude, ChatGPT, or Cursor in minutes.