Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Frapea

REMOTE · APP.FRAPEA.COM

A video editor in your browser that your AI drives: cuts, captions, multicam, motion titles, export.

Available components

+5 this week 68 Trust /100

Last scanned (12 hours ago)

Scores higher than 57% of remote servers

Reachable. Last reached 23 Oct 2026.

Category Design and Media

Recent critical change

Authorization (23 Oct 2026). See the changelog before you install this server.

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security63
Transport & Reachability100
Schema Quality & AI Usability62
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 18160 tokens (~271/item across 67 items; 67 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management37
  • Stability observed for 11 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 98% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 68 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 23 Oct 26 +2
    • Authorization: unverified → fail ▼ critical
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “add_sfx” rewrote its description, which is the text the model reads security
    • Tool “await_user_action” rewrote its description, which is the text the model reads security
    • Tool “close_project” rewrote its description, which is the text the model reads security
    • Tool “create_motion_composition” rewrote its description, which is the text the model reads security
    • Tool “generate_voiceover” rewrote its description, which is the text the model reads security
    • Tool “get_analysis_status” rewrote its description, which is the text the model reads security
    • Tool “get_problems” rewrote its description, which is the text the model reads security
    • Tool “get_projects” rewrote its description, which is the text the model reads security
    • Tool “inspect_timeline” rewrote its description, which is the text the model reads security
    • Tool “open_project” rewrote its description, which is the text the model reads security
    • Tool “read_skill” rewrote its description, which is the text the model reads security
    • Tool “retry_analysis” rewrote its description, which is the text the model reads security
    • Tool “search_sounds” rewrote its description, which is the text the model reads security
    • Tool “search_stock_media” rewrote its description, which is the text the model reads security
    • Tool “set_active_timeline” rewrote its description, which is the text the model reads security
    • Tool “verify_timeline” rewrote its description, which is the text the model reads security
    • Tool “add_clips” is now declared destructive security
    • Tool “apply_layout” is now declared destructive security
    • Tool “bind_face” is now declared destructive security
    • Tool “close_project” is now declared destructive security
    • Tool “manage_effects” is now declared destructive security
    • Tool “manage_queue” is now declared destructive security
    • Tool “manage_tracks” is now declared destructive security
    • Tool “manage_transitions” is now declared destructive security
    • Tool “merge_faces” is now declared destructive security
    • Tool “move_clips” is now declared destructive security
    • Tool “open_project” is now declared destructive security
    • Tool “organize_media” is now declared destructive security
    • Tool “organize_pool” is now declared destructive security
    • Tool “remove_clips” is now declared destructive security
    • Tool “remove_silence” is now declared destructive security
    • Tool “remove_words” is now declared destructive security
    • Tool “retry_analysis” is now declared destructive security
    • Tool “ripple_delete_ranges” is now declared destructive security
    • Tool “set_clip_properties” is now declared destructive security
    • Tool “set_keyframes” is now declared destructive security
    • Tool “set_project_settings” is now declared destructive security
    • Tool “track_faces” is now declared destructive security
    • Tool “trim_clips” is now declared destructive security
    • Tool “undo” is now declared destructive security
    • Tool “update_motion_composition” is now declared destructive security
    • Destructive annotations: All 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation. functional
    • New tool “add_sample_media” functional
    • New tool “close_timeline” functional
    • New tool “open_timeline” functional
    • Tool “add_clips” changed its title: Add clips cosmetic
    • Tool “add_sfx” changed its title: Add built-in sound effects cosmetic
    • Tool “apply_layout” changed its title: Apply layout cosmetic
    • Tool “await_user_action” changed its title: Wait for the user cosmetic
    • Tool “bind_face” changed its title: Bind clip to a face cosmetic
    • Tool “close_project” changed its title: Close project cosmetic
    • Tool “connect” changed its title: Connect to Frapea cosmetic
    • Tool “connect_media_folder” changed its title: Ask to connect a media folder cosmetic
    • Tool “create_motion_composition” changed its title: Create motion composition cosmetic
    • Tool “create_timeline” changed its title: Create timeline cosmetic
    • Tool “cut_to_angle” changed its title: Cut to camera angle cosmetic
    • Tool “download_sound” changed its title: Download Freesound sound cosmetic
    • Tool “download_stock_media” changed its title: Download Pexels stock cosmetic
    • Tool “duplicate_timeline” changed its title: Duplicate timeline cosmetic
    • Tool “generate_captions” changed its title: Generate captions cosmetic
    • Tool “generate_voiceover” changed its title: Generate voiceover cosmetic
    • Tool “get_analysis_status” changed its title: Get analysis status cosmetic
    • Tool “get_bug_report” changed its title: Prepare bug report cosmetic
    • Tool “get_job_status” changed its title: Get job status cosmetic
    • Tool “get_media” changed its title: List media cosmetic
    • Tool “get_motion_composition” changed its title: Get motion composition cosmetic
    • Tool “get_problems” changed its title: Get problems cosmetic
    • Tool “get_projects” changed its title: List projects cosmetic
    • Tool “get_timeline” changed its title: Get timeline cosmetic
    • Tool “get_transcript” changed its title: Get transcript cosmetic
    • Tool “insert_clips” changed its title: Insert clips cosmetic
    • Tool “inspect_media” changed its title: Inspect source frames cosmetic
    • Tool “inspect_timeline” changed its title: Inspect timeline frames cosmetic
    • Tool “list_face_tracks” changed its title: List face tracks cosmetic
    • Tool “list_motion_compositions” changed its title: List motion compositions cosmetic
    • Tool “list_voiceover_models” changed its title: List voiceover models cosmetic
    • Tool “manage_effects” changed its title: Manage effects cosmetic
    • Tool “manage_queue” changed its title: Manage background queue cosmetic
    • Tool “manage_tracks” changed its title: Manage tracks cosmetic
    • Tool “manage_transitions” changed its title: Manage transitions cosmetic
    • Tool “measure_loudness” changed its title: Measure loudness cosmetic
    • Tool “merge_faces” changed its title: Merge faces cosmetic
    • Tool “move_clips” changed its title: Move clips cosmetic
    • Tool “new_project” changed its title: New project cosmetic
    • Tool “open_project” changed its title: Open project in the editor cosmetic
    • Tool “organize_media” changed its title: Rename or unlink media cosmetic
    • Tool “organize_pool” changed its title: Organize media bins cosmetic
    • Tool “read_skill” changed its title: Read editing guide cosmetic
    • Tool “remove_clips” changed its title: Remove clips cosmetic
    • Tool “remove_silence” changed its title: Remove silences cosmetic
    • Tool “remove_words” changed its title: Remove spoken words cosmetic
    • Tool “request_ai_models” changed its title: Ask to enable AI models cosmetic
    • Tool “retry_analysis” changed its title: Retry analysis cosmetic
    • Tool “ripple_delete_ranges” changed its title: Ripple delete ranges cosmetic
    • Tool “search_media” changed its title: Search project media cosmetic
    • Tool “search_sounds” changed its title: Search Freesound cosmetic
    • Tool “search_stock_media” changed its title: Search Pexels stock cosmetic
    • Tool “set_active_timeline” changed its title: Set active timeline cosmetic
    • Tool “set_clip_properties” changed its title: Set clip properties cosmetic
    • Tool “set_keyframes” changed its title: Set keyframes cosmetic
    • Tool “set_project_settings” changed its title: Set timeline settings cosmetic
    • Tool “split_clips” changed its title: Split clips cosmetic
    • Tool “start_transcription” changed its title: Start transcription cosmetic
    • Tool “start_visual_indexing” changed its title: Start picture indexing cosmetic
    • Tool “track_faces” changed its title: Track faces cosmetic
    • Tool “trim_clips” changed its title: Trim clips cosmetic
    • Tool “undo” changed its title: Undo cosmetic
    • Tool “update_motion_composition” changed its title: Update motion composition cosmetic
    • Tool “verify_timeline” changed its title: Verify timeline cosmetic
  • 22 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 20 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Oct 26 0
    • “generate_voiceover” reworded the description of “modelId” cosmetic

    1 cosmetic change on this day. Switch on “Show cosmetic changes” to see it.

  • 18 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 16 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “get_job_status” rewrote its description, which is the text the model reads security
    • Tool “get_media” rewrote its description, which is the text the model reads security
    • Tool “manage_effects” rewrote its description, which is the text the model reads security
    • New tool “duplicate_timeline” functional
    • New tool “measure_loudness” functional
    • “get_media” added an optional parameter “mediaRef” cosmetic
    • “set_clip_properties” added an optional parameter “motionBlur” cosmetic
  • 13 Oct 26 +1
    • Stability: unverified → 0.03 ▲ functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 23 Oct 2026 · Probed https://app.frapea.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=frapea.com CN=WE1,O=Google Trust Services,C=US 17 Sept 2026 16 Dec 2026 ECDSA 256 ECDSA-SHA256 bfa0b8631af26fed13a78fde1847928e
SANs: frapea.com, app.frapea.com, *.app.frapea.com
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of app.frapea.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
frapea.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=15552000; includeSubDomains

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://app.frapea.com/mcp Verified 200
http (plaintext) http://app.frapea.com/mcp HTTPS enforced 301 https://app.frapea.com/mcp
MCP tools · 67 exposed · ~17,950 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
retry_analysis ~148

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 finished transcript or index, that result is deleted and rebuilt. Use when get_media shows phase 'failed' and the error looks worth another go, or when you want a fresh result for a file that changed meaning. Returns the project's analysis status.

NameTypeReqDescription
kindstringyesindex | transcribe
mediaRefstringyesAsset from get_media.
projectIdstringyesProject id from get_projects.
tokenstringyesThe session token `connect` returned. Pass it on every call — it says which browser to drive.

No output schema declared.

No examples provided.

ripple_delete_ranges ~140

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 or removing a bad take.

NameTypeReqDescription
fromFramenumberyesRange start (inclusive).
projectIdstringyesProject id from get_projects.
timelineIdstringyesTarget timeline.
toFramenumberyesRange end (exclusive).
tokenstringyesThe session token `connect` returned. Pass it on every call — it says which browser to drive.
trackIdstringyesTrack id from get_timeline.

No output schema declared.

No examples provided.

search_media ~148

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 transcribed speech (exact words, ranked first, with a snippet). Hits: {mediaRef, timeSec (best moment), fromSec, toSec, score, scope}. Requires the user to have downloaded the picture analyzer — otherwise PERMISSION_REQUIRED tells you what to relay.

NameTypeReqDescription
projectIdstringyesProject id from get_projects.
querystringyesWhat to look for — plain language.
tokenstringyesThe session token `connect` returned. Pass it on every call — it says which browser to drive.

No output schema declared.

No examples provided.

search_sounds ~369

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: the uploader's full description, tags, duration, community rating and download count, format/samplerate, and — when analyzed — AudioCommons descriptors (acAnalysis: ac_loudness LUFS, ac_dynamic_range, ac_tempo, ac_tonality, ac_single_event, plus 0-100 timbre scales like ac_brightness, ac_warmth, ac_hardness, ac_depth, ac_roughness, ac_boominess, ac_sharpness, ac_reverb). A `downloaded` flag says the sound is already in the pool. Licenses: CC0 needs nothing, BY needs attribution, BY-NC excludes commercial use — prefer cc0/by via the license arg when the project may be commercial. If no key is connected it errors with PERMISSION_REQUIRED, whose message says where the user connects one (Library → Generators → Sound Library).

NameTypeReqDescription
licensestring–Optional: cc0 | by | by-nc
maxDurationSecondsnumber–Optional upper duration bound.
minDurationSecondsnumber–Optional lower duration bound.
pagenumber–1-based page, 40 items per page.
projectIdstringyesProject id from get_projects.
querystringyesSearch phrase (e.g. 'door slam', 'jungle ambience').
sortstring–Optional: score (default) | rating_desc | downloads_desc | created_desc
tokenstringyesThe session token `connect` returned. Pass it on every call — it says which browser to drive.

No output schema declared.

No examples provided.

search_stock_media ~289

Searches the Pexels stock library (photos or videos) with the user's connected API key. Returns items with id, dimensions, duration (videos), author, thumbnail url, available video qualities, and a `downloaded` flag telling whether the asset is already in the project's media pool. If no key is connected it errors with PERMISSION_REQUIRED, whose message says where the user connects one (Library → Generators → Stock Library). Results are subject to the Pexels license; keep the author attribution when asked about provenance. Results match the uploader's keywords, not the picture — a search for 'earth from space' also returns the Moon and artists' renders; `thumbnail` shows the actual subject. See read_skill {topic:'verify'}.

NameTypeReqDescription
colorstring–Optional, photos only: a Pexels color name.
kindstringyesphotos | videos
orientationstring–Optional: landscape | portrait | square
pagenumber–1-based page, 40 items per page.
projectIdstringyesProject id from get_projects.
querystring–Search phrase; empty = curated/popular feed.
sizestring–Optional: large | medium | small
tokenstringyesThe session token `connect` returned. Pass it on every call — it says which browser to drive.

No output schema declared.

No examples provided.

set_active_timeline ~103

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 here takes an explicit timelineId regardless.

NameTypeReqDescription
projectIdstringyesProject id from get_projects.
timelineIdstringyesTimeline to activate.
tokenstringyesThe session token `connect` returned. Pass it on every call — it says which browser to drive.

No output schema declared.

No examples provided.

set_clip_properties ~1,709

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 (0–1), blend (normal | multiply | screen | overlay | darken | lighten | color-dodge | color-burn | hard-light | soft-light | difference | exclusion | add), transform, crop and speed. transform.fit picks how the picture meets the frame before scaling: contain (letterbox, default) | cover (fill + crop overflow) | fill (stretch, ignores aspect). Identity = contain fit; position is offset from centre in timeline pixels (y down), scale multiplies the fitted size, rotationDeg is clockwise about the anchor (a fraction of the cropped picture, 0.5/0.5 = centre). Crop takes fractions off each edge of the source. Retiming: `speed` (constant rate/direction) and `speedKeyframes` (source-anchored rate curve; reflows length). Shape masks: `masks` (full-list replace). `disabled` parks a clip (it stays but neither renders nor sounds — DaVinci's D). `text` restyles text clips (mediaRef 'text:'). `motion` customizes MOTION clips (mediaRef 'motion:<id>') per clip.

NameTypeReqDescription
blendstring–Optional blend mode (see description).
bypassobject–Optional section switches, true = section OFF (its values are kept but not applied) — the inspector's per-section toggles.
clipIdstringyesClip to modify.
cropobject–Optional partial crop, fractions 0–1 of the SOURCE off each edge (the inspector shows source pixels). Crop is a window: it cuts pixels away without moving or re-fitting the picture; edges may meet (t…
cropRetainboolean–Optional. True = Resolve's 'Retain Image Position': the crop window stays fixed in the frame while transforms move the picture underneath it.
cropSoftnessnumber–Optional crop-edge feather, fraction of the source width 0–0.5 (the inspector shows source pixels). Keyframable as 'cropSoftness'.
denoiseobject–AI voice denoise (dry/wet). Setting it (or enabling the section) queues the cached background render for the clip's source file.
disabledboolean–Optional. True disables the clip (and its A/V link partners): it stays on the timeline but neither renders nor sounds. False re-enables. The multicam angle switch is built on this.
dynamicZoomobject–Optional Ken Burns move (Resolve's Dynamic Zoom): animates the framing from `start` to `end` over the clip's WHOLE duration (retimes when the clip is trimmed). Rects: centre x/y as picture fractions…
fadeInFramesnumber–Optional fade-in length in frames.
fadeOutFramesnumber–Optional fade-out length in frames.
lensDistortionnumber–Optional Lens Correction Distortion, -1–1. Positive straightens wide-angle barrel distortion, negative adds it. 0 = none.
masksarray–Optional shape masks, FULL-LIST replace (empty array removes all). Masks UNION (Resolve's additive Power Windows); `invert` flips one mask's coverage. Geometry in fractions of the SOURCE picture, cen…
motionobject–Optional MOTION clip customization (clips with mediaRef 'motion:<id>'). props: partial patch over the composition's schema-declared props ({key: value}; a key set to null resets it to the composition…
motionBlurobject–Optional SHUTTER MOTION BLUR from the clip's own movement: each frame is the average of `samples` sub-frame renders spread over the open shutter, each at the position/scale/rotation (keyframes, dynam…
opacitynumber–Optional static opacity 0–1.
projectIdstringyesProject id from get_projects.
solidColorstring–Optional, solid-colour matte clips only: recolour the matte (#rrggbb). Mattes are created by add_clips/insert_clips with mediaRef 'solid:#rrggbb'.
speedobject–Optional retiming (Resolve's Speed Change). rate 1 = 100 % (0.01–50); direction forward | reverse | freeze; freezeFrame = held source frame (offset from trim-in) while frozen; pitchCorrection keeps t…
speedKeyframesarray–Optional source-anchored speed keyframes (forward-direction clips only): [{atSourceFrame, rate}], rate 1 = 100 %. Rate is CONSTANT between points (held outside). Present, it replaces `speed.rate` AND…
speedRippleboolean–Ripple Timeline for this speed edit (see `speed`).
stabilizationobject–Optional stabilization knobs (Resolve's Stabilization). The expensive motion tracking is a per-media analysis — run it with the stabilizer; these values post-process its cached path instantly. mode p…
textobject–Optional TEXT clip restyle (clips with mediaRef 'text:'; create them with add_clips). Partial patch: content ( breaks lines), fontFamily (Inter | DM Sans | Space Grotesk | Bebas Neue | Playfair Disp…
timelineIdstringyesTimeline containing the clip.
tokenstringyesThe session token `connect` returned. Pass it on every call — it says which browser to drive.
transformobject–Optional partial transform; provided keys replace, others stay.
volumenumber–Optional new volume (0–2).

No output schema declared.

No examples provided.

set_keyframes ~345

Animates one clip property. property: opacity | volume | positionX | positionY | scaleX | scaleY | rotationDeg | pitch | yaw | anchorX | anchorY | cropLeft | cropTop | cropRight | cropBottom | cropSoftness. Keyframes are stamped in SOURCE frames (frames into the media, i.e. timelineFrame - startFrame + trimStartFrame), so they survive moves and trims. action 'set' (default) upserts the given keyframes; 'remove' deletes at the given frames; 'clear' removes the property's animation (or ALL animation when property is omitted). easing is how the value LEAVES a keyframe: linear | hold | smooth.

NameTypeReqDescription
actionstring–set | remove | clear (default set).
atSourceFramesarray–For 'remove': source frames whose keyframes to delete.
clipIdstringyesClip to animate.
effectIdstring–Animate an EFFECT param instead of a clip property: the effect instance id (from manage_effects add / get_timeline). Use with `param`; `property` is then ignored.
keyframesarray–For 'set': keyframes to add or replace.
paramstring–The effect param key to animate (e.g. 'exposure').
projectIdstringyesProject id from get_projects.
propertystring–Animatable property (see description).
timelineIdstringyesTimeline containing the clip.
tokenstringyesThe session token `connect` returned. Pass it on every call — it says which browser to drive.

No output schema declared.

No examples provided.

set_project_settings ~138

Updates a timeline's fps / width / height (clips keep their timing; content re-fits) and/or renames it. Only provided fields change.

NameTypeReqDescription
fpsnumber–Optional new frames per second.
heightnumber–Optional new height in px.
namestring–Optional new display name.
projectIdstringyesProject id from get_projects.
timelineIdstringyesTimeline to update.
tokenstringyesThe session token `connect` returned. Pass it on every call — it says which browser to drive.
widthnumber–Optional new width in px.

No output schema declared.

No examples provided.

split_clips ~139

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 fps. Use with get_timeline to find clip ids first.

NameTypeReqDescription
atFramenumberyesTimeline frame to cut at (must lie inside each clip).
clipIdsarrayyesClip ids to split.
projectIdstringyesProject id from get_projects.
timelineIdstringyesTimeline containing the clips.
tokenstringyesThe session token `connect` returned. Pass it on every call — it says which browser to drive.

No output schema declared.

No examples provided.

start_transcription ~98

Transcribes one asset even if automatic transcription is switched off. Speech transcripts otherwise appear on their own. Returns the project's analysis status; poll get_analysis_status, then read get_transcript.

NameTypeReqDescription
mediaRefstringyesAsset from get_media.
projectIdstringyesProject id from get_projects.
tokenstringyesThe session token `connect` returned. Pass it on every call — it says which browser to drive.

No output schema declared.

No examples provided.

start_visual_indexing ~106

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 switched automatic indexing off, this asks for every video and image to be indexed. Returns the same payload as get_analysis_status.

NameTypeReqDescription
projectIdstringyesProject id from get_projects.
tokenstringyesThe session token `connect` returned. Pass it on every call — it says which browser to drive.

No output schema declared.

No examples provided.

track_faces ~261

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: poll list_face_tracks until state is 'ready'. Re-running on the same clip REPLACES its previous run and keeps the same trackId, so clips already bound stay bound. A person who leaves the shot and returns much later becomes a SECOND face on purpose — use merge_faces if they are the same person.

NameTypeReqDescription
clipIdstringyesThe video clip to scan, from get_timeline.
holdSecondsnumber–How long a vanished face is still 'the same face' when it comes back (default 1).
namestring–Display name for the run.
projectIdstringyesProject id from get_projects.
scoreThresholdnumber–Detection confidence floor, 0.3–0.95 (default 0.6).
tokenstringyesThe session token `connect` returned. Pass it on every call — it says which browser to drive.
travelFacesnumber–How far it may reappear from where it vanished, in face widths (default 0.8).

No output schema declared.

No examples provided.

trim_clips ~172

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, < 0 left — e.g. edge 'end', delta -12 shortens the clip by 12 frames. Extending is limited by the source material.

NameTypeReqDescription
clipIdstringyesClip to trim.
deltaFramesnumberyesSigned frame delta for that edge.
edgestringyesstart | end
projectIdstringyesProject id from get_projects.
timelineIdstringyesTimeline containing the clip.
tokenstringyesThe session token `connect` returned. Pass it on every call — it says which browser to drive.

No output schema declared.

No examples provided.

undo ~81

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.

NameTypeReqDescription
projectIdstringyesProject id from get_projects.
tokenstringyesThe session token `connect` returned. Pass it on every call — it says which browser to drive.

No output schema declared.

No examples provided.

update_motion_composition ~266

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 existing set. Every clip playing the composition re-renders. preview:true returns one large frame of the result with the reply.

NameTypeReqDescription
compositionIdstringyesFrom create/list_motion_compositions.
durationInFramesnumber––
filesobject–File name → TSX source (merged).
fpsnumber––
heightnumber––
namestring––
previewboolean–Return one large frame (≤1560 px) with the reply. Media is not loaded in a preview: media slots draw empty and the reply says how many.
previewFramenumber–Frame to preview (default 0).
previewPropsobject–Merged over the schema defaults for the preview picture only, e.g. {partsBoard:true}. Nothing saved changes.
projectIdstringyesProject id from get_projects.
schemaobject––
tokenstringyesThe session token `connect` returned. Pass it on every call — it says which browser to drive.
widthnumber––

No output schema declared.

No examples provided.

verify_timeline ~281

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 nearby picture where a frame cannot be rendered; this renders every motion segment the timeline reads (through every nested timeline) exactly, then composites every frame with every layer (footage decoded), and fails where an export would. Returns {jobId}; poll get_job_status every ~5 s. When done, `result` is {verdict: ok | problems | incomplete, checked, notChecked, segments, chunks, problems: [...same shape as get_problems, with `related` warnings that often name the cause...], stale?, note}. `incomplete` is NOT a pass: something could not be checked. `stale: true` means the timeline was edited while it ran — verify again. Sound is not checked. Needs the project open in the editor tab you are paired with (error PROJECT_NOT_OPEN otherwise).

NameTypeReqDescription
cancelboolean–Stop the verification of this timeline that is running.
projectIdstringyesProject id from get_projects.
timelineIdstringyesTimeline to verify (nested timelines inside it are verified too).
tokenstringyesThe session token `connect` returned. Pass it on every call — it says which browser to drive.

No output schema declared.

No examples provided.

Install

How do I install the Frapea MCP server?

Frapea is a hosted endpoint at https://app.frapea.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · app.frapea.com

# add to Claude Code
claude mcp add --transport http com-frapea-editor 'https://app.frapea.com/mcp'
Common questions

What is the Frapea MCP server?

Frapea is an MCP server listed in the public MCP registry as com.frapea/editor. A video editor in your browser that your AI drives: cuts, captions, multicam, motion titles, export. This page covers its hosted endpoint (https://app.frapea.com/mcp).

Is the Frapea MCP server safe to use?

Frapea scores 68 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Frapea MCP server expose?

Frapea exposes 67 tools: connect, get_projects, get_timeline, get_media, get_transcript, and 62 more. Their descriptions and schemas cost roughly 17,950 tokens of context every time the server is loaded.

Does the Frapea MCP server require authentication?

No. We connected to Frapea without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the Frapea MCP server still maintained?

Frapea is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.