Manage emails, compose messages, and organize your inbox
GAIA connects to Gmail via MCP (Model Context Protocol) and exposes every action as a natural-language command. Tell GAIA what you want and it handles the rest, automatically.
Gmail Add Label To Email
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).
Gmail Batch Delete Messages
Tool to permanently delete multiple Gmail messages in bulk. Use when you need to efficiently remove large numbers of emails (e.g., retention enforcement, mailbox hygiene).
Gmail Batch Modify Messages
Modify labels on multiple Gmail messages in one efficient API call. Supports up to 1,000 messages per request for bulk operations like archiving, marking as read/unread, or applying custom labels.
Gmail Create Email Draft
Creates a Gmail email draft. All recipients (recipient_email, cc, bcc) are optional - drafts can be created without recipients and edited later before sending. At least one of subject or body must be provided. Supports To/Cc/Bcc, subject, plain/HTML body (ensure `is_html=True` for HTML), attachments, and threading. When creating a draft reply to an existing thread (thread_id provided), leave subject empty to stay in the same thread; setting a subject will create a NEW thread instead.
Gmail Create Label
Creates a new label with a unique name in the specified user's Gmail account.
Gmail Delete Draft
Permanently deletes a specific Gmail draft using its ID; ensure the draft exists and the user has necessary permissions for the given `user_id`.
Gmail Delete Label
Permanently DELETES a user-created Gmail label from the account (not from a message). WARNING: This action DELETES the label definition itself, removing it from all messages. System labels (INBOX, SENT, UNREAD, etc.) cannot be deleted. To add/remove labels from specific messages, use GMAIL_ADD_LABEL_TO_EMAIL action instead.
Gmail Delete Message
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.
Gmail 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`.
Gmail Forward Message
Forward an existing Gmail message to specified recipients, preserving original body and attachments.
Gmail Get Attachment
Retrieves a specific attachment by ID from a message in a user's Gmail mailbox, requiring valid message and attachment IDs.
Gmail Get Auto Forwarding
Tool to get the auto-forwarding setting for the specified account. Use when you need to retrieve the current auto-forwarding configuration including enabled status, forwarding email address, and message disposition.
Gmail Get Contacts
Fetches contacts (connections) for the authenticated Google account, allowing selection of specific data fields and pagination.
Gmail Get Language Settings
Tool to retrieve the language settings for a Gmail user. Use when you need to determine the display language preference for the authenticated user or a specific Gmail account.
Gmail 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.
Gmail Get Profile
Retrieves key Gmail profile information (email address, message/thread totals, history ID) for a user.
Gmail Get Vacation Settings
Tool to retrieve vacation responder settings for a Gmail user. Use when you need to check if out-of-office auto-replies are configured and view their content.
Gmail List Cse Identities
Tool to list client-side encrypted identities for an authenticated user. Use when you need to retrieve CSE identity configurations including key pair associations.
Gmail List Cse Keypairs
Tool to list client-side encryption key pairs for an authenticated user. Use when you need to retrieve CSE keypair configurations including public keys and enablement states. Supports pagination for large result sets.
Gmail 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.
Gmail List History
Tool to list Gmail mailbox change history since a known startHistoryId. Use when performing incremental mailbox syncs to fetch only new changes.
Gmail List Labels
Retrieves a list of all system and user-created labels for the specified Gmail account.
Gmail List Send As
Lists the send-as aliases for a Gmail account, including the primary address and custom 'from' aliases. Use when you need to retrieve available sending addresses for composing emails.
Gmail List Smime Info
Lists S/MIME configs for the specified send-as alias. Use when you need to retrieve all S/MIME certificate configurations associated with a specific send-as email address.
Gmail List Threads
Retrieves a list of email threads from a Gmail account, identified by `user_id` (email address or 'me'), supporting filtering and pagination.
Gmail Modify Thread Labels
Adds or removes specified existing label IDs from a Gmail thread, affecting all its messages; ensure the thread ID is valid.
Gmail Move To Trash
Moves an existing, non-deleted email message to the trash for the specified user.
Gmail Patch Label
Patches the specified label.
Gmail Reply To Thread
Sends a reply within a specific Gmail thread using the original thread's subject, requiring a valid `thread_id` and at least one of recipient_email, cc, or bcc must be provided. Supports attachments via the `attachment` parameter with valid `s3key`, `mimetype`, and `name`.
Gmail Search People
Searches contacts by matching the query against names, nicknames, emails, phone numbers, and organizations, optionally including 'Other Contacts'.
Gmail Send Draft
Sends the specified, existing draft to the recipients in the To, Cc, and Bcc headers.
Gmail Send Email
Sends an email via Gmail API using the authenticated user's Google profile display name. At least one of 'to' (or 'recipient_email'), 'cc', or 'bcc' must be provided. At least one of subject or body must be provided. Requires `is_html=True` if the body contains HTML. For attachments, you must provide a FileUploadable object with valid `s3key` (obtained from a previous file download action like GMAIL_GET_ATTACHMENT), `mimetype` (e.g., 'image/png', 'application/pdf'), and `name` (filename). All common file types including PNG, JPG, PDF, MP4, etc. are supported. Gmail API limits total message size to ~25 MB after base64 encoding. IMPORTANT WORKFLOW: Unless the user explicitly requests immediate sending, prefer creating a draft first using GMAIL_CREATE_EMAIL_DRAFT for user review. If a draft was already created in the current conversation, use GMAIL_SEND_DRAFT with the draft_id instead of this tool.
Gmail Settings Get Imap
Retrieves the IMAP settings for a Gmail user account, including whether IMAP is enabled, auto-expunge behavior, expunge behavior, and maximum folder size.
Gmail Settings Get Pop
Tool to retrieve POP settings for a Gmail account. Use when you need to check the current POP configuration including access window and message disposition.
Gmail Settings Send As Get
Tool to retrieve a specific send-as alias configuration for a Gmail user. Use when you need to get details about a send-as email address including display name, signature, SMTP settings, and verification status. Fails with HTTP 404 if the specified address is not a member of the send-as collection.
Gmail Mark As Read
Mark Gmail messages as read (removes the UNREAD label).
Gmail Mark As Unread
Mark Gmail messages as unread (adds the UNREAD label).
Gmail Archive Email
Archive Gmail messages (removes the INBOX label, moving to All Mail).
Gmail Star Email
Star or unstar Gmail messages (adds/removes the STARRED label).
Gmail Get Unread Count
Get message counts using lightweight Gmail APIs. Supports two modes: 1) Label mode (default): returns per-label unread + total counts 2) Query mode: returns count estimates for a Gmail search query, with an unread-filtered estimate as well
Gmail Get Contact List
Extract unique contacts from email history matching a Gmail search query.
Gmail Custom Gather Context
Get Gmail context snapshot: profile info, inbox unread count, and recent message IDs. Zero required parameters. Returns current user's Gmail state for situational awareness.
Gmail Fetch Messages
Fetch Gmail messages matching a query/timeframe, exhaustively. The canonical read tool. Server-side paginates the Gmail API and returns the full set of matching messages in one call, so a nextPageToken never escapes the process and results are never silently capped (unlike a single fixed-size list fetch). Supports a ``timeframe`` convenience enum (``today``, ``7d``, ``this_week``, etc.) resolved to Gmail's after:/before: operators in the user's home timezone (read from the run's LangGraph ``configurable``). Small results render the inbox email-list card in chat and are returned inline. When the aggregate is too large to inline, the tool writes a JSONL file to the session workspace and returns a digest + read_plan; the agent fans out parallel reads over the chunks or mines it with ``query_json``/``grep``.
Gmail Fetch Thread
Reconstruct one or more Gmail conversation threads by id. The canonical thread-read tool. Fetches each ``thread_id`` (batched, concurrently) and returns its messages in conversation order, shaped exactly like ``GMAIL_FETCH_MESSAGES`` results: normalized body, attachment metadata, same ``fields``/``body_processing`` contract, so there is one read path, not a divergent raw thread view. Get thread ids from the ``threadId`` on ``GMAIL_FETCH_MESSAGES`` results. Small results render the email-list card inline; large ones offload to a JSONL file (each line a message, carrying ``threadId`` to regroup) with a read_plan the agent mines with ``query_json``/``grep``.
Set up your Gmail automation in three simple steps, no code required.
Connect Gmail to GAIA
Open the GAIA Marketplace, find Gmail, and click "Add to your GAIA". You'll be redirected to Google's OAuth consent screen — grant mail access and you're done in under two minutes.
Tell GAIA what to do with your email
Say "send Alex a follow-up about the proposal" or "find all emails from Stripe this month and summarise them". GAIA handles composing, sending, searching, and summarising.
GAIA manages your inbox in the background
Set up email triggers — GAIA can notify you on Slack when a VIP sender writes, automatically log incoming leads to a spreadsheet, or send you a weekly summary of unread threads.
Everything you need to know about the GAIA Gmail integration.
Gmail is just one piece of the puzzle. GAIA integrates with 50+ tools across communication, communication, productivity, and more, letting you build cross-tool automations in plain English without writing a single line of code.
Browse all integrations