Send approved messages
Three jobs for the outreach tools, each with the MCP call that does it
Outreach tools send text you already approved, exactly as written, from accounts you connected in S'more. Submitting a batch is the approval to send it. Each tool call costs $0.001 per call. See Outreach.
Find the account to send from
curl -s https://app.makesmores.com/api/v1/mcp \
-H "Authorization: Bearer $SMORE_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {"name": "smore_list_x_connections", "arguments": {}}}' \
| sed -n -e 's/^data: //' -e '/^{/p' \
| jq '.result.structuredContent | {connect_url, connections: [.connections[]? | {connection_id, handle, can_send}]}'
No accounts yet? Open connect_url and connect one in Settings.
Send approved replies tomorrow morning
These are the arguments for smore_submit_x_outreach. Calling it sends the rows, so call it only with text the person approved.
{
"connection_id": "11111111-1111-4111-8111-111111111111",
"idempotency_key": "launch-replies-2026-10-25",
"schedule": { "local_start_at": "2026-10-25T08:00:00", "time_zone": "America/New_York" },
"rows": [
{
"row_id": "1",
"action": "reply",
"handle": "example_user",
"reply_url": "https://x.com/example_user/status/1234567890",
"message": "Thanks for asking. The free tier covers personal workspaces."
},
{ "row_id": "2", "action": "dm", "handle": "example_user", "message": "Following up on your question from yesterday." }
]
}
S'more spaces the sends 45 to 240 seconds apart by default, checks each reply's target is by the handle you gave, and records a receipt for each row. Read progress with smore_get_x_outreach and the batch_id from the answer.
Stop what has not gone out
smore_cancel_x_outreach with {"batch_id": "..."} stops the rows not yet sent. A message already sent stays sent. Repeating the cancel is safe.