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
| Name | Type | Required | Description |
|---|---|---|---|
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. |
{
"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
| Name | Type | Required | Description |
|---|---|---|---|
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 |
{
"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
| Name | Type | Required | Description |
|---|---|---|---|
inboxId |
string | Required | Inbox id from list_inboxes. |
draftId |
string | Required | The id create_draft returned |
{
"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
| Name | Type | Required | Description |
|---|---|---|---|
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 |
{
"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
| Name | Type | Required | Description |
|---|---|---|---|
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
| Name | Type | Required | Description |
|---|---|---|---|
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. |