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

NameTypeRequiredDescription
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.
Example call
{
  "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

NameTypeRequiredDescription
inboxId string Required Inbox id from list_inboxes.
Example call
{
  "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

NameTypeRequiredDescription
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.
Example call
{
  "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

NameTypeRequiredDescription
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.
Example call
{
  "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

NameTypeRequiredDescription
topic enum Optional One section; omit for all of them. One of: overview, own, why, when, routine, elevate, spam, tools.
Example call
{
  "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

NameTypeRequiredDescription
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.
Example call
{
  "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

NameTypeRequiredDescription
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.
Example call
{
  "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

NameTypeRequiredDescription
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.
Example call
{
  "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

NameTypeRequiredDescription
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.
Example call
{
  "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

NameTypeRequiredDescription
inboxId string Required Inbox id from list_inboxes.
Example call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_labels",
    "arguments": {
      "inboxId": "inbox_lx2k9a1b"
    }
  }
}