Read, send, draft, delete, and organize Gmail emails
list_labels(): List all Gmail labels (system: INBOX, SENT, TRASH, SPAM, DRAFT, IMPORTANT, STARRED, UNREAD; plus user-created labels).
list_emails(label?, max_results?, include_spam_trash?): List emails by label.
label (string, optional, default: "INBOX"): Label to filter by (INBOX, SENT, DRAFT, TRASH, SPAM, STARRED, IMPORTANT, or custom label ID)max_results (integer, optional, default: 10, max: 100): Number of emails to returninclude_spam_trash (boolean, optional, default: false): Include SPAM and TRASHsearch_emails(query, max_results?): Search Gmail using query syntax.
query (string, required): Gmail search query (from:, to:, subject:, is:unread, has:attachment, after:, before:, older_than:, newer_than:)max_results (integer, optional, default: 10, max: 50): Number of resultsread_email(message_id): Read a full email including body and attachments.
message_id (string, required): Gmail message ID (from list_emails or search_emails)send_email(to, subject, body, cc?, bcc?, reply_to?, in_reply_to?, html_body?): Send an email.
to (string, required): Recipient(s), comma-separatedsubject (string, required): Email subjectbody (string, required): Plain text email bodycc (string, optional): CC recipient(s)bcc (string, optional): BCC recipient(s)reply_to (string, optional): Reply-To addressin_reply_to (string, optional): Message-ID to reply to (for threading)html_body (string, optional): HTML version of email bodydraft_email(to, subject, body, cc?, bcc?, reply_to?, in_reply_to?, html_body?): Create a draft for later editing/sending. Same parameters as send_email.
delete_email(message_id, permanent?): Delete an email.
message_id (string, required): Gmail message IDpermanent (boolean, optional, default: false): If true, permanently delete; if false, move to Trashbulk_delete_emails(query, reason, max_delete?): Permanently delete multiple emails by query. Cannot be undone.
query (string, required): Gmail search query to find emailsreason (string, required): Human-readable explanation (shown to user for approval)max_delete (integer, optional, default: 50, max: 100): Maximum emails to deletemodify_email(message_id, add_labels?, remove_labels?): Add/remove labels on an email.
message_id (string, required): Gmail message IDadd_labels (string, optional): Comma-separated label IDs to add (e.g., "STARRED,IMPORTANT")remove_labels (string, optional): Comma-separated label IDs to remove (e.g., "UNREAD,INBOX")get_email_thread(thread_id): Get all messages in an email thread/conversation.
thread_id (string, required): Gmail thread ID (from read_email or search_emails)list_labels first to discover available labels before filtering.from:sender, to:recipient, subject:text, is:unread, has:attachment, after:2024/01/01, before:2024/12/31.get_email_thread to view entire conversation context before replying.Label operations via modify_email:
| Operation | Parameters |
|---|---|
| Mark as read | remove_labels="UNREAD" |
| Mark as unread | add_labels="UNREAD" |
| Archive | remove_labels="INBOX" |
| Star | add_labels="STARRED" |
| Unstar | remove_labels="STARRED" |
| Mark important | add_labels="IMPORTANT" |
bulk_delete_emails(query, reason) permanently deletes all emails matching a Gmail query. This cannot be undone.
reason parameter explaining the intent.Common queries:
"is:spam older_than:7d""in:inbox is:unread older_than:14d""category:promotions older_than:30d""from:[email protected] older_than:30d"