duplicate_project
Duplicate an existing ChatCut project into a new project owned by the signed-in user — the same full copy the editor dashboard's Duplicate action makes (all timelines, tracks, items, captions including word-level edits, speakers, transcripts, and asset references; chat history and markers are not copied).
Use this for safety copies before destructive edits and for project-level variants (language versions, alternate cuts that need separate exports). For variants of a single cut inside the same project, prefer manage_timelines action=duplicate instead.
Only the project owner can duplicate a project. Returns the copy's projectId, editor URL, and live project card. By default the session also re-targets the new copy, but session binding is best-effort: to edit the copy reliably, pass the returned newProjectId as projectId explicitly on subsequent tool calls — an explicit per-call projectId always wins. Pass activate=false to keep the source project targeted.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "duplicate_project"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Display name for the copy. Defaults to "[Copy] <source project name>". | |
| activate | No | Re-target this external MCP session to the new copy. Defaults to true. Pass false to keep the source project targeted. Either way, prefer passing the returned newProjectId explicitly on subsequent calls that should edit the copy. | |
| projectId | No | Project for this call (full ID or unambiguous prefix). Explicit-timeline calls never change the target of later calls; legacy project selection applies otherwise. | |
| timelineId | No | ||
| editorBaseUrl | No | Editor origin/base URL. Defaults to CHATCUT_EDITOR_URL or http://localhost:5173. |