MCPHerramientas MCP/Ideas de publicaciones/publish_post

publish_post

Writeposts:write

Publish a post idea: create a real post from it (+ platform submissions) and submit through the single OS publish pipeline, then mark the idea published. The one common path to go live — do not post elsewhere directly. Location ideas publish at location scope; brand ideas (no location) publish at their client's scope. A platform with no active connection never fails this call — the post is still created (as a draft if nothing resolved), and the response is `{ status: "no_connection", missingPlatforms, scope, postId, ideaId }` instead of the usual `{ postId, status, ideaId }` for whichever platforms couldn't resolve a connection. Compose what to tell the user from that data; do not assume the call failed just because `status` is "no_connection" — the content was saved. Likewise a post that cannot go live yet because a REQUIRED FIELD is absent (an event with no start/end date, a caption-less announcement, Instagram with no image) is saved as a draft and answers `{ status: "incomplete", missingFields, scope, postId, ideaId }`. Both gaps can appear together, in which case `status` is "no_connection" and `missingFields` rides alongside it — tell the user about BOTH in one message rather than letting them discover the second after fixing the first. In every one of these cases the content EXISTS as a draft: say what was saved, name what it needs, and point at where to fix it. Never report it as a failure and never silently retry.

Parámetros
ideaIdstringobligatorio
Post idea id to publish (from list_post_ideas or get_post_idea) — accepts either the OS idea id or the claw approval id (externalId).
scheduledForstringopcional
Schedule for this ISO timestamp (omit to publish now).
draftbooleanopcional
Create the post as a draft without publishing.
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "publish_post",
    "arguments": {
      "ideaId": "string"
    }
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.