59 tools, and one of them looks at the result.

Frapea is a full video editor with an MCP server in front of it. Point any MCP client at the endpoint below, pair it with the code in the editor header, and your agent has the whole timeline: cutting, captions, multicam, faces, stock footage, narration and animated titles it writes itself.

Endpoint
https://app.frapea.com/mcp
Transport
Streamable HTTP — JSON over POST
Auth
An 8-character code from the editor. No API key, no sign-up.
Claude Code
claude mcp add -s user --transport http frapea https://app.frapea.com/mcp

A call that changes the cut

Every pause over 0.6 s inside one clip becomes a ripple delete. Fourteen of them, and the whole thing is a single undo step.

→ remove_silence{  "projectId":  "cebu-teaser",  "timelineId": "tl_main",  "clipId":     "clip_04",  "minGapSec":  0.6} ← { "ok": true, "cuts": 14 }

A call that checks it

The agent composites its own timeline and reads the result back. Frame 512 returns nothing visible and a black fingerprint — so it finds the hole in the edit itself, rather than you finding it on export.

→ inspect_timeline{  "projectId":  "cebu-teaser",  "timelineId": "tl_main",  "frames":     [0, 96, 240, 388, 512],  "pixels":     false} ← {  "cells": [    { "label": "f0",      "visibleClipIds": ["clip_title", "clip_01"],      "fingerprint": { "nonBlankRatio": 0.98 } },    { "label": "f96",      "visibleClipIds": ["clip_01"],      "fingerprint": { "nonBlankRatio": 0.99 } },    { "label": "f240",      "visibleClipIds": ["clip_02", "clip_04"],      "fingerprint": { "nonBlankRatio": 0.97 } },    { "label": "f388",      "visibleClipIds": ["clip_04"],      "fingerprint": { "nonBlankRatio": 0.99 } },    { "label": "f512",      "visibleClipIds": [],      "fingerprint": { "nonBlankRatio": 0.00 } }  ],  "note": "Fingerprints only (pixels:false).           nonBlankRatio near 0 means an empty           or black frame."}

01

Can it actually cut, or only suggest?

It cuts. Everything the timeline does is a call an agent can make — blade, ripple, trim, insert, move, retime — and the result is a real edit in a real project, not a plan for one. Eighteen of the fifty-nine tools are here, which is roughly the shape of the job itself.
  • add_clips

    Puts footage on the timeline.

  • insert_clips

    Drops something in and pushes the rest right, splitting whatever was under the cut.

  • split_clips

    Blades at a frame.

  • trim_clips

    Pulls one edge. Linked audio follows on its own.

  • move_clips

    Moves clips; linked partners come along.

  • remove_clips

    Lifts a clip out and leaves the gap.

  • ripple_delete_ranges

    Takes a range out and closes the hole behind it.

  • remove_silence

    Cuts the dead air between spoken words — the pass that turns an hour of talking head into forty minutes.

  • remove_words

    Deletes words from the transcript and the picture goes with them. Text-based editing, on any clip with speech.

  • cut_to_angle

    Multicam. Switches to another angle at the playhead.

  • set_clip_properties

    Position, scale, crop, opacity, blend, speed, volume.

  • set_keyframes

    Animates any of those over time.

  • manage_transitions

    Transitions on cuts, or a single-sided fade on a loose edge.

  • manage_effects

    The effect stack on a clip, in order, each one switchable.

  • manage_tracks

    Adds, removes, locks and reorders tracks.

  • apply_layout

    Splits the frame — side by side, picture in picture, a 2×2 grid.

  • generate_captions

    Word-timed captions from the transcript, styled and animated.

  • create_timeline

    A new timeline in the same project.

02

Can it see what it made?

This is the part people do not expect. inspect_timeline renders real frames of the cut and hands them back, so the agent looks at its own work before it claims to be finished — a caption that overflows, a title that lands on the wrong beat, a shot that was black. None of that is knowable from reading the project file, which is why so much automated editing looks automated.
  • inspect_timeline

    Renders frames of the cut and looks at them.

  • inspect_media

    Looks inside a source clip before using it.

  • get_timeline

    Reads the structure back — tracks, clips, timing.

  • get_media

    The library, with scene samples for each asset.

  • get_transcript

    Word-level speech, with timings.

  • search_media

    “The drone shot over the reef.” Semantic search across everything in the project.

  • get_analysis_status

    How far the background analysis has got, and what failed.

  • manage_queue

    Control of that background work.

  • get_projects

    What projects exist on this machine.

