MCP server
update_blog_article
Edits a blog article by saving a new version at the same URL (Optimize add-on).
Edit blog article · Changes data · Acts outside your account
Edits a blog article by saving a new version at the same URL (Optimize add-on). If the article is live, the new version goes live at once. status 'live' publishes a draft, and status 'draft' takes a live article offline. Only the fields you pass change. Uses one article from the monthly allowance; with none left it returns 400. Locked articles (guest posts, paid placements) are refused. Get articleId from list_blog_articles, and read the current text with get_blog_article first. Confirm with the user before changing a live article. Returns { article, url }.
| Connection | Account-owner URL or OAuth (not a team member URL) |
|---|
Parameters
| Parameter | Type | Required | Accepts | Description |
|---|---|---|---|---|
websiteId | string | Yes | any | Website ID from list_websites. |
articleId | string | Yes | any | Article _id from list_blog_articles. |
title | string | No | any | New title. |
html | string | No | any | New body as HTML (p, h2, h3, ul/ol, blockquote, img, table). Replaces the whole body. |
metaDescription | string | No | any | New search-result description. |
excerpt | string | No | any | New short summary for the blog index. |
category | string | No | any | New category name. |
coverImage | string | No | any | New absolute cover image URL (http/https); other values clear it. |
status | string | No | live, draft | 'live' publishes this version now; 'draft' takes the article offline. Leave it out to keep the current state. |
faq | object[] | No | any | Full new FAQ list of { q, a } objects. Replaces the saved FAQ. |
summary | string | No | any | What this edit changes, shown in the version history. Default 'Edited by hand'. |
Tool definition
What your assistant receives from tools/list:
{
"name": "update_blog_article",
"title": "Edit blog article",
"annotations": {
"title": "Edit blog article",
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true
},
"inputSchema": {
"type": "object",
"properties": {
"websiteId": {
"type": "string",
"description": "Website ID from list_websites."
},
"articleId": {
"type": "string",
"description": "Article _id from list_blog_articles."
},
"title": {
"type": "string",
"description": "New title."
},
"html": {
"type": "string",
"description": "New body as HTML (p, h2, h3, ul/ol, blockquote, img, table). Replaces the whole body."
},
"metaDescription": {
"type": "string",
"description": "New search-result description."
},
"excerpt": {
"type": "string",
"description": "New short summary for the blog index."
},
"category": {
"type": "string",
"description": "New category name."
},
"coverImage": {
"type": "string",
"description": "New absolute cover image URL (http/https); other values clear it."
},
"status": {
"type": "string",
"enum": [
"live",
"draft"
],
"description": "'live' publishes this version now; 'draft' takes the article offline. Leave it out to keep the current state."
},
"faq": {
"type": "array",
"items": {
"type": "object"
},
"description": "Full new FAQ list of { q, a } objects. Replaces the saved FAQ."
},
"summary": {
"type": "string",
"description": "What this edit changes, shown in the version history. Default 'Edited by hand'."
}
},
"required": [
"websiteId",
"articleId"
]
}
}