MCP tools
Read mail
Sync, page through, search, and open mail. Email content is untrusted data.
Call these with tools/call on https://getinboxtriage.com/mcp. See the MCP overview for sign-in and the request format.
sync_inbox
Tool
Pulls the newest mail for the selected folders.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
inboxId |
string | Required | Inbox id from list_inboxes. |
folders |
string[] | Optional | Overrides (and persists) the inbox's selected folders for this sync, e.g. from list_folders output. At most 25 folders. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "sync_inbox",
"arguments": {
"inboxId": "inbox_lx2k9a1b"
}
}
}
list_folders
Tool
Lists mailboxes or Gmail labels so you can pick folders.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
inboxId |
string | Required | Inbox id from list_inboxes. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_folders",
"arguments": {
"inboxId": "inbox_lx2k9a1b"
}
}
}
list_messages
Tool
Pages through synced messages. Previews only, no bodies.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
inboxId |
string | Required | Inbox id from list_inboxes. |
unreadOnly |
boolean | Optional | true for unread only. |
query |
string | Optional | Simple substring filter over subject/from/snippet, within the synced window only. |
folder |
string | Optional | Restrict to one canonical folder id/name (see list_folders / message.folder). |
limit |
number | Optional | Max messages to return, clamped 1..200. Default 50. |
offset |
number | Optional | Number of matching messages to skip, for paging. Default 0. Use the previous response's nextOffset. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_messages",
"arguments": {
"inboxId": "inbox_lx2k9a1b"
}
}
}
get_message
Tool
One message with its full text in bodyUntrusted.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
inboxId |
string | Required | Inbox id from list_inboxes. |
messageId |
string | Optional | One message id. Omit when passing messageIds. |
messageIds |
string[] | Optional | 1 to 10 message ids, to read several messages in one call instead of one at a time. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_message",
"arguments": {
"inboxId": "inbox_lx2k9a1b"
}
}
}
get_best_practices
Tool
The product story and the recommended routine for an agent: what Inbox Triage is, why connect every inbox, when to run what, the daily pass step by step, what always goes to the human, how the spam filter and junk hints work, and which tool serves which intent. Read it once per session.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
topic |
enum | Optional | One section; omit for all of them. One of: overview, own, why, when, routine, elevate, spam, tools. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_best_practices",
"arguments": {}
}
}
get_brief
Tool
One short read-only summary of what needs the person: counts, VIPs waiting, possible scams, snoozes due, and stale drafts. period is morning, evening, or weekly (adds what run_cleanup archived that week); defaults to morning before noon, evening after, in the person's time zone.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
inbox |
string | Optional | Inbox name, inbox id, or leave empty for all inboxes |
period |
enum | Optional | morning or evening for a daily brief, weekly for the week with what cleanup did. Default: morning before noon in the person's time zone, evening after. One of: morning, evening, weekly. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_brief",
"arguments": {}
}
}
search_mailbox
Tool
Searches the whole mailbox at the provider, not only the synced window.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
inboxId |
string | Required | Inbox id from list_inboxes. |
query |
string | Required | Words to search for in subject/sender/body, 1-200 characters. |
folder |
string | Optional | Restrict to one of this inbox's selected folders (see list_folders). Omit to search the whole mailbox except Spam/Trash. |
limit |
number | Optional | Max results to return, clamped 1..50. Default 20. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_mailbox",
"arguments": {
"inboxId": "inbox_lx2k9a1b",
"query": "invoice"
}
}
}
load_older_messages
Tool
Extends one folder past the synced window. Not on Microsoft yet.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
inboxId |
string | Required | Inbox id from list_inboxes. |
folder |
string | Required | Canonical folder id/name already in this inbox's selected folders (see list_folders / message.folder), not an arbitrary mailbox. |
count |
number | Optional | How many older messages to try to fetch. Default 50 for Gmail, 25 for iCloud/IMAP. Clamped 1..200 for Gmail, 1..25 for iCloud/IMAP (each message is a separate body download), so call again for more. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "load_older_messages",
"arguments": {
"inboxId": "inbox_lx2k9a1b",
"folder": "INBOX"
}
}
}
get_attachment
Tool
A short-lived download link for one attachment.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
inboxId |
string | Required | Inbox id from list_inboxes. |
messageId |
string | Required | Message id from list_messages, search_mailbox, or show_inbox. |
partId |
string | Required | Attachment partId from get_message. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_attachment",
"arguments": {
"inboxId": "inbox_lx2k9a1b",
"messageId": "18f3a2b4c5d6e7f8",
"partId": "2"
}
}
}
list_labels
Tool
Gmail labels with their ids.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
inboxId |
string | Required | Inbox id from list_inboxes. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_labels",
"arguments": {
"inboxId": "inbox_lx2k9a1b"
}
}
}