AI video editor your agent can drive: plan scenes, edit a multi-track timeline, and render MP4s.
Connect Remote server
claude mcp add --transport http cutclip https://cutclip.one/api/mcp --header "Authorization: Bearer <YOUR_API_KEY>"
{
"mcpServers": {
"cutclip": {
"url": "https://cutclip.one/api/mcp",
"headers": {
"Authorization": "Bearer <YOUR_API_KEY>"
}
}
}
}
{
"servers": {
"cutclip": {
"type": "http",
"url": "https://cutclip.one/api/mcp",
"headers": {
"Authorization": "Bearer <YOUR_API_KEY>"
}
}
}
}
Settings > Connectors > Add custom connector
URL: https://cutclip.one/api/mcp
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools 80 found in our last check
project.createCreate a new film project (§11.1)
project.list_for_ownerList every project a user owns, most recently updated first
project.updateRename a project or change its description
project.deletePermanently delete a project and everything in it (tracks, scenes, assets, render history). Cannot be undone.
project.get_stateFetch a project's full current state: project, tracks, scenes, timeline items, placeholders, scenarios
project.get_summaryFetch a compact project summary (project settings, tracks, scene list) — prefer this over project.get_state for normal conversation context (§16)
project.exportExport a project's full structure (settings, tracks, scenes, timeline, placeholders, transitions, current prompts) as a portable JSON document, suitable for project.import
project.importCreate a brand-new project from a project.export JSON document. Only relinks media whose asset id still exists and is owned by ownerId; anything else comes in unresolved.
track.createCreate a video or audio track on a project (§11.4)
track.updateRename, mute, lock, or set the volume (0-1) of a track
track.deleteDelete a track
track.reorderMove a track to a new position among the project's tracks — video and audio tracks share one ordering, so a track can move in between tracks of either type
scene.createCreate a storytelling scene on a project — distinct from a timeline clip (§7.2, §11.3)
scene.updateUpdate a scene's title, summary, narrative purpose, planned duration, or location (its shots inherit the location unless they override it)
scene.reorderMove a scene to a new position among the project's scenes
scene.deleteDelete a scene
timeline.add_placeholderAdd a video/audio placeholder clip to a track, ready for a generation prompt (§7.5, §11.5)
timeline.move_itemMove a timeline item to a new start time, and optionally to a different track (must be the same track type — video to video, audio to audio — and the item must not be a transition or have one attached)
timeline.duplicate_itemDuplicate a timeline clip (media or placeholder, not a transition), by default onto the same track immediately after itself, pushing whatever else is later on that track to the right to make room (only fails if the target spot would land inside another clip that starts before it…
timeline.trim_itemTrim a timeline item's start, duration, or source in/out points
timeline.set_speedChange a clip's playback speed (0.2 = 5x slower, 1 = normal, 1.8 = 1.8x faster). Recomputes the clip's timeline duration for the new speed and ripples everything later on the same track to stay contiguous — the source range consumed is unchanged, only how long it takes to play.
timeline.set_volumeSet a clip's own audio gain (0 = silent, 1 = full). Multiplies with its track's volume — both apply together — so a clip can be ducked or muted independent of the rest of its track.
timeline.set_transformPlace a clip on a video track as a layer: its position, size and opacity in the frame. Video tracks stack by order (higher order is drawn on top), and anything outside a scaled-down or transparent clip shows the tracks beneath — so a logo, watermark or picture-in-picture is an i…
timeline.split_itemSplit a timeline item into two at an absolute timeline position
timeline.delete_itemDelete a timeline item (and its placeholder, if any)
timeline.close_gapRipple a timeline item (and everything after it on the same track) earlier to eat the empty space immediately before it. Fails if there is no gap before the item.
timeline.batchApply SEVERAL timeline edits in ONE call — one version check, one result, one undo step, all-or-nothing (if any op fails nothing is applied and the error names the failing op). ALWAYS prefer this over repeated single-edit calls whenever you have two or more timeline edits to mak…
timeline.close_gapsClose the empty gaps between SEVERAL clips at once (a ripple: each clip after the first is pulled left against its predecessor, and everything later on the track moves with it, so clips after the span keep their spacing). Select the clips with exactly one of itemIds (every gap i…
timeline.add_transitionAdd a transition (§4.1: crossfade, smooth_blend, fade_from_black, or fade_to_black — a hard cut needs no call at all, it's just the default). crossfade and smooth_blend require fromItemId and toItemId to be two contiguous, back-to-back clips on the same track, and shift toItemId…
timeline.add_transitionsAdd the SAME transition to several clips in ONE call (and one undo step) — prefer this over repeated timeline.add_transition when joining a run of clips. Select the clips with exactly one of itemIds, trackId (every clip on a track) or all:true (every clip on every track; trackTy…
timeline.remove_transitionsRemove transitions from several clips in ONE call (and one undo step): every transition whose clip(s) are all selected (itemIds, trackId or all:true, like timeline.add_transitions) — a crossfade/smooth_blend needs both its clips selected, a fade just its own clip. Crossfaded cli…
timeline.remove_transitionRemove a transition. For a crossfade or smooth_blend this also shifts the incoming clip back to its pre-transition position.
timeline.update_transition_durationChange how long an existing fade, crossfade or smooth_blend lasts, in ms. For a crossfade or smooth_blend this re-shifts the incoming clip to keep it anchored to the outgoing clip's end.
asset.replace_placeholderPoint a placeholder at a real uploaded/generated asset (§11.7, §18.2). Preserves the placeholder and its prompt for provenance; sets its status to 'generated'.
asset.getFetch one asset's metadata (type, source, mime type, duration/dimensions if known) plus a downloadUrl for its file: a plain HTTP GET, no auth header needed, valid 24h (call again for a fresh one)
asset.listList every asset uploaded/generated for a project (§11.7)
scenario.createStage a concept + treatment + scene list before materializing it onto the timeline (§9, §11.2). Does not touch tracks/scenes/timeline — call scenario.apply_to_timeline next.
scenario.getFetch a staged scenario's concept, treatment, and scene list
scenario.updateRevise a staged scenario's concept, treatment, and/or scene list before applying it — e.g. after the user asks for a pacing or tone change. Only the fields provided are changed.
scenario.deleteDelete a staged scenario draft (does not affect anything already applied to the timeline)
scenario.apply_to_timelineThe high-level film-building tool (§34): materializes a staged scenario into real tracks, scenes, placeholders, and timeline items in one atomic, undoable step. Creates a video track with one placeholder per scene; optionally a Music track with one placeholder spanning the whole…
storyline.getFetch the Scenario Maker draft storyline for a project: the premise (and how many reference images it has), the scenes the user has accepted so far (path), and the current batch of suggested next scenes (candidates).
storyline.set_premiseSet the Scenario Maker premise (initial scene or short scenario), optionally with up to 3 reference images (base64) that define the look and setting. Resets the accepted path and candidates. Needs a premise or at least one image.
storyline.set_candidatesReplace the current batch of suggested next scenes with distinct options you propose, so the user can pick one. Each option should follow from the premise and every scene already in the path.
storyline.pickAccept one of the current candidates as the next scene in the storyline, optionally with edits. Clears the candidates — suggest new ones afterwards.
storyline.update_sceneEdit a scene already accepted into the storyline path
storyline.rewindRewind the storyline: keep only the first `keep` accepted scenes (0 clears the path) and discard the rest and the current candidates, so a different choice can be made at that point.
storyline.applyTurn the accepted storyline path into real scenes, placeholders, prompts and timeline items in one undoable step (stages it as a scenario and applies it), then clears the draft path. With draftShots (default true) each scene is first broken into a shot list like shot.draft (mete…
prompt.attachAttach a structured prompt document to a scene slot (visual/sound/music/voice) or a placeholder directly (§8, §11.6)
prompt.updateRevise a prompt — creates a new revision rather than overwriting the old one (§17)
prompt.getFetch one prompt document by id
prompt.list_for_sceneList every prompt ever attached to a scene, across all slots and revisions
prompt.list_revisionsGet the full revision history (oldest first) for a prompt's slot, given any promptId in that lineage (§17)
project.undoUndo the most recent operation applied to a project (§14)
render.previewStart a fast, half-resolution preview export of the project's current timeline to MP4 (§11.8). Takes the same aspect/fit as render.final so the framing can be checked cheaply. Costs 1 credit, charged to the project owner; fails with INSUFFICIENT_CREDITS if they can't cover it.
render.finalStart a full-resolution final export of the project's current timeline to MP4 (§11.8). Costs 5 credits at 1080p (the default), 10 at 2k (2560x1440) or 15 at 4k, charged to the project owner; fails with INSUFFICIENT_CREDITS if they can't cover it. The resolution is the short side…
credits.get_balanceGet the credit balance of the project's owner, and what a render costs, in milli-credits (1000 = 1 credit). Check this before starting a render if the balance may be low.
credits.list_historyList the project owner's credit history, newest first: purchases, assistant usage, renders and AI generations, each with its signed amount in milli-credits (1000 = 1 credit; negative = spent), balance after, detail (model, resolution, tokens…) and the project it was for. Also re…
render.statusCheck the status/progress of a render job
render.get_resultGet a completed render job's result: the output assetId and a downloadUrl for the rendered file — a plain HTTP GET, no auth header needed, valid 24h (call again for a fresh one)
render.list_for_projectList every render job ever started for a project, most recent first
render.deleteRemove a render job from the project's export list. If it finished, its output file is deleted too. Cannot be undone.
asset.uploadUpload a video, audio or image file into a project's media library. Send the file bytes as base64 (max 50 MB; larger files must be uploaded in the browser). Returns the new assetId.
asset.capture_frameGrab one frame of a video asset (e.g. a take) as a new PNG image asset. timeMs is the position in the video itself, not on the timeline. Save the result with shot.add_still, location.add_reference or character.add_reference.
prompt.draftDraft three alternative generation prompts for a scene's asset (metered in credits unless the owner uses their own Anthropic key). Returns the variants; attach one to a scene with prompt.attach.
shot.draftDraft a shot list for one scene — shot sizes, angles, movement, lens, f-stop, focus — from the scene, the film look and the cast (metered in credits unless the owner uses their own Anthropic key). Returns drafts only; create the ones you want with shot.create.
storyline.suggestSuggest next scenes for the project's storyline from its premise (metered in credits unless the owner uses their own Anthropic key). Requires storyline.set_premise first. The suggestions become candidates; choose one with storyline.pick.
film.get_lookGet the project's film look (style, grade, film stock, camera body, default models)
film.update_lookSet the project's film look (§36). Fields merge into the current look unless replace is true. Set this first: every shot prompt inherits it.
generation.list_modelsList the generation models (image and video) with their capabilities and prices in milli-credits (1000 = 1 credit).
character.listList the project's cast with each character's reference images (the character map)
character.getGet one character and its reference images
character.createAdd a recurring character to the cast. Describe appearance precisely — it drives the generated reference sheet.
character.updateUpdate a character's name, description or voice
character.set_primaryChoose which reference image anchors the character's identity in generated views and shots
character.deleteRemove a character (and its reference sheet) from the cast
character.add_referenceAttach an image asset (e.g. an uploaded photo via asset.upload) to a character as one view of its character map. The first reference becomes the identity anchor.
character.remove_referenceRemove one reference image from a character's map
character.generate_sheetGenerate the character map (front, ¾ left/right, profile, back, full body, close-up) with an image model, keeping one identity. With no reference yet, a front portrait is generated first from the description. Costs credits per image (see generation.list_models), charged to the p…
character.generate_viewGenerate (or regenerate) one view of a character's map, e.g. an expression. Costs credits, charged to the project owner.
Headers
| Name | Description |
|---|---|
AuthorizationRequired, secret | Bearer sfs_... personal token. Create one at https://www.cutclip.one (Settings → Connect an AI client). Free credits on signup. |
Details
| Endpoint | https://cutclip.one/api/mcp (Streamable HTTP) |
| First published | 5 Nov 2026 |
| Last updated | 5 Nov 2026 |
| Registry name | one.cutclip/cutclip |
More ai and media servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
