MCP tools

Drafts and sending

Write drafts, and send only after the person approves in chat.

Call these with tools/call on https://getinboxtriage.com/mcp. See the MCP overview for sign-in and the request format.

create_draft

Tool

Writes a draft in the mailbox. Never sends. Returns pendingSendId and approvalCode when sending is available.

Inputs

NameTypeRequiredDescription
inboxId string Required Inbox id from list_inboxes.
to string Required Recipient address or addresses.
subject string Required Subject line.
text string Required Email body as the human would send it. No meta/product/tooling narration.
threadId string Optional Thread to reply in, from get_message.
Example call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_draft",
    "arguments": {
      "inboxId": "inbox_lx2k9a1b",
      "to": "sam@example.com",
      "subject": "Re: Friday?",
      "text": "Friday at 2 works for me."
    }
  }
}

send_draft

Tool

Sends a draft after the person approved it in chat.

Inputs

NameTypeRequiredDescription
pendingSendId string Required pendingSendId returned by create_draft when sendAvailable is true
approvalCode string Required approvalCode returned by create_draft for this pending send
humanApprovedInChat true Optional Literal true once the human approved sending in this chat after seeing the full draft. Required unless the app prompts the person directly (confirmInApp).
confirmTo string Optional If provided, must match the pending send To
confirmSubject string Optional If provided, must match the pending send subject
Example call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "send_draft",
    "arguments": {
      "pendingSendId": "ps_7d2c9a",
      "approvalCode": "K7Q2",
      "humanApprovedInChat": true
    }
  }
}

show_draft

Tool

Shows a draft as an editable card with a Send button, in apps that support MCP Apps.

Inputs

NameTypeRequiredDescription
inboxId string Required Inbox id from list_inboxes.
draftId string Required The id create_draft returned
Example call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "show_draft",
    "arguments": {
      "inboxId": "inbox_lx2k9a1b",
      "draftId": "draft_1758182400000"
    }
  }
}

set_send_enabled

Tool

Turns approve-in-chat sending on or off. Only when the person asks.

Inputs

NameTypeRequiredDescription
enabled boolean Required true to allow send_draft after chat approval; false to block sending
humanConfirmedInChat true Required Must be literal true. Confirms the human asked to change sendEnabled in this chat
Example call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "set_send_enabled",
    "arguments": {
      "enabled": true,
      "humanConfirmedInChat": true
    }
  }
}

update_draft_from_card

App only

The draft card saving an edit. Needs a single-use code agents never get. Agents use create_draft.

Hidden from the model (visibility: ['app']). The interactive view calls it directly.

Inputs

NameTypeRequiredDescription
nonce string Required Single-use code the card got from the server. Agents never have one.
to string Required Recipient address or addresses.
subject string Required Subject line.
body string Required Plain text body.

send_draft_from_card

App only

The draft card sending after the person clicks Send. Agents use send_draft.

Hidden from the model (visibility: ['app']). The interactive view calls it directly.

Inputs

NameTypeRequiredDescription
nonce string Required Single-use code the card got from the server. Agents never have one.
to string Required Recipient address or addresses.
subject string Required Subject line.
body string Required Plain text body.