Publish a post now
Publish a draft now, with an optional newsletter send.
MCP tool ghost_write → publish_post
write Confirm
Returns the post with status published and, when a newsletter was given, the email status. The post goes public and the email is queued at once, and neither can be recalled. If the email comes back as failed, the post goes back to draft first and is published again. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| post_id string required | string | Post ID from list_posts. |
| newsletter string | string | Newsletter slug from list_newsletters. Omit to publish on the site without an email. |
| send_to string | string | With a newsletter: all, free or paid members. Default all. |
tools/call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "ghost_write",
"arguments": {
"operation": "publish_post",
"arguments": {
"post_id": "post_8c41d2"
}
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"post": {
"id": "6710a1c2f3e4d500a1b2c3d4",
"title": "Issue 42: pricing notes",
"status": "published",
"published_at": "2026-10-17T09:30:00.000Z",
"email": {
"status": "submitted",
"recipient_filter": "all"
}
}
},
"isError": false
}