Notion

notion-update-page

## Overview Update a Notion page's properties or content. ## Properties Notion page properties are a JSON map of property names to SQLite values. For pages in a database: - ALWAYS use the "fetch" tool first to get the data source schema and the exact property names. - Provide a non-null value to update a property's value. - Omitted properties are left unchanged. **IMPORTANT**: Some property types require expanded formats: - Date properties: Split into "date:{property}:start", "date:{property}:end" (optional), and "date:{property}:is_datetime" (0 or 1) - Place properties: Split into "place:{property}:name", "place:{property}:address", "place:{property}:latitude", "place:{property}:longitude", and "place:{property}:google_place_id" (optional) - Number properties: Use JavaScript numbers (not strings) - Checkbox properties: Use "__YES__" for checked, "__NO__" for unchecked **Special property naming**: Properties named "id" or "url" (case insensitive) must be prefixed with "userDefined:" (e.g., "userDefined:URL", "userDefined:id") For pages outside of a database: - The only allowed property is "title", which is the title of the page in inline markdown format. ## Content Notion page content is a string in Notion-flavored Markdown format. **IMPORTANT**: For the complete Markdown specification, first fetch the MCP resource at `notion://docs/enhanced-markdown-spec`. Do NOT guess or hallucinate Markdown syntax. Before updating a page's content with this tool, use the "fetch" tool first to get the existing content to find out the Markdown snippets to use in the "replace_content_range" or "insert_content_after" commands. ### Preserving Child Pages and Databases When using "replace_content" or "replace_content_range", the operation will check if any child pages or databases would be deleted. If so, it will fail with an error listing the affected items. To preserve child pages/databases, include them in new_str using `<page url="...">` or `<database url="...">` tags. Get the exact URLs from the "fetch" tool output. **CRITICAL**: To intentionally delete child content: if the call failed with validation and requires `allow_deleting_content` to be true, DO NOT automatically assume the content should be deleted. ALWAYS show the list of pages to be deleted and ask for user confirmation before proceeding. ## Examples <example description="Update page properties"> { "page_id": "f336d0bc-b841-465b-8045-024475c079dd", "command": "update_properties", "properties": { "title": "New Page Title", "status": "In Progress", "priority": 5, "checkbox": "__YES__", "date:deadline:start": "2024-12-25", "date:deadline:is_datetime": 0, "place:office:name": "HQ", "place:office:latitude": 37.7749, "place:office:longitude": -122.4194 } } </example> <example description="Replace the entire content of a page"> { "page_id": "f336d0bc-b841-465b-8045-024475c079dd", "command": "replace_content", "new_str": "# New Section Updated content goes here" } </example> <example description="Replace specific content in a page"> { "page_id": "f336d0bc-b841-465b-8045-024475c079dd", "command": "replace_content_range", "selection_with_ellipsis": "# Old Section...end of section", "new_str": "# New Section Updated content goes here" } </example> <example description="Insert content after specific text"> { "page_id": "f336d0bc-b841-465b-8045-024475c079dd", "command": "insert_content_after", "selection_with_ellipsis": "## Previous section...", "new_str": " ## New Section Content to insert goes here" } </example> **Note**: For selection_with_ellipsis, provide only the first ~10 characters, an ellipsis, and the last ~10 characters. Ensure the selection is unique; use longer snippets if needed to avoid ambiguity.

Remote notion

Other tools also called notion-update-page? See providers with this name

Input Schema


            {
  "type": "object",
  "properties": {
    "data": {
      "allOf": [
        {
          "type": "object",
          "required": [
            "page_id"
          ],
          "properties": {
            "page_id": {
              "type": "string",
              "description": "The ID of the page to update, with or without dashes."
            }
          },
          "additionalProperties": true
        },
        {
          "anyOf": [
            {
              "type": "object",
              "required": [
                "command",
                "properties"
              ],
              "properties": {
                "command": {
                  "enum": [
                    "update_properties"
                  ],
                  "type": "string"
                },
                "properties": {
                  "type": "object",
                  "description": "A JSON object that updates the page's properties. For pages in a database, use the SQLite schema definition shown in <database>. For pages outside of a database, the only allowed property is \"title\", which is the title of the page in inline markdown format. Use null to remove a property's value.",
                  "additionalProperties": {
                    "type": [
                      "string",
                      "number",
                      "null"
                    ]
                  }
                }
              },
              "additionalProperties": true
            },
            {
              "type": "object",
              "required": [
                "command",
                "new_str"
              ],
              "properties": {
                "command": {
                  "enum": [
                    "replace_content"
                  ],
                  "type": "string"
                },
                "new_str": {
                  "type": "string",
                  "description": "The new string to replace all content with."
                },
                "allow_deleting_content": {
                  "type": "boolean"
                }
              },
              "additionalProperties": true
            },
            {
              "type": "object",
              "required": [
                "command",
                "selection_with_ellipsis",
                "new_str"
              ],
              "properties": {
                "command": {
                  "enum": [
                    "replace_content_range"
                  ],
                  "type": "string"
                },
                "new_str": {
                  "type": "string",
                  "description": "The new string to replace the old string with."
                },
                "allow_deleting_content": {
                  "type": "boolean"
                },
                "selection_with_ellipsis": {
                  "type": "string",
                  "description": "Unique start and end snippet of the string to replace in the page content, including whitespace. DO NOT provide the entire string to replace. Instead, provide up to the first ~10 characters of the string to replace, an ellipsis, and then up to the last ~10 characters of the string to replace. Make sure you provide enough of the start and end snippet to uniquely identify the string to replace. For example, to replace an entire section, use \"old_start_and_end_snippet\":\"# Section heading...last paragraph.\""
                }
              },
              "additionalProperties": true
            },
            {
              "type": "object",
              "required": [
                "command",
                "selection_with_ellipsis",
                "new_str"
              ],
              "properties": {
                "command": {
                  "enum": [
                    "insert_content_after"
                  ],
                  "type": "string"
                },
                "new_str": {
                  "type": "string",
                  "description": "The new content to insert."
                },
                "selection_with_ellipsis": {
                  "type": "string",
                  "description": "Unique start and end snippet of the string to match in the page content, including whitespace. DO NOT provide the entire string to match. Instead, provide up to the first ~10 characters of the string to match, an ellipsis, and then up to the last ~10 characters of the string to match. Make sure you provide enough of the start and end snippet to uniquely identify the string to match. For example, to match an entire section, use \"selection_with_ellipsis\":\"# Section heading...last paragraph.\""
                }
              },
              "additionalProperties": true
            }
          ]
        }
      ],
      "description": "The data required for updating a page"
    }
  }
}
          

Provider

Notion →