Skip to main content
Glama
kuklaph
by kuklaph

Copy Cascade Site

cascade_site_copy

Duplicate an entire site with all assets, folders, templates, and configuration to a new site name. Requires either the original site ID or name and a unique new site name.

Instructions

Copy an entire site to a new site with a new name.

Duplicates all assets, folders, templates, and configuration from an existing site into a brand-new site. This is a LONG-RUNNING operation — Cascade returns once the copy has started but finishes asynchronously. Poll cascade_list_sites to confirm completion. Either originalSiteId or originalSiteName must be provided; if both are given, originalSiteId wins.

Args:

  • originalSiteId (string, optional): Source site ID. Preferred when known.

  • originalSiteName (string, optional): Source site name. Used when originalSiteId is omitted.

  • newSiteName (string, required): Name for the new copied site. Must be unique across sites.

(Either originalSiteId or originalSiteName is required; the tool rejects calls that omit both.)

Returns: Cascade OperationResult: { success: true } On failure: { success: false, message: "" }

Examples:

  • Use when: "Duplicate the 'staging' site as 'staging-2026'" -> { originalSiteName: "staging", newSiteName: "staging-2026" }

  • Use when: "Copy site by id for a new campaign" -> { originalSiteId: "abc123...", newSiteName: "campaign-fall" }

  • Don't use when: You want to copy a single asset — use cascade_copy.

  • Don't use when: The site already exists under newSiteName — no merge behavior is supported.

Error Handling:

  • "requires either originalSiteId or originalSiteName" when both are omitted

  • "Source site not found" when the original identifier doesn't resolve

  • "Site name collision" when newSiteName already exists

  • "Permission denied" when the user isn't a site-copy administrator. Responses are JSON text; structuredContent is authoritative when the response fits. Oversized responses return bounded _cache metadata for cascade_read_response. For cascade_read, read_mode controls preview versus raw Cascade payload shape.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
originalSiteIdNoID of the site to copy. Takes precedence over originalSiteName when both are provided. One of originalSiteId/originalSiteName is required.
originalSiteNameNoName of the site to copy. Alternative to originalSiteId. One of originalSiteId/originalSiteName is required.
newSiteNameNoREQUIRED: Name of the new site that will be created from the copy.
Behavior5/5

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

Discloses that the operation is long-running and asynchronous, requiring polling via cascade_list_sites. Lists specific error messages (e.g., 'Source site not found'). Annotations (readOnlyHint=false, destructiveHint=false) are consistent with the description's disclosure of a non-idempotent mutation.

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

Conciseness3/5

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

Well-structured with sections (Args, Returns, Examples, Error Handling), but includes an irrelevant concluding paragraph about cascade_read and cascade_read_response that appears to be a copy-paste error, adding unnecessary verbosity and potential confusion.

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?

Covers the full context: purpose, parameter relationships, asynchronous behavior, polling recommendation, return structure (success/error), and error cases. No output schema is needed because the description adequately explains the response.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds critical semantics: the mutual exclusivity and precedence of originalSiteId over originalSiteName, and the explicit requirement for newSiteName (not captured in the required array).

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 clearly states 'Copy an entire site to a new site with a new name', a specific verb-resource pair. It explicitly distinguishes itself from the sibling tool cascade_copy by stating 'Don't use when: You want to copy a single asset — use cascade_copy'.

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

Usage Guidelines5/5

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

Provides explicit usage examples ('Use when: ...') and contraindications ('Don't use when: ...'). It explains when to prefer originalSiteId over originalSiteName and warns against using for single-asset copies or when the new site name already exists.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kuklaph/cascade-cms-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server