Skip to main content
Glama

Duplicate a post or page

wp_duplicate_post

Copy an existing post or page into a new draft, as a starting point for a new page; the original stays unchanged and each call creates another copy. The draft gets the title with " (Copy)" appended, the content, excerpt, parent, menu order and the terms of taxonomies the account may assign, and, for an account that may edit the original, its custom fields, featured image, page template and page builder layout, so a page built with Elementor, Beaver Builder, SiteOrigin or another builder that stores its layout in post meta stays a builder page. Page builder data holds markup and is copied only with the unfiltered_html capability; a builder's keys, its page template included, are copied together or not at all; Elementor element ids are renewed. Never copied: credential-like keys, the original's editing state (edit lock, last editor, former slugs, trash data), caches the builder rebuilds, protected keys of other plugins, and a revision's meta. Media files cannot be duplicated, and a password-protected post only by an account that may edit it. Returns {duplicated: true, new_id}, the copied and skipped keys (with reasons) and the original's builder. Needs the right to read the original and to create entries of its type. Forwarded by AlphaBridge Connect to the one site this connection reaches.

Input Schema

NameRequiredDescriptionDefault
idYesId of the post or page to copy.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / id / description
      Added value: +"Id of the post or page to copy."
  2. Added

TDQS

A4.4/5.0
Behavior5/5

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

Far exceeds the annotation bar: it enumerates exactly what is copied (title with ' (Copy)', content, excerpt, parent, menu order, taxonomy terms, custom fields, featured image, builder layout), what is never copied (credential-like keys, edit lock, caches, protected keys, revision meta), the unfiltered_html capability requirement for builder markup, and the all-or-nothing builder key rule. The return shape is also described. Nothing here contradicts readOnlyHint=false / destructiveHint=false / idempotentHint=false — the copy-not-mutate semantics match those hints.

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?

The action is front-loaded in the first clause and every sentence carries real information — nothing is filler. However, it is delivered as one long semicolon-chained sentence, which makes the dense capability and exclusion rules harder to scan than separated sentences would be.

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 write tool with no output schema, the description supplies the return value ({duplicated: true, new_id} plus copied/skipped keys and reasons), permission requirements, builder-specific edge cases, and the bridge/site scoping note. There is no gap an agent needs filled before calling it.

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

Parameters3/5

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

Schema coverage is 100% for the single `id` parameter, so the schema already carries the meaning. The description only restates it as 'an existing post or page' and adds no format or sourcing detail beyond that, so the baseline 3 applies.

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

Purpose5/5

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

The description states a specific verb and resource ('Copy an existing post or page into a new draft') and immediately disambiguates from update/create siblings by noting 'the original stays unchanged and each call creates another copy.' An agent can tell this apart from wp_create_post and wp_update_post without opening either schema.

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?

It gives a clear use case ('as a starting point for a new page') and states prerequisites ('Needs the right to read the original and to create entries of its type') plus exclusions (media files can't be duplicated, password-protected posts require edit rights). It stops short of naming sibling alternatives explicitly, so it lands at a strong 4.

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.

Resources