Create a post
Schedule a post, add it to a queue or save it as a draft, for one or more profiles.
MCP tool sendible_write → create_post
mode schedule publishes at send_at in the workspace time zone, queue adds the post to the queue's next free slot, and draft saves it in Publish > Drafts without a time. The post takes text, one link and one image URL; nothing is uploaded. Sendible limits published posts per day per workspace: 20 on a trial, 100 on Core, 200 on Plus, 300 on Premium, 500 on Elite and Enterprise. A draft reaches no one, but the same tool schedules real posts, so every call asks. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| workspace_id string required | string | Workspace from list_workspaces. |
| profile_ids array required | array | Profiles from list_profiles. Optional for a draft. |
| message string required | string | Post text. |
| url string | string | Link to add to the post. |
| image_url string | string | One image, as a public URL. |
| mode enum required | enum | schedule, queue or draft. |
| send_at datetime | datetime | Publish time, local to the workspace, e.g. 2026-10-23T09:00:00. Required for schedule. |
| queue_id string | string | Queue from list_queues. Required for queue. |
tools/call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "sendible_write",
"arguments": {
"operation": "create_post",
"arguments": {
"workspace_id": "ws_4821",
"profile_ids": [
"pr_301",
"pr_302"
],
"message": "Open this Saturday, 9 to 1. Book at harbordental.example/book",
"url": "https://harbordental.example/book",
"mode": "schedule",
"send_at": "2026-10-23T09:00:00"
}
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"post_id": "post_77a1",
"status": "scheduled",
"send_at": "2026-10-23T09:00:00+01:00",
"time_zone": "Europe/London",
"profiles": [
"Harbor Dental (Facebook Page)",
"Harbor Dental (Instagram)"
]
},
"isError": false
}