MCP tool
update_post
Edit a post
Removes something · and, like everything an agent creates, it is mailed to the project — and in copilot mode waits for a human in the approval queue.
What it does
Change a post that has not gone out — caption, media, time, per-platform options; anything left out is kept. The reply is a NEW post with a new id and a new link; replaced names the old one, which is gone. add_media_ids and files append to what the post holds; media_ids replaces it. A picture the person added in the approval card is already on the post. Editing an approved or rejected post puts it back in the approval queue, and message says which of the two happened. A post already tried is not editable: retry_delivery handles the delivery that failed. Send a draft with is_draft: false — creating it again instead posts the words twice.
Arguments
| Name | Type | Required | What it is |
|---|---|---|---|
| post_id | string | Yes | The post to change — an id list_posts returned, never one built from memory. Every edit gives the post a NEW id (the answer's id); use that one next time. An id an edit retired is refused with error_code: replaced and replaced_by, the current id. An id this project does not hold is refused with error_code: not_found; read the list again rather than trying another id. |
| caption | string | No | The new text. It must still fit every target's own limit — X is 280 as X counts it — or the edit is refused and the post keeps its old words. |
| media_ids | array | No | Replaces the attachments; omit to keep them. |
| add_media_ids | array | No | Appended after what the post already holds. |
| files | array | No | Files the user attached to this conversation, appended after what the post holds. |
| scheduled_at | union | No | New time (Z or an offset); "next_slot" hands it to the project's queue; null clears it, and it goes out now — or once approved, on a project that holds agent posts. |
| is_draft | boolean | No | false sends a draft: it leaves the drawer and goes out at its time, or now, or to the approval queue — whichever the project does. This is how a draft is finished; creating the post again instead leaves the draft behind and publishes the words twice. true puts a post that has not gone out back into the drawer. Omit to keep it as it is. |
| platform_configurations | record | No | Replaces the per-platform options; omit to keep them. |
Calling it
Any MCP client calls this by name once the connector is added. The address is the same for every tool:
https://xpost.to/api/mcp
A client that has signed in sends the tool name and its arguments:
{
"name": "update_post",
"arguments": {
"post_id": "…"
}
}The other tools
Back to the MCP connector · What the MCP server is · Connect your assistant