gmail
Gmail
Available Tools
-
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 TRASH
-
search_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 results
-
read_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 body
-
draft_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 Trash
-
bulk_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 delete
-
modify_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)
Usage Guidelines
- Use
list_labelsfirst to discover available labels before filtering. - Gmail search query syntax:
from:sender,to:recipient,subject:text,is:unread,has:attachment,after:2024/01/01,before:2024/12/31. - Use
get_email_threadto view entire conversation context before replying.
Common Operations
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 Deletion
bulk_delete_emails(query, reason) permanently deletes all emails matching a Gmail query. This cannot be undone.
- Always provide a
reasonparameter explaining the intent. - Always explain what will be deleted and get user confirmation before calling.
Common queries:
- Spam cleanup:
"is:spam older_than:7d" - Old unread:
"in:inbox is:unread older_than:14d" - Promotions purge:
"category:promotions older_than:30d" - From specific sender:
"from:noreply@example.com older_than:30d"