Update a post
Change the title, content, tags, access or excerpt of an existing post.
MCP tool ghost_write → update_post
write Confirm
Returns the updated post. The tool reads the post first and refuses to overwrite it if someone saved it in the meantime. On a published post the change is visible to readers at once, which is why it asks. 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. |
| title string | string | New title. |
| content string | string | New body. Replaces the old one. |
| tags string[] | string[] | Full list of tag names. It replaces the current tags, it does not add to them. |
| access string | string | Public, Members only, Paid-members only or Specific tiers. |
| excerpt string | string | New custom excerpt. |
tools/call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "ghost_write",
"arguments": {
"operation": "update_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": "draft",
"tags": [
"Weekly",
"Product"
],
"updated_at": "2026-10-17T09:05:10.000Z"
}
},
"isError": false
}