Editing an entry from an AI assistant used to mean resending the whole body. That worked, but it had two sharp edges: everything the assistant did not resend was destroyed, and a write could silently overwrite a change you had just made in the dashboard.
Both are fixed.
Edits no longer overwrite you
edit_entry_content and the new replace_entry_content now require the assistant to hand back the updatedAt it read from the entry. If anything changed in between — you in the dashboard, or another assistant in another window — the write is refused with ENTRY_MODIFIED rather than applied. The assistant re-reads the entry and retries.
In practice: you can keep editing in the dashboard while an assistant works, and the assistant will notice rather than clobber you.
The destructive path is now explicit
replace_entry_content is new. It overwrites an entire body, and it exists so that a full rewrite has to be asked for by name instead of happening by accident.
For everything else there is edit_entry_content, which replaces text in place and leaves every block it does not touch byte-identical. That matters for content Markdown cannot express — uploaded images, file chips, embeds, underline, colour, alignment, merged table cells. A partial edit no longer risks any of it.
Both tools now report droppedFileIds, so if a write does remove an image or a file attachment from a body, the assistant can tell you instead of leaving you to find out later.
Deprecated: the body arguments on update_entry
update_entry still accepts content and format, but they are deprecated and will be removed in the next release. They overwrite a whole body with no concurrency check — exactly the behaviour above replaces.
update_entry is now the metadata tool: title, slug, excerpt, fields, tags, SEO. If you have your own MCP client or scripts calling update_entry with content, move them to edit_entry_content for partial changes or replace_entry_content for a deliberate rewrite.
Also fixed
Two problems that made entries unreachable over MCP:
For a short window this morning, clients connected but fetched no tools at all, reporting
Date cannot be represented in JSON Schema. Reconnecting did not help; the server was at fault and it is resolved.Some older entries could not be read by an assistant, failing with an invalid-marks error. These were documents whose stored formatting predated the current editor schema. They now load normally, with no action needed on your side.