Skip to main content
Glama

site_clone

DestructiveIdempotent

Copy a Voog site's layouts, pages, media, settings, and articles onto another site, overwriting the target. Supports dry-run planning and resumable execution to handle interruptions.

Instructions

Copy one Voog site's content onto another (layouts, layout assets, media, site settings, pages, content areas, articles). site is the SOURCE (read-only); target_site is OVERWRITTEN. Both must be names from voog_list_sites.

DRY RUN BY DEFAULT — without force=true nothing is written and the result reports what would happen. Run phase 'plan' first: it returns source object counts, the target's remaining asset quota, and the specific things Voog will not let a clone reproduce.

RESUMABLE. state_dir holds source-id -> target-id maps that make every phase re-runnable: a run stopped by an asset quota or a transient error is continued by calling again with the same state_dir, and nothing is created twice. Use a FRESH state_dir per source/target pair — the tool refuses a directory that belongs to a different pair.

Phases run in dependency order regardless of the order you list them (a page cannot reference a layout that does not exist yet): layouts, layout_assets, assets, site, pages, contents, articles, cleanup, verify.

NOT COPIED: ecommerce (products, categories, discounts, cart rules, orders), elements, redirects, webhooks, forms, comments. Languages are matched by code, never created.

Voog limits the clone cannot work around: created_at is not settable — PUT returns 200 and the value resets to now, so every copied article and page carries the clone date. published_at is not settable, for the same reason. Duplicate article paths cannot be reproduced — Voog now auto-suffixes a colliding path with -1. Legacy sites that hold two articles on one path will have the twin land on a different URL. Asset storage is capped per plan. The clone checks the target's remaining quota before uploading and stops cleanly rather than hitting 422 quota_exceeded partway through.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
siteYesSOURCE site name from voog_list_sites (read-only).
forceNoRequired to write anything. Without it the run is a dry run. This tool OVERWRITES the target site.
phasesNoWhich phases to run. Omit for the full pipeline. 'plan' is a read-only preflight and runs alone.
state_dirYesAbsolute path holding the resume state. Reuse the same directory to continue an interrupted run; use a fresh one for a different source/target pair.
max_workersNoParallel asset uploads (1-8).
target_siteYesTARGET site name from voog_list_sites. Its content areas are rebuilt and its layouts overwritten.
asset_budget_bytesNoCap on bytes uploaded in the assets phase. Defaults to the target's remaining quota when Voog reports one. Set it lower to leave headroom.
Behavior5/5

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

Beyond the annotations (destructive, idempotent), the description discloses a wealth of behavioral details: dry-run by default, force flag required to write, phase dependency order, state_dir safety and refusal rules, and specific Voog platform limitations (created_at/published_at reset, duplicate article path auto-suffix, asset quota checks). This far exceeds the annotation baseline.

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

Conciseness5/5

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

The description is lengthy but every paragraph serves a distinct purpose: core function, dry-run safety, resumability, phase ordering, exclusions, and platform limits. It is front-loaded with the most critical information (destructive overwrite) and uses capitalized headers for key behaviors, making it scannable for a complex tool.

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?

Given the tool's complexity (7 parameters, multi-phase workflow, no output schema), the description is remarkably complete. It tells the agent what the 'plan' phase returns, how quota exhaustion is handled, what will not be cloned, and how to safely resume an interrupted run. No behavioral gaps remain.

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?

The schema already provides 100% parameter descriptions, but the description adds meaningful context: it marks site as SOURCE read-only and target_site as OVERWRITTEN, explains the dry-run semantics for force, elaborates on state_dir's pair-binding refusal, and clarifies that phases run in fixed dependency order. This adds value beyond the schema rather than merely restating it.

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 opens with a specific verb and resource: 'Copy one Voog site's content onto another' and enumerates the content types (layouts, layout assets, media, site settings, pages, content areas, articles). It clearly distinguishes the source and target roles, and the scope differentiates it from siblings like layouts_pull/push or page_duplicate.

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 gives clear operational context: both sites must come from voog_list_sites, it recommends running the 'plan' phase first, and it explains dry-run behavior and resumability. It also lists what is NOT copied, which helps an agent decide whether this tool fits a task. However, it does not explicitly name alternative tools for narrower operations or describe when not to use it.

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/runnel/voog-mcp'

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