---
name: gmail
label: Gmail
description: Read Gmail messages, threads, and labels using the connected Google account. Use this tool to check emails, search for specific messages, read email content, list labels, or get mailbox profile info. Requires the user to have connected their Google account in Settings → Integrations.
language: typescript
inputs:
  action:
    type: string
    description: "Action to perform: list_messages, get_message, list_labels, get_thread, get_profile, sync_inbox"
  query:
    type: string
    description: "Gmail search query for list_messages (e.g. 'is:unread', 'from:user@example.com', 'subject:invoice after:2024/01/01')"
    optional: true
  message_id:
    type: string
    description: Message ID for get_message
    optional: true
  thread_id:
    type: string
    description: Thread ID for get_thread
    optional: true
  max_results:
    type: string
    description: Maximum number of results for list actions (default 10, max 50)
    optional: true
  output_dir:
    type: string
    description: Directory path to save email files (for sync_inbox action)
    optional: true
---

# Gmail Tool

Read-only access to the user's Gmail account via the Gmail REST API.

## Available Actions

- **list_messages**: List or search messages. Use `query` for Gmail search syntax.
- **get_message**: Get full message content by `message_id`.
- **list_labels**: List all Gmail labels with message counts.
- **get_thread**: Get all messages in a thread by `thread_id`.
- **get_profile**: Get the user's Gmail profile info.
- **sync_inbox**: Bulk-download emails to disk. Requires `output_dir`. Use `query` to filter (e.g. `after:2026/02/01 before:2026/03/01`). Handles pagination internally, saves each email as a markdown file, skips already-saved messages. Returns only a summary count — does NOT flood context with email bodies.

## Query Syntax

Gmail search operators for the `query` parameter:
- `is:unread`, `is:read`, `is:starred`
- `from:email@example.com`, `to:email@example.com`
- `subject:"search term"`, `has:attachment`
- `after:YYYY/MM/DD`, `before:YYYY/MM/DD`
- `in:inbox`, `in:sent`, `in:trash`
- `larger:1M`, `smaller:100K`
- Combine with AND, OR, - (NOT)

## Scope

This tool has **read-only** access (gmail.readonly scope). It cannot send, modify, or delete messages.