03

Where does it get what it doesn't have?

It goes and finds it. Stock footage and photographs, sound effects and ambience, and narration in a voice you pick — sourced, downloaded into the project and cut in, without you opening another tab. Voices are generated on your own machine by default, with no key at all. Stock footage and sounds use your own free Pexels and Freesound keys — the editor asks once and links you straight to them, and a paid premium voice provider is there if you want it.
  • search_stock_media

    Searches Pexels for footage and stills.

  • download_stock_media

    Pulls one into the project.

  • search_sounds

    Searches Freesound for effects, ambience and foley.

  • download_sound

    Brings one in.

  • add_sfx

    The built-in effects pack — synthesised, licence-free, nothing to download and no key.

  • generate_voiceover

    Narration from a script, in a voice you choose.

  • list_voiceover_models

    Which voices are available to it.

  • organize_media

    Renames, moves and relinks files in the pool.

  • organize_pool

    Bins and what sits in them.

  • connect_media_folder

    Asks you to attach a folder of footage.

04

Who makes the titles?

The agent writes them, as code. A motion composition is an animated graphic — a title, an end card, an infographic — authored as React and dropped into the media pool like any other clip, then dragged onto the timeline. It is the same engine as Motion, living inside the editor: the graphic and the cut share one timeline instead of one being rendered somewhere else and imported.
  • create_motion_composition

    Writes a new animated graphic from scratch.

  • update_motion_composition

    Edits one that exists.

  • get_motion_composition

    Reads its source back.

  • list_motion_compositions

    What is in the project, and which properties you can tweak by hand.

05

What am I doing while it works?

Watching, if you want to. open_project points your tab at the project so the edit happens in front of you, clip by clip. Nothing is hidden and nothing is queued somewhere else — and every step the agent takes is one undo away.
  • open_project

    Opens the project in your tab so you can watch.

  • new_project

    Starts one.

  • close_project

    Hands the tab back.

  • set_active_timeline

    Chooses which timeline you are looking at.

  • set_project_settings

    Frame rate, resolution, name.

  • undo

    One step back, as many times as you like.

  • await_user_action

    Waits for you when it needs a decision, instead of guessing.

  • export_project

    Renders the timeline to an MP4 in the project's exports folder. The full codec range — WebM, H.265, VP9, AV1 — is on the export panel, not on this call.

06

Can it follow a person?

One pass over the footage finds every face and stores a separate path for each — position, size and which way the head is turned, frame by frame. Somebody who walks out of shot and comes back is two sightings until you say they are one person, which is a single call. Then a label, a blur or a mask can be stuck to their head and it stays there.
  • track_faces

    Finds every face in a clip and follows each one.

  • list_face_tracks

    Who it found, for how long, and where it lost them.

  • merge_faces

    Two sightings, one person.

  • bind_face

    Sticks a clip to a face so it follows the head.

07

How does it know what good looks like?

It reads first. read_skill serves fourteen guides — how to cut at all, then how to cut the thing you asked for, how narration is built, how to prove the cut works before exporting, and the craft of motion. It also carries the creative mandate: how far to run with a one-line brief before coming back to ask. An agent that only knows the API produces something that renders correctly and looks made by a machine, and that difference is most of what this layer is for.
  • read_skill

    Fourteen guides: craft, formats, voiceover, verification, and the whole Motion set.

  • request_ai_models

    Asks you to switch on the analysers it needs.

  • start_transcription

    Transcribes a clip on demand.

  • start_visual_indexing

    Indexes the picture for search. Rarely needed — it happens by itself.

  • retry_analysis

    Runs one failed analysis again.

  • get_job_status

    Progress on anything long-running.

Point your agent at it.

Setup is one command or one config file, and the editor is free while you try it.