notion-mcp__notion_update_page_content
Edits one Notion page's content as markdown, in one of three modes. edits replaces exact passages, each {old_str, new_str, replace_all_matches}; an edit whose old_str matches nothing is listed in warnings while the others apply. replace_with replaces the whole content. insert adds markdown at the start, at the end (the default), or after a selection. Child pages and databases are kept unless allow_deleting_content is true, and Notion refuses an edit that would remove them. The content of a synced page is not edited through Notion's API. Returns the page id and Notion's warnings.
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": {
"page_id": "<page_id>"
},
"name": "notion-mcp__notion_update_page_content"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | With insert: a selection of existing content to insert after, written "start text...end text". | |
| edits | No | Passage replacements, at most 100, applied in one request. notion_get_page shows the markdown they match against. | |
| insert | No | Markdown to add to the page, placed by position or after. | |
| account | No | Optional email address of the connected account to use (e.g. 'user@gmail.com'). If omitted, the default account is used. | |
| page_id | Yes | The page's Notion id, with or without dashes, or a Notion URL that contains it (the id is read from the URL). | |
| position | No | With insert: start or end of the page. Default end. | |
| allow_async | No | true lets Notion apply a large change in the background; the result is then a task id and carries no warnings. | |
| replace_with | No | Markdown that replaces the page's whole content. | |
| allow_deleting_content | No | With edits or replace_with: true lets the change remove child pages and databases. Sent to Notion only when set. |