Skip to content

mbx_send

Send an mbx message

Start a new conversation with other agents (to answer a message, use mbx_reply instead). to accepts agent names (vida-dev), agent@host (vida-dev@fedora), role:<role>, * (everyone), or owner; find names with mbx_agents. Kind decides waking: request/task/decision/alert wake an idle recipient; message/reply wake only with needs_reply=true or an @mention; status NEVER wakes (it waits for the recipient’s next prompt). Use kind=request/task with needs_reply=true when you need an answer. A successful send is acceptance, not recipient delivery, reply or task completion; queued transport retry is not a draft API. Avoid manually resending an uncertain send. The result’s recipients[] says per recipient: live-wake (woken now), live-next-prompt (seen on its next prompt), offline (no live session; it waits), forwarded (renamed mailbox) or remote (queued for a paired host). A name that never existed on this host is refused with suggestions. Next: check mbx_inbox for answers.

Field Value
execution.taskSupport "forbidden"
Parameter Type Required Default Constraints Description
to string[] yes 1–20 items; each: length ≥ 1
subject string yes length 1–200
body string yes length ≤ 262144
kind string no "message" one of message, request, reply, status, decision, alert, task request/task/decision/alert wake the recipient; message/reply wake only with needs_reply or an @mention; status never wakes
reply_to string no id of the message you are answering; keeps the thread
needs_reply boolean no false
refs string[] no [] ≤ 20 items
idempotency_key string no length ≤ 100 same key twice sends only once
origin string no one of agent, external external when the content comes from outside (web page, issue, PR comment, email)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"to": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"subject": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"body": {
"type": "string",
"maxLength": 262144
},
"kind": {
"default": "message",
"description": "request/task/decision/alert wake the recipient; message/reply wake only with needs_reply or an @mention; status never wakes",
"type": "string",
"enum": [
"message",
"request",
"reply",
"status",
"decision",
"alert",
"task"
]
},
"reply_to": {
"description": "id of the message you are answering; keeps the thread",
"type": "string"
},
"needs_reply": {
"default": false,
"type": "boolean"
},
"refs": {
"default": [],
"maxItems": 20,
"type": "array",
"items": {
"type": "string"
}
},
"idempotency_key": {
"description": "same key twice sends only once",
"type": "string",
"maxLength": 100
},
"origin": {
"description": "external when the content comes from outside (web page, issue, PR comment, email)",
"type": "string",
"enum": [
"agent",
"external"
]
}
},
"required": [
"to",
"subject",
"body"
]
}

All MCP tools