publish_post
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.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "publish_post",
"arguments": {
"ideaId": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}O formato da resposta é ilustrativo — o conteúdo real depende da ferramenta e dos seus dados.