← WebMCP Directory

Tool tree

rough-cut.samarthsaxena1672003.workers.dev

Media & PersonalTools verified
Website
A human-first video editor with structured WebMCP tools for any compatible agent.
Explore capabilities

    page: Home

    request_video_uploadAction

    Focus and highlight the source-video upload control so the human can click it and choose one local video. Returns human_action_required because browser security requires a user gesture.

    View tool JSON
    {
      "name": "request_video_upload",
      "kind": "act",
      "impl": "imperative",
      "description": "Focus and highlight the source-video upload control so the human can click it and choose one local video. Returns human_action_required because browser security requires a user gesture.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }

    page: Demo

    get_project_stateAnswer

    Read the active project version, duration, ordered clips, transitions, protected ranges, captions, caption style, overlays, background music and B-roll markers. Call before editing.

    View tool JSON
    {
      "name": "get_project_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the active project version, duration, ordered clips, transitions, protected ranges, captions, caption style, overlays, background music and B-roll markers. Call before editing.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/editor/demo"
    }
    get_activityAnswer

    Read a paginated page of recent human, agent and system project activity.

    View tool JSON
    {
      "name": "get_activity",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read a paginated page of recent human, agent and system project activity.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          }
        },
        "required": [],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    rename_projectAction

    Change the persisted project name used by the editor and default exports.

    View tool JSON
    {
      "name": "rename_project",
      "kind": "act",
      "impl": "imperative",
      "description": "Change the persisted project name used by the editor and default exports.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "name": {
            "type": "string",
            "description": "New project name"
          }
        },
        "required": [
          "expected_version",
          "name"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    get_transcriptAnswer

    Read a page of word-timestamped transcript for the active source video.

    View tool JSON
    {
      "name": "get_transcript",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read a page of word-timestamped transcript for the active source video.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "number",
            "description": "Zero-based word offset",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Words to return"
          }
        },
        "required": [],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    search_transcriptAnswer

    Find transcript words matching text and return surrounding word-timestamped context.

    View tool JSON
    {
      "name": "search_transcript",
      "kind": "answer",
      "impl": "imperative",
      "description": "Find transcript words matching text and return surrounding word-timestamped context.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Text to find"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    inspect_frameAnswer

    Seek the visible editor to a timeline time and return the displayed frame as JPEG data with its exact time.

    View tool JSON
    {
      "name": "inspect_frame",
      "kind": "answer",
      "impl": "imperative",
      "description": "Seek the visible editor to a timeline time and return the displayed frame as JPEG data with its exact time.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "timeline_ms": {
            "type": "number",
            "description": "Timeline position in milliseconds",
            "minimum": 0
          }
        },
        "required": [],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    detect_silencesAnswer

    Analyze source audio with FFmpeg and return candidate silent source ranges. This does not edit the timeline.

    View tool JSON
    {
      "name": "detect_silences",
      "kind": "answer",
      "impl": "imperative",
      "description": "Analyze source audio with FFmpeg and return candidate silent source ranges. This does not edit the timeline.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "threshold_db": {
            "type": "number",
            "minimum": -60,
            "maximum": -10
          },
          "minimum_ms": {
            "type": "number",
            "minimum": 100,
            "maximum": 5000
          }
        },
        "required": [],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    transcribe_videoAction

    Transcribe the source video with Cloudflare Whisper and save word timestamps. This may take several minutes.

    View tool JSON
    {
      "name": "transcribe_video",
      "kind": "act",
      "impl": "imperative",
      "description": "Transcribe the source video with Cloudflare Whisper and save word timestamps. This may take several minutes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          }
        },
        "required": [
          "expected_version"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    split_clipAction

    Split one timeline clip at an exact source-media time.

    View tool JSON
    {
      "name": "split_clip",
      "kind": "act",
      "impl": "imperative",
      "description": "Split one timeline clip at an exact source-media time.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "clip_id": {
            "type": "string",
            "description": "Clip ID from get_project_state"
          },
          "source_ms": {
            "type": "number",
            "description": "Source-media split time in milliseconds",
            "minimum": 0
          }
        },
        "required": [
          "expected_version",
          "clip_id",
          "source_ms"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    split_textAction

    Split one caption or text-overlay clip at an exact timeline time.

    View tool JSON
    {
      "name": "split_text",
      "kind": "act",
      "impl": "imperative",
      "description": "Split one caption or text-overlay clip at an exact timeline time.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "kind": {
            "type": "string",
            "enum": [
              "caption",
              "overlay"
            ]
          },
          "item_id": {
            "type": "string",
            "description": "Caption or overlay ID"
          },
          "timeline_ms": {
            "type": "number",
            "description": "Timeline split position",
            "minimum": 0
          }
        },
        "required": [
          "expected_version",
          "kind",
          "item_id",
          "timeline_ms"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    split_background_musicAction

    Split one non-looping A2 music clip at an exact timeline time.

    View tool JSON
    {
      "name": "split_background_music",
      "kind": "act",
      "impl": "imperative",
      "description": "Split one non-looping A2 music clip at an exact timeline time.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "clip_id": {
            "type": "string",
            "description": "Music clip ID"
          },
          "timeline_ms": {
            "type": "number",
            "description": "Timeline split position",
            "minimum": 0
          }
        },
        "required": [
          "expected_version",
          "clip_id",
          "timeline_ms"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    trim_clipAction

    Set a clip's source in and out points without rippling later clips.

    View tool JSON
    {
      "name": "trim_clip",
      "kind": "act",
      "impl": "imperative",
      "description": "Set a clip's source in and out points without rippling later clips.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "clip_id": {
            "type": "string",
            "description": "Clip ID"
          },
          "source_in_ms": {
            "type": "number",
            "description": "New source in",
            "minimum": 0
          },
          "source_out_ms": {
            "type": "number",
            "description": "New source out",
            "minimum": 0
          }
        },
        "required": [
          "expected_version",
          "clip_id",
          "source_in_ms",
          "source_out_ms"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    delete_clipAction

    Delete one entire clip. By default its timeline gap remains; set ripple true to close the removed clip's span. Protected source ranges are rejected.

    View tool JSON
    {
      "name": "delete_clip",
      "kind": "act",
      "impl": "imperative",
      "description": "Delete one entire clip. By default its timeline gap remains; set ripple true to close the removed clip's span. Protected source ranges are rejected.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "clip_id": {
            "type": "string",
            "description": "Clip ID"
          },
          "ripple": {
            "type": "boolean",
            "description": "Shift later clips left to close the removed span"
          }
        },
        "required": [
          "expected_version",
          "clip_id"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    remove_segmentsAction

    Remove one or more source-media ranges from every matching clip. Protected ranges are rejected.

    View tool JSON
    {
      "name": "remove_segments",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove one or more source-media ranges from every matching clip. Protected ranges are rejected.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "ranges": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "object",
              "properties": {
                "start_ms": {
                  "type": "number",
                  "description": "Start",
                  "minimum": 0
                },
                "end_ms": {
                  "type": "number",
                  "description": "End",
                  "minimum": 0
                }
              },
              "required": [
                "start_ms",
                "end_ms"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "expected_version",
          "ranges"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    reorder_clipsAction

    Replace timeline clip order atomically and pack clips together without gaps. Include every current clip ID exactly once.

    View tool JSON
    {
      "name": "reorder_clips",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace timeline clip order atomically and pack clips together without gaps. Include every current clip ID exactly once.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "clip_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "minItems": 1
          }
        },
        "required": [
          "expected_version",
          "clip_ids"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    move_clipAction

    Move a linked video/audio clip to an explicit timeline position. Clips cannot overlap.

    View tool JSON
    {
      "name": "move_clip",
      "kind": "act",
      "impl": "imperative",
      "description": "Move a linked video/audio clip to an explicit timeline position. Clips cannot overlap.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "clip_id": {
            "type": "string",
            "description": "Clip ID"
          },
          "timeline_start_ms": {
            "type": "number",
            "description": "Timeline start in milliseconds",
            "minimum": 0
          }
        },
        "required": [
          "expected_version",
          "clip_id",
          "timeline_start_ms"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    adjust_clipAction

    Adjust a clip's color, X/Y zoom and pan, volume, mute state, speed or edge fades. Omitted properties remain unchanged.

    View tool JSON
    {
      "name": "adjust_clip",
      "kind": "act",
      "impl": "imperative",
      "description": "Adjust a clip's color, X/Y zoom and pan, volume, mute state, speed or edge fades. Omitted properties remain unchanged.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "clip_id": {
            "type": "string",
            "description": "Clip ID"
          },
          "brightness": {
            "type": "number",
            "minimum": -1,
            "maximum": 1
          },
          "contrast": {
            "type": "number",
            "minimum": 0,
            "maximum": 2
          },
          "saturation": {
            "type": "number",
            "minimum": 0,
            "maximum": 3
          },
          "hue": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "scale_x": {
            "type": "number",
            "minimum": 0.25,
            "maximum": 4
          },
          "scale_y": {
            "type": "number",
            "minimum": 0.25,
            "maximum": 4
          },
          "position_x": {
            "type": "number",
            "minimum": -100,
            "maximum": 100
          },
          "position_y": {
            "type": "number",
            "minimum": -100,
            "maximum": 100
          },
          "volume": {
            "type": "number",
            "minimum": 0,
            "maximum": 5
          },
          "muted": {
            "type": "boolean"
          },
          "speed": {
            "type": "number",
            "minimum": 0.5,
            "maximum": 2
          },
          "fade_in_ms": {
            "type": "number",
            "description": "Fade-in duration",
            "minimum": 0
          },
          "fade_out_ms": {
            "type": "number",
            "description": "Fade-out duration",
            "minimum": 0
          }
        },
        "required": [
          "expected_version",
          "clip_id"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    set_transitionAction

    Set the transition from one clip into the next: cut, crossfade or fade-black.

    View tool JSON
    {
      "name": "set_transition",
      "kind": "act",
      "impl": "imperative",
      "description": "Set the transition from one clip into the next: cut, crossfade or fade-black.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "clip_id": {
            "type": "string",
            "description": "Outgoing clip ID"
          },
          "type": {
            "type": "string",
            "enum": [
              "cut",
              "crossfade",
              "fade-black"
            ]
          },
          "duration_ms": {
            "type": "number",
            "description": "Transition duration",
            "minimum": 0
          }
        },
        "required": [
          "expected_version",
          "clip_id",
          "type"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    set_captionsAction

    Replace captions with timed timeline text cues.

    View tool JSON
    {
      "name": "set_captions",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace captions with timed timeline text cues.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "captions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "text": {
                  "type": "string",
                  "description": "Caption"
                },
                "start_ms": {
                  "type": "number",
                  "description": "Timeline start",
                  "minimum": 0
                },
                "end_ms": {
                  "type": "number",
                  "description": "Timeline end",
                  "minimum": 0
                },
                "position": {
                  "type": "string",
                  "enum": [
                    "top",
                    "center",
                    "bottom"
                  ]
                }
              },
              "required": [
                "text",
                "start_ms",
                "end_ms"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "expected_version",
          "captions"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    resync_captionsAction

    Rebuild captions from the saved word-timestamped transcript and current clip layout without running transcription again. This replaces current captions.

    View tool JSON
    {
      "name": "resync_captions",
      "kind": "act",
      "impl": "imperative",
      "description": "Rebuild captions from the saved word-timestamped transcript and current clip layout without running transcription again. This replaces current captions.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          }
        },
        "required": [
          "expected_version"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    add_captionAction

    Add one positioned caption without replacing existing captions.

    View tool JSON
    {
      "name": "add_caption",
      "kind": "act",
      "impl": "imperative",
      "description": "Add one positioned caption without replacing existing captions.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "text": {
            "type": "string",
            "description": "Caption text"
          },
          "start_ms": {
            "type": "number",
            "description": "Timeline start",
            "minimum": 0
          },
          "end_ms": {
            "type": "number",
            "description": "Timeline end",
            "minimum": 0
          },
          "position": {
            "type": "string",
            "enum": [
              "top",
              "center",
              "bottom"
            ]
          }
        },
        "required": [
          "expected_version",
          "text",
          "start_ms",
          "end_ms"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    update_captionAction

    Edit an existing caption's text, timing or position. Text corrections to generated captions also update their linked transcript words.

    View tool JSON
    {
      "name": "update_caption",
      "kind": "act",
      "impl": "imperative",
      "description": "Edit an existing caption's text, timing or position. Text corrections to generated captions also update their linked transcript words.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "caption_id": {
            "type": "string",
            "description": "Caption ID"
          },
          "text": {
            "type": "string"
          },
          "start_ms": {
            "type": "number",
            "description": "Timeline start",
            "minimum": 0
          },
          "end_ms": {
            "type": "number",
            "description": "Timeline end",
            "minimum": 0
          },
          "position": {
            "type": "string",
            "enum": [
              "top",
              "center",
              "bottom"
            ]
          }
        },
        "required": [
          "expected_version",
          "caption_id"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    set_caption_styleAction

    Set the shared subtitle size, color, background visibility and background opacity.

    View tool JSON
    {
      "name": "set_caption_style",
      "kind": "act",
      "impl": "imperative",
      "description": "Set the shared subtitle size, color, background visibility and background opacity.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "size": {
            "type": "string",
            "enum": [
              "small",
              "medium",
              "large"
            ]
          },
          "color": {
            "type": "string",
            "enum": [
              "white",
              "yellow",
              "lime"
            ]
          },
          "background": {
            "type": "boolean"
          },
          "background_opacity": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "expected_version"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    remove_captionAction

    Remove one caption by ID.

    View tool JSON
    {
      "name": "remove_caption",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove one caption by ID.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "caption_id": {
            "type": "string",
            "description": "Caption ID"
          }
        },
        "required": [
          "expected_version",
          "caption_id"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    add_text_overlayAction

    Add a positioned text overlay at timeline timestamps.

    View tool JSON
    {
      "name": "add_text_overlay",
      "kind": "act",
      "impl": "imperative",
      "description": "Add a positioned text overlay at timeline timestamps.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "text": {
            "type": "string",
            "description": "Overlay text"
          },
          "start_ms": {
            "type": "number",
            "description": "Timeline start",
            "minimum": 0
          },
          "end_ms": {
            "type": "number",
            "description": "Timeline end",
            "minimum": 0
          },
          "position": {
            "type": "string",
            "enum": [
              "top",
              "center",
              "bottom"
            ]
          },
          "font_size": {
            "type": "number",
            "description": "Font size",
            "minimum": 0
          },
          "color": {
            "type": "string",
            "enum": [
              "white",
              "yellow",
              "lime"
            ]
          },
          "background": {
            "type": "boolean"
          }
        },
        "required": [
          "expected_version",
          "text",
          "start_ms",
          "end_ms"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    update_text_overlayAction

    Edit an existing text overlay's text, timing or position.

    View tool JSON
    {
      "name": "update_text_overlay",
      "kind": "act",
      "impl": "imperative",
      "description": "Edit an existing text overlay's text, timing or position.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "overlay_id": {
            "type": "string",
            "description": "Overlay ID"
          },
          "text": {
            "type": "string"
          },
          "start_ms": {
            "type": "number",
            "description": "Timeline start",
            "minimum": 0
          },
          "end_ms": {
            "type": "number",
            "description": "Timeline end",
            "minimum": 0
          },
          "position": {
            "type": "string",
            "enum": [
              "top",
              "center",
              "bottom"
            ]
          },
          "font_size": {
            "type": "number",
            "description": "Font size",
            "minimum": 0
          },
          "color": {
            "type": "string",
            "enum": [
              "white",
              "yellow",
              "lime"
            ]
          },
          "background": {
            "type": "boolean"
          }
        },
        "required": [
          "expected_version",
          "overlay_id"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    remove_text_overlayAction

    Remove one text overlay by ID.

    View tool JSON
    {
      "name": "remove_text_overlay",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove one text overlay by ID.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "overlay_id": {
            "type": "string",
            "description": "Overlay ID"
          }
        },
        "required": [
          "expected_version",
          "overlay_id"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    request_background_music_uploadAction

    Switch to the Music tab and highlight the upload control so the human can choose a local audio file. Returns human_action_required because browser security requires a user gesture.

    View tool JSON
    {
      "name": "request_background_music_upload",
      "kind": "act",
      "impl": "imperative",
      "description": "Switch to the Music tab and highlight the upload control so the human can choose a local audio file. Returns human_action_required because browser security requires a user gesture.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    adjust_background_musicAction

    Adjust the uploaded A2 background-music track. The human must upload the audio asset first.

    View tool JSON
    {
      "name": "adjust_background_music",
      "kind": "act",
      "impl": "imperative",
      "description": "Adjust the uploaded A2 background-music track. The human must upload the audio asset first.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "clip_id": {
            "type": "string",
            "description": "Music clip ID"
          },
          "timeline_start_ms": {
            "type": "number",
            "description": "Timeline start",
            "minimum": 0
          },
          "source_in_ms": {
            "type": "number",
            "description": "Music source in",
            "minimum": 0
          },
          "source_out_ms": {
            "type": "number",
            "description": "Music source out",
            "minimum": 0
          },
          "speed": {
            "type": "number",
            "minimum": 0.5,
            "maximum": 2
          },
          "volume": {
            "type": "number",
            "minimum": 0,
            "maximum": 5
          },
          "muted": {
            "type": "boolean"
          },
          "fade_in_ms": {
            "type": "number",
            "description": "Fade in",
            "minimum": 0
          },
          "fade_out_ms": {
            "type": "number",
            "description": "Fade out",
            "minimum": 0
          },
          "loop": {
            "type": "boolean"
          }
        },
        "required": [
          "expected_version",
          "clip_id"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    remove_background_musicAction

    Remove one A2 background-music clip. Set ripple true to close the resulting A2 gap.

    View tool JSON
    {
      "name": "remove_background_music",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove one A2 background-music clip. Set ripple true to close the resulting A2 gap.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "clip_id": {
            "type": "string",
            "description": "Music clip ID"
          },
          "ripple": {
            "type": "boolean"
          }
        },
        "required": [
          "expected_version",
          "clip_id"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    protect_segmentAction

    Protect a source range so later destructive edits cannot remove it.

    View tool JSON
    {
      "name": "protect_segment",
      "kind": "act",
      "impl": "imperative",
      "description": "Protect a source range so later destructive edits cannot remove it.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "start_ms": {
            "type": "number",
            "description": "Source start",
            "minimum": 0
          },
          "end_ms": {
            "type": "number",
            "description": "Source end",
            "minimum": 0
          },
          "label": {
            "type": "string",
            "description": "Why this must remain"
          }
        },
        "required": [
          "expected_version",
          "start_ms",
          "end_ms",
          "label"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    unprotect_segmentAction

    Remove protection from a source range by ID.

    View tool JSON
    {
      "name": "unprotect_segment",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove protection from a source range by ID.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "range_id": {
            "type": "string",
            "description": "Protected range ID"
          }
        },
        "required": [
          "expected_version",
          "range_id"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    mark_brollAction

    Attach a B-roll brief to a spoken source range without generating footage.

    View tool JSON
    {
      "name": "mark_broll",
      "kind": "act",
      "impl": "imperative",
      "description": "Attach a B-roll brief to a spoken source range without generating footage.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "start_ms": {
            "type": "number",
            "description": "Source start",
            "minimum": 0
          },
          "end_ms": {
            "type": "number",
            "description": "Source end",
            "minimum": 0
          },
          "brief": {
            "type": "string",
            "description": "Visual brief"
          }
        },
        "required": [
          "expected_version",
          "start_ms",
          "end_ms",
          "brief"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    remove_brollAction

    Remove one B-roll marker by ID.

    View tool JSON
    {
      "name": "remove_broll",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove one B-roll marker by ID.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          },
          "marker_id": {
            "type": "string",
            "description": "B-roll marker ID"
          }
        },
        "required": [
          "expected_version",
          "marker_id"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    undoAction

    Undo the latest reversible timeline edit.

    View tool JSON
    {
      "name": "undo",
      "kind": "act",
      "impl": "imperative",
      "description": "Undo the latest reversible timeline edit.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          }
        },
        "required": [
          "expected_version"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    redoAction

    Redo the latest undone timeline edit.

    View tool JSON
    {
      "name": "redo",
      "kind": "act",
      "impl": "imperative",
      "description": "Redo the latest undone timeline edit.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Project version returned by get_project_state"
          }
        },
        "required": [
          "expected_version"
        ],
        "additionalProperties": false
      },
      "page": "/editor/demo"
    }
    export_mp4Action

    Render the current project as an MP4. When rendering completes, a highlighted Download MP4 button appears in the editor; ask the human to click it because browser security requires a trusted user gesture to save the file.

    View tool JSON
    {
      "name": "export_mp4",
      "kind": "act",
      "impl": "imperative",
      "description": "Render the current project as an MP4. When rendering completes, a highlighted Download MP4 button appears in the editor; ask the human to click it because browser security requires a trusted user gesture to save the file.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/editor/demo"
    }
    export_edlAction

    Generate and download a CMX3600-style EDL for the current cut.

    View tool JSON
    {
      "name": "export_edl",
      "kind": "act",
      "impl": "imperative",
      "description": "Generate and download a CMX3600-style EDL for the current cut.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/editor/demo"
    }
    export_srtAction

    Generate and download an SRT subtitle file from the current captions.

    View tool JSON
    {
      "name": "export_srt",
      "kind": "act",
      "impl": "imperative",
      "description": "Generate and download an SRT subtitle file from the current captions.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/editor/demo"
    }