Categories › Media & Design › Video creation & editing
A video editor in your browser that your AI drives: cuts, captions, multicam, motion titles, export.
Remote server: your requests and data go to app.frapea.com. Claude Code: claude mcp add --transport http frapea https://app.frapea.com/mcp · Claude app: Settings → Connectors → Add custom connector.
The tools this server listed when we connected to it, in its own words.
connect — Pairs you with the user's Frapea browser tab. TWO WAYS ROUND. (1) If they already have Frapea open: ask them for the pairing code (the Conneget_projects — Lists the projects Frapea knows on this machine: id, name, lastOpenedAt, and for a project stored in a folder on disk its `folder` (the direget_timeline — Reads a project's timeline structure: timelines (id, name, fps, resolution) with tracks and clips. THE USER CAN COPY A CLIP'S ID from the edget_media — Lists the project's media library: mediaRef (the id clips use), name, kind (video/audio/image), durationSeconds, resolution, and sceneSampleget_transcript — Returns the word-level speech transcript of one media asset: language and words [{text, startSec, endSec}]. Only assets the user has transcrcreate_motion_composition — Creates a MOTION COMPOSITION — an animated graphic (infographic, title, promo end-card, chart…) written as a React TSX component. Read the 'update_motion_composition — Updates a motion composition's TSX files and/or manifest (name, duration, schema…). Same compile-and-test gate as create; files given here Mget_motion_composition — Returns a motion composition's manifest and full TSX sources.list_motion_compositions — Lists the project's motion compositions: id, mediaRef (for add_clips), name, size, fps, duration and the editable props schema.create_timeline — Creates a new timeline in the project and returns its id. Set fps, width and height for the target format (e.g. 1080×1920 @30 for a verticaladd_clips — Places media segments on a timeline. Each clip: mediaRef (from get_media, 'timeline:<id>' to NEST another timeline as a clip, 'solid:#rrggbbsplit_clips — Blades clips at a timeline frame. Splits every listed clip (and its linked partner) into two independent clips at atFrame. Frames are in theremove_clips — Deletes clips (lift — leaves a gap). Linked partners are NOT removed automatically; pass both ids of a pair to delete it whole. To close theripple_delete_ranges — Extracts [fromFrame, toFrame) on one track and shifts everything after it left to close the gap (sync-locked tracks follow). The go-to tool set_clip_properties — Adjusts a clip. Only the provided fields change. Mix: volume (0–4, 1 = unity; volume keyframes, when the clip has any, override it), fadeInFgenerate_captions — Generates animated captions from a spoken clip's transcript (the same generator as Frapea's UI): transcript words group into caption text clmanage_effects — Edits a clip's effect stack (ordered, per-effect enable). action: 'add' (type; returns the new effect's id) | 'remove' (effectId) | 'move' (manage_transitions — Transitions on a track's cuts OR lone clip edges (a free head/tail takes a single-sided fade from/to nothing; its alignment is forced). actimanage_tracks — Track operations on a timeline. action: 'mute' | 'unmute' | 'solo' | 'unsolo' (audio only; any solo silences non-solo tracks) | 'hide' | 'shcut_to_angle — MULTICAM angle switch. The angles are ordinary video tracks stacked over each other (sync them beforehand — clips of the same take on V1..Vnmove_clips — Moves clips to new positions (linked partners follow automatically). Each move: clipId, toStartFrame, optional toTrackId (same-kind track). set_active_timeline — Sets which timeline the project opens on (and what the user sees if the editor is open), opening its tab if it was closed. Purely a convenieset_project_settings — Updates a timeline's fps / width / height (clips keep their timing; content re-fits) and/or renames it. Only provided fields change.search_media — Semantic search over the project's media. Visual scope matches what is IN the picture (describe a shot: 'aerial city at night'); spoken scopremove_words — Text-based editing: cuts the given transcript words OUT of a clip as ripple deletes (everything after each cut shifts left). wordIndices areremove_silence — Cuts silent gaps inside a clip: any pause between transcribed words longer than minGapSec becomes a ripple delete (a small margin is kept soundo — Reverts the most recent edit THIS agent session made to the project (one step per call; repeat to go further). Cannot revert other tabs' or inspect_media — Looks INSIDE a source asset. Returns ONE contact sheet — every requested moment as a labelled cell in a single grid image — plus a per-cell inspect_timeline — WATCHES the cut. Composites every video layer at each requested frame and returns ONE contact sheet — the frames as labelled cells of a singget_problems — What has gone WRONG in the user's editor — renders that failed or stopped, footage that would not decode, chunks that could not be prepared get_bug_report — Prepare a BUG REPORT for the user: it opens in Frapea (Problems → Create bug report) for them to read and save. The report itself is NOT retverify_timeline — Renders a timeline the way an export does and reports what fails. inspect_timeline shows a few frames through the preview path, which quietlinsert_clips — Ripple-inserts media segments: everything at/after atFrame shifts right to make room (clips under the cut split). Same clip shape as add_cliorganize_media — Pool file operations. action: 'rename' renames the real file on disk (needs newName; clips referencing the old name go offline). 'delete' UNread_skill — Returns Frapea's editing documentation for a topic. With no topic: the editing conventions, how the tools fit together and the current featuawait_user_action — Waits (up to ~45 s per call) for the user to resolve a pending Frapea prompt — e.g. the folder-permission dialog another tool just opened. Topen_project — Navigates the user's Frapea tab to a project so they can WATCH the edit live. Not required for editing — every tool works headlessly; use thclose_project — Navigates the user's Frapea tab back to the project manager and releases this session's headless runtime for the project. When the tab showsnew_project — Creates a project. By default it is created in the browser's own storage, which needs no permission and no click: the project id comes back connect_media_folder — Asks the user to attach a folder of THEIR OWN source footage to the project — opens a dialog in Frapea with a 'Connect folder' button. Only Not tested by KitScout yet. When our harness runs it, pros, cons and the tasks we tried appear here, with the date and evidence.