Add a comment
notion-create-comment
Add a comment to a page or specific content. Supports page-level comments,
block-level comments (via content selection), and replies to existing discussions.
Get comments
notion-get-comments
Lists all comments and discussions on a page. Can include block-level and
inline discussions, resolved threads, and full comment content. Comments the
connected user wrote are marked by-you="true".
Pending suggested edits are listed with kind="suggested_edit". Pass their discussion:// URL to notion-get-suggested-edit. The response’s suggested_edits_status is included when pending suggestions are in the list, upgrade_required when the workspace isn’t on a Business or Enterprise plan, and not_enabled when the connection doesn’t support them. Use it to tell an empty result apart from one that couldn’t include suggestions.
Edit and react to comments
These tools change existing comments and discussions. Get comment and discussion IDs fromnotion-get-comments or notion-create-comment. Comment IDs work with or without dashes.
notion-update-commentreplaces the text of a comment the user wrote. Passcomment_idand the full new text as inline markdown inmarkdown. The new text replaces the whole comment. Block-level markdown, such as lists and headings, isn’t supported.notion-delete-commentdeletes a comment the user wrote. If it’s the last comment in its discussion, the discussion is removed too.notion-set-discussion-resolvedresolves a discussion withresolved: trueor reopens it withresolved: false. Passdiscussion_id, either adiscussion://URL fromnotion-get-commentsor thediscussion_idfromnotion-create-comment.notion-set-comment-reactionadds (reacted: true) or removes (reacted: false) the user’s reaction on a comment. Pass one standard Unicode emoji inemoji. Setting the same state twice changes nothing.
Requires a Business or Enterprise plan. On other plans the tools return an upgrade prompt.
notion-update-comment instead of deleting it and posting a new one, and to resolve a discussion only when a person asks.
Suggest edits
These tools propose changes to a page that a person accepts or rejects in Notion. A suggestion doesn’t change the page until someone accepts it.notion-fetch shows only accepted content, so pending suggestions don’t appear in fetched page text.
notion-create-suggested-editproposes one change. Pass the page aspage_id, the exact text to change asold_text, and the proposed Notion-flavored Markdown asnew_text. Copyold_textfromnotion-fetchoutput. It must appear exactly once on the page.modedefaults toreplace, and an emptynew_textsuggests a deletion. Withinsert_beforeorinsert_after,old_textis an anchor that stays as it is, andnew_textis only the inserted content. A suggestion can span blocks and change text, formatting, mentions, equations, and tables, or add, remove, or replace blocks. To suggest a change to a page title or a database title or text property, pass its name asproperty_nameand usereplace. You can’t insert into an empty page. The response has asuggested_edit_urlandstatus: "pending".notion-get-suggested-editreads one pending suggestion. Pass itssuggested_edit_url. The response has a Markdown before-and-afterdiffand theallowed_actionsthe user can take,accept,reject, or both.notion-resolve-suggested-editaccepts or rejects one pending suggestion. Passsuggested_edit_urlandaction. Accepting applies the change to the page. Rejecting discards it. The tool is marked destructive (destructiveHint: true), so MCP clients that honor tool annotations ask before running it.
comment to start that thread. Every suggestion made through Notion MCP gets a note at the end of its first comment that names the MCP client, such as [Prepared via Notion MCP].
Requires a Business or Enterprise plan. On other plans the tools return an upgrade prompt.
validation_error with additional_data.tool_error_code set to a code such as suggested_edit_no_match, suggested_edit_multiple_matches, suggested_edit_conflict, or suggested_edit_stale.
Restore pages
notion-restore-pages
Restore up to 20 Notion pages or databases from Trash to where they were before they were deleted. Restoring an item that is already out of Trash succeeds and changes nothing. Requires the update content capability.
If a page’s parent is still in Trash, the call returns an error that asks you to restore the parent first. Pages at the top level of a workspace, such as top-level private pages, can’t be restored through Notion MCP yet. Restore them from Trash in Notion.
View a past version
notion-view-version
Reads a page or database as it looked at a past time. Pass the page and an ISO 8601 time. A page returns its properties and Markdown content. A database returns its data sources, views, and rows. Requires edit access to the page, and can only read as far back as the workspace’s plan keeps version history.
Get version changes
notion-get-version-changes
Lists what changed in a page or database between two times and who made each change, including edits from Notion AI, Custom Agents, and MCP clients. The range defaults to the last 24 hours. Requires edit access to the page, and can only read as far back as the workspace’s plan keeps version history.