Skip to main content
Glama

notion-mcp__notion_duplicate_page

Destructive

Copies one Notion page under a parent page or into a data source, by reading the source page and creating a new one; Notion's API has no duplicate. The copy carries the title, the content as markdown, the icon and cover when they are an emoji or a link, and, in a data source, the property values the target schema accepts. Comments, page history, page-level permissions, files stored in Notion, and blocks with no markdown form are not carried by a duplicate; content is copied as Notion's markdown rendering, so some block formatting can differ. Returns the new page's id and url, properties_not_copied with the reason for each, unknown_block_ids (blocks that could not be copied) and content_truncated.

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_duplicate_page"
  }
}

Input Schema

NameRequiredDescriptionDefault
titleNoThe copy's title. Absent keeps the source page's title.
accountNoOptional email address of the connected account to use (e.g. 'user@gmail.com'). If omitted, the default account is used.
page_idYesThe page to copy's Notion id, with or without dashes, or a Notion URL that contains it (the id is read from the URL).
parent_page_idNoThe parent page's Notion id or URL. Exactly one of parent_page_id and parent_data_source_id is set.
parent_data_source_idNoThe parent data source's Notion id (notion_get_database lists a database's data sources). The page becomes a row of it. Exactly one of parent_page_id and parent_data_source_id is set.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Far beyond the annotations, it enumerates exactly what survives the copy (title, markdown content, emoji/link icon and cover, schema-accepted properties) and exactly what does not (comments, page history, permissions, Notion-hosted files, non-markdown blocks), plus the caveat that markdown rendering can alter block formatting. Annotations only say readOnlyHint=false and destructiveHint=true; the description supplies the real behavioral contract, including the return payload, without asserting anything read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first clause, followed by the copy contract, the omissions, and finally return values, which is the right order for an agent deciding then invoking. It is dense but every clause carries distinct information; the only soft cost is that the returns are packed into one long trailing sentence rather than a short enumerated list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating, partial-fidelity copy operation with no output schema and five parameters, the description covers initiation, fidelity limits, failure-adjacent signals (unknown_block_ids, properties_not_copied) and truncation. An agent can decide, invoke, and interpret the response without consulting anything else.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline would be 3, but the description adds meaning the schema does not: it clarifies that page_id is the source of the read step, that data-source placement filters properties by the target schema, and that the title/icon/cover are inherited unless overridden. It does not spell out the exactly-one-of constraint on parent_page_id/parent_data_source_id (the schema does), so it falls just short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Copies one Notion page under a parent page or into a data source" states a specific verb, resource and destination, and the clause "Notion's API has no duplicate" explains why this exists rather than notion_create_page. It never names the sibling it supersedes, so the agent must infer the boundary from the read-then-create mechanics, but the operation itself is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes clear this is the path for cloning an existing page and that the target must be either a parent page or a data source ("in a data source, the property values the target schema accepts"), which effectively explains both modes. What it lacks is an explicit exclusion such as "use notion_create_page for a brand-new empty page" or a note that the source must be readable by the connected account.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.