Atomic batched content updates in Notion MCP
By Steven Van ·
notion-update-page calls that use the update_content command now apply every content-changing replacement in the batch or none of them.
Notion's Notion MCP now makes batched content updates atomic. When a notion-update-page call using the update_content command includes several replacements, they all apply or none do.
Previously, if one old_str in a batch matched no page content while another one in the same call did, the matching replacements were saved and the call still returned success. That meant a batch that removed content in one operation and reinserted it in another could end up dropping it. Calls with an unmatched old_str now return a validation_error naming the string that wasn't found, and the page is left unchanged.
- Operations where old_str and new_str are identical are skipped without checking for a match.
- old_str must now be a non-empty string on both notion-update-page and Update a page's content as markdown; empty values were previously ignored, which silently skipped the replacement.
