Medium Risk

notion-update-page

Update a Notion page's properties or content. Notion page properties are a JSON map of property names to SQLite values. 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 p...

Bulk/mass operation — affects multiple targets

Part of the Notion MCP server. Enforce policies on this tool with Intercept, the open-source MCP proxy.

@notion-mcp-server Write Risk 3/5

AI agents use notion-update-page to create or modify resources in Notion. Write operations carry medium risk because an autonomous agent could trigger bulk unintended modifications. Rate limits prevent a single agent session from making hundreds of changes in rapid succession. Argument validation ensures the agent passes expected values.

Without a policy, an AI agent could call notion-update-page repeatedly, creating or modifying resources faster than any human could review. Intercept's rate limiting ensures write operations happen at a controlled pace, and argument validation catches malformed or unexpected inputs before they reach Notion.

Write tools can modify data. A rate limit prevents runaway bulk operations from AI agents.

notion.yaml
tools:
  notion-update-page:
    rules:
      - action: allow
        rate_limit:
          max: 30
          window: 60

See the full Notion policy for all 24 tools.

Tool Name notion-update-page
Category Write
MCP Server Notion MCP Server
Risk Level Medium

View all 24 tools →

Agents calling write-class tools like notion-update-page have been implicated in these attack patterns. Read the full case and prevention policy for each:

Browse the full MCP Attack Database →

Other tools in the Write risk category across the catalogue. The same policy patterns (rate-limit, validate) apply to each.

What does the notion-update-page tool do? +

Update a Notion page's properties or content. Notion page properties are a JSON map of property names to SQLite values. 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. Notion page content is a string in Notion-flavored Markdown format. See the "create-pages" tool description for the full enhanced Markdown spec. 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. 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 accept JavaScript numbers (not strings). Use null to remove a property's value. Boolean values like "__YES__" are supported for checkbox properties. Examples: (1) 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 } } (2) 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" } (3) 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" } (4) 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" } 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.. It is categorised as a Write tool in the Notion MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.

How do I enforce a policy on notion-update-page? +

Add a rule in your Intercept YAML policy under the tools section for notion-update-page. You can allow, deny, rate-limit, or validate arguments. Then run Intercept as a proxy in front of the Notion MCP server.

What risk level is notion-update-page? +

notion-update-page is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.

Can I rate-limit notion-update-page? +

Yes. Add a rate_limit block to the notion-update-page rule in your Intercept policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.

How do I block notion-update-page completely? +

Set action: deny in the Intercept policy for notion-update-page. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.

What MCP server provides notion-update-page? +

notion-update-page is provided by the Notion MCP server (@notion-mcp-server). Intercept sits as a proxy in front of this server to enforce policies before tool calls reach the server.

Enforce policies on Notion

Open source. One binary. Zero dependencies.

npx -y @policylayer/intercept
github.com/policylayer/intercept →
// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.