Update article
update_articleUpdate an article. Partial update — only the fields you pass are changed.
Draft rule for description: if the article is already published (live), the
new description is saved to the DRAFT only and the live version is left
untouched — the result tells you it is live and that only the draft changed,
and asks you to confirm. To publish the draft, run update_article again with
publish=true. If the article is not yet live (draft/in_review), description
updates it directly.
Confirmation: publish=true, a status change, or any other field (title, tags, privacy, ...) on a live article changes what readers see, so it needs the user's approval. Without confirm=true nothing changes and the pending change is returned.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"article_id": "<article_id>"
},
"name": "update_article"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | New title for the article (also updates the slug). | |
| locale | No | Language code, e.g. 'en', 'es', 'fr'. | |
| status | No | New status. To take a parked draft live, prefer publish=true over status='published'. | |
| confirm | No | Required to publish, change status, or change any field other than description on a live article. Set true ONLY after the user has explicitly approved this exact change in the conversation. Without it the tool changes nothing and returns the pending change for the user to approve. | |
| privacy | No | New privacy: 'public', 'unlisted', or 'private'. | |
| publish | No | Set True to make a parked draft live: promotes the saved draft to the live version and publishes. Use this after a normal update reported that the edit was saved as a draft on a live article. | |
| tag_ids | No | Tag IDs to attach. Replaces existing tags. Pass a JSON array of integers, e.g. [1, 2]. Do NOT pass a quoted string. | |
| position | No | Display position of the article within its collection. | |
| seo_title | No | Custom SEO title for the article. | |
| article_id | Yes | The ID of the article to update (from list_articles). | |
| cover_image | No | Cover image URL (jpeg, jpg, png, or gif; max 10 MB). | |
| description | No | New body/content. Accepts HTML. See the draft rule in the tool description: on a LIVE article this is saved to the draft only. | |
| assignee_ids | No | Team-member IDs to assign. Replaces existing assignees. Pass a JSON array of integers, e.g. [1, 2]. Do NOT pass a quoted string. | |
| collection_id | No | Move the article to a different collection. | |
| seo_description | No | Custom SEO meta description. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| article | No |