SMS, email, and other channels via the API
Send a message to a contact with the send_message tool. Messages are sent on a channel (SMS, email, …) that must already be configured and active for your organization — SMS requires a provisioned number with an approved A2P campaign; email requires a connected domain. MOST sets those up for you during onboarding.
| Field | Type | Notes |
|---|---|---|
contact_id | string | Required. The contact UUID to send to. |
channel | string | Required. sms, email, voice, imessage, … |
body | string | Required. The message text. |
subject | string | Email only — the subject line. |
Sending targets a contact, not a raw phone/email. If the recipient isn’t a contact yet, create one first with create_contact (or find them with search_contacts) and use the returned id.
curl https://most.money/api/mcp \
-H "Authorization: Bearer mst_9f3c…" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "send_message",
"arguments": {
"contact_id": "c1a2b3c4-…",
"channel": "sms",
"body": "Hey Sam — your order shipped! Reply STOP to opt out."
}
}
}'{
"jsonrpc": "2.0", "id": 2, "method": "tools/call",
"params": {
"name": "send_message",
"arguments": {
"contact_id": "c1a2b3c4-…",
"channel": "email",
"subject": "Your order shipped",
"body": "Hi Sam, your order is on the way…"
}
}
}A successful call returns the send result inside the MCP content block:
{
"jsonrpc": "2.0", "id": 1,
"result": { "content": [ { "type": "text",
"text": "{ \"success\": true, \"providerMessageId\": \"…\", \"channel\": \"sms\" }" } ] }
}Standard (EIN) brands send at standard carrier throughput. Sole-proprietor brands are capped by the carriers at 1,000 SMS/day and 15/minute — see Messaging Limits. Over the cap, a send returns rate_limited instead of dispatching.