Skip to main content

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.