docs

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

NameTypeRequiredWhat it is
post_idstringYesThe 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.
captionstringNoThe 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_idsarrayNoReplaces the attachments; omit to keep them.
add_media_idsarrayNoAppended after what the post already holds.
filesarrayNoFiles the user attached to this conversation, appended after what the post holds.
scheduled_atunionNoNew 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_draftbooleanNofalse 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_configurationsrecordNoReplaces 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