Show the inbox
show_inboxShows the person's mail as an interactive, actionable list.
Shows the person their mail across all inboxes (or one) as an interactive list they can act on: open a message, archive, trash, mark as spam, star, label, select several, and undo. Use it only when the person asks to see, browse or click through their mail ("show me my inbox", "let me look"). For questions ("what needs me today", "anything urgent", "any scams") answer in chat with get_brief or list_messages instead: the view sits above your answer and pushes it down. Always pass the filter that matches the request: "today" for today's mail (and pass timeZone if you know it), "since" for "since I last checked", "vip" for VIPs, "newsletters" for newsletters, "reply" for mail from a person addressed to you that you have not answered, "all" for everything. The default "needs" is unread or VIP mail still in the inbox, of any age, so do not use it for "today". since (ISO) narrows any filter, not only "since" itself, so "newsletters from this week" is one call: filter "newsletters" with since set to the start of the week. Always includes a numbered text list with previews (the id block, and a top-level sayToHuman summary) in content/text no matter what the client is, alongside the interactive view for hosts that support it. Apps that cannot show the list (Claude Code and other terminals) get the same rows as a numbered text list with previews: show it to the person as it is (in a code block, without the id block at the end), then add two or three sentences on what matters most. In apps that show the list, do not repeat it. Rows are numbered across pages; when the person refers to rows ("archive 2 and 5", "open 3"), map each number to inboxId and messageId using the id block at the end of the text or structuredContent.rows (field n), then use archive_messages (or the other message tools), get_message, or create_draft. Reply and unsubscribe from the list come back to you as chat requests; sending, unsubscribing and reporting spam still need the person's approval.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "show_inbox"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| inbox | No | Inbox name (like "Work Gmail"), inbox id, or leave empty for all inboxes combined | |
| limit | No | Rows per page, 1 to 50. Default 25. | |
| since | No | ISO time. Applies to whichever filter is set, not only "since": combine it with any filter for a single call ("newsletters from this week" is filter: newsletters, since: <start of this week>). For filter "since" alone, defaults to when the person last finished triage. | |
| filter | No | needs (default: unread or VIP mail in the inbox, newsletters left out, unread automated mail older than attentionDays left out), vip, newsletters, today, since (since the last triage), all, reply: mail from a person addressed to you that you have not answered | |
| offset | No | ||
| timeZone | No | The person's IANA time zone, like America/Chicago, so "today" means their calendar day. Without it, "today" is the last 24 hours. |