# Frapea Editor MCP server

Source: https://glimind.com/server/mcp-registry%2Fcom.frapea%2Feditor
Registry id: `mcp-registry/com.frapea/editor`
Status: live (checked 2026-10-27T02:16:27.983Z)

## Measurements (30 days)

- Uptime: 100%
- Checks: 3189
- Outages (90 days): 0

## Install

```json
{
  "mcpServers": {
    "frapea-editor-mcp-server": {
      "type": "http",
      "url": "https://app.frapea.com/mcp"
    }
  }
}
```

Claude Code:

```sh
claude mcp add --transport http frapea-editor-mcp-server https://app.frapea.com/mcp
```

## Tools (67)

- `add_clips`: Places media segments on a timeline. Each clip: mediaRef (from get_media, 'timeline:<id>' to NEST another timeline as a clip, 'solid:#rrggbb' , 'motion:<id>' fo
- `add_sample_media`: Frapea's SAMPLE MEDIA, for trying the editor without your own footage: a short talking clip with speech and pauses (for transcripts, captions, removing words or
- `add_sfx`: Frapea's BUILT-IN sound-effects pack — synthesized, licence-free, no API key, no download wait. Covers common UI and motion sounds; search_sounds is for what th
- `apply_layout`: Arranges clips into a screen layout by writing ordinary transform + crop values (first clipId → first cell). layout: full | side-by-side | top-bottom | pip-top-
- `await_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. The dialog waits for 
- `bind_face`: Makes a clip FOLLOW a tracked face — the way to stick a mask, label or blur onto somebody's head. Movement is relative to where the face was first seen, so the 
- `close_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 shows that project it rel
- `close_timeline`: Closes a timeline's TAB in the editor — hides it from the tab row, does NOT delete it: it stays in the media pool, and you (or anyone) can still edit, verify, n
- `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 Connect MCP button) and c
- `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 a human can do this 
- `create_motion_composition`: Creates a MOTION COMPOSITION — an animated graphic (infographic, title, promo end-card, chart…) written as a React TSX component. Read the 'motion' skill (read_
- `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 vertical short). The new tim
- `cut_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..Vn); this razors the w
- `download_sound`: Downloads one Freesound sound (its HQ MP3 preview, ~128 kbps — plenty for SFX/ambience) into the project's media pool as a virtual file at the Library root (nam
- `download_stock_media`: Downloads one Pexels asset into the project's media pool as a virtual file at the Library root (name `pexels-<id>.jpg|.mp4`). Asynchronous: the first call accep
- `duplicate_timeline`: Copy a timeline under a new name — a backup of the cut before a review round changes it, or a variant to try something on. A DEEP copy: new ids for the timeline
- `generate_captions`: Generates animated captions from a spoken clip's transcript (the same generator as Frapea's UI): transcript words group into caption text clips over the clip's 
- `generate_voiceover`: Generates an AI voiceover from a script — on-device with the free models, or in the cloud with ElevenLabs (the user's own key and credits). The WAV lands in the
- `get_analysis_status`: How far the project's media analysis has got. Analysis runs BY ITSELF whenever media is connected. Returns percent (0-100) — 100 means nothing is OUTSTANDING, n
- `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 returned to you — it wo
- `get_job_status`: Status of a background job started by a job-returning tool (generate_voiceover, verify_timeline, measure_loudness): {state: queued|running|done|failed|cancelled
- `get_media`: Lists the project's media library: mediaRef (the id clips use), name, kind (video/audio/image), durationSeconds, resolution, and sceneSamples — timestamps (seco
- `get_motion_composition`: Returns a motion composition's manifest and full TSX sources.
- `get_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 for playback, export
- `get_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 directory's name — files
- `get_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 editor's right-click m
- `get_transcript`: Returns the word-level speech transcript of one media asset: language and words [{text, startSec, endSec}]. Only assets the user has transcribed have one — NOT_
- `insert_clips`: Ripple-inserts media segments: everything at/after atFrame shifts right to make room (clips under the cut split). Same clip shape as add_clips. Use to splice a 
- `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 fingerprint. Pass at
- `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 single grid image — plus
- `list_face_tracks`: Lists face-tracking runs and the people each one found: faceId, name, frame range, how many frames it was actually visible for, and how many gaps it has. Sample
- `list_motion_compositions`: Lists the project's motion compositions: id, mediaRef (for add_clips), name, size, fps, duration and the editable props schema.
- `list_voiceover_models`: The text-to-speech providers Frapea can generate voiceovers with. Returns providers[]: the FREE in-browser models straight from the TTS registry ({id, label, la
- `manage_effects`: Edits a clip's effect stack (ordered, per-effect enable). action: 'add' (type; returns the new effect's id) | 'remove' (effectId) | 'move' (effectId + toIndex —
- `manage_queue`: Full control of the background work queue. action 'list' returns every queued/running item across all projects (analyses, proxies, beats) plus the visible task 
- `manage_tracks`: Track operations on a timeline. action: 'mute' | 'unmute' | 'solo' | 'unsolo' (audio only; any solo silences non-solo tracks) | 'hide' | 'show' | 'rename' (need
- `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). action: 'add' (trackId +
- `measure_loudness`: MEASURE THE MIX — you cannot hear it; this is how you check it. Mixes the timeline's audio offline exactly as an export does (every audio track, nested timeline
- `merge_faces`: Joins two or more faces from one run into a single person — for somebody who walked out of the shot and came back. REFUSED when any two of them appear on the sa
- `move_clips`: Moves clips to new positions (linked partners follow automatically). Each move: clipId, toStartFrame, optional toTrackId (same-kind track). Overwrite semantics 
- `new_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 immediately and you 
- `open_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 this for show-your-wor
- `open_timeline`: Opens a timeline's TAB in the editor (the user can close tabs to keep the tab row short; a closed timeline is not deleted and every tool works on it as before).
- `organize_media`: Pool file operations. action: 'rename' renames the real file on disk (needs newName; clips referencing the old name go offline). 'delete' UNLINKS the file from 
- `organize_pool`: THE MEDIA POOL'S SHAPE — bins (the pool's folders) and what sits in them. Use it to tidy a project: group the footage, the voice-over, the music and the graphic
- `read_skill`: Returns Frapea's editing documentation for a topic. With no topic: the editing conventions, how the tools fit together and the current feature surface. MOTION t
- `remove_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 the gap too, use ripple
- `remove_silence`: Cuts silent gaps inside a clip: any pause between transcribed words longer than minGapSec becomes a ripple delete (a small margin is kept so speech never clips)
- `remove_words`: Text-based editing: cuts the given transcript words OUT of a clip as ripple deletes (everything after each cut shifts left). wordIndices are positions in get_tr
- `request_ai_models`: Asks the user to enable Frapea's on-device AI analyzers (picture search, speech). Opens a dialog in every Frapea tab and returns an actionId — tell the user IN 
- `retry_analysis`: Runs ONE analysis of ONE asset again — picture indexing or speech transcription — clearing whatever failure was recorded for it. If the asset already has a fini
- `ripple_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 for tightening a cut
- `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 scope matches transcribe
- `search_sounds`: Searches the Freesound library (SFX, ambience, foley) with the user's connected API key. Every item carries what you need to JUDGE the sound without hearing it:
- `search_stock_media`: Searches the Pexels stock library (photos or videos) with the user's connected API key. Returns items with id, dimensions, duration (videos), author, thumbnail 
- `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 convenience — every tool her
- `set_clip_properties`: Adjusts a clip. Only the provided fields change. Mix: volume (0–2, 1 = unity), fadeInFrames / fadeOutFrames (gain or opacity ramps at the edges). Look: opacity 
- `set_keyframes`: Animates one clip property. property: opacity | volume | positionX | positionY | scaleX | scaleY | rotationDeg | pitch | yaw | anchorX | anchorY | cropLeft | cr
- `set_project_settings`: Updates a timeline's fps / width / height (clips keep their timing; content re-fits) and/or renames it. Only provided fields change.
- `split_clips`: Blades clips at a timeline frame. Splits every listed clip (and its linked partner) into two independent clips at atFrame. Frames are in the target timeline's f
- `start_transcription`: Transcribes one asset even if automatic transcription is switched off. Speech transcripts otherwise appear on their own. Returns the project's analysis status; 
- `start_visual_indexing`: Indexes the project's pictures for search_media. Usually not needed: indexing is automatic and this only nudges the queue to re-check now. When the user switche
- `track_faces`: Finds every FACE in a video clip and stores one independent path per person — position, size and head rotation (nod/turn/tilt) per frame. Queued, not immediate:
- `trim_clips`: Adjusts one edge of a clip (linked A/V partners follow). edge: 'start' trims/extends the in-point, 'end' the out-point. deltaFrames > 0 moves the edge right, < 
- `undo`: 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 the user's edits.
- `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 MERGE over the existi
- `verify_timeline`: Renders a timeline the way an export does and reports what fails. inspect_timeline shows a few frames through the preview path, which quietly substitutes a near

Measured by Glimind (https://glimind.com): MCP handshake + tool list only, no tool is ever called. CC BY 4.0.
