Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "generate_voiceover"
⟨57 unchanged words⟩ only: TTS model id from list_voiceover_models (default'eleven_multilingual_v2';'eleven_v3' — expressive, reads [calm]-style audio tags as directions; use 'eleven_multilingual_v2' only when the user asks for v2; turbo/flash cost half). Check the model's supportsAudioTags ⟨169 unchanged words⟩
Certificate recorded, valid to 2026-12-16
Authorization not required
Added "duplicate_timeline" and "measure_loudness"; changed the definition of "get_job_status", "get_media", "manage_effects" and 1 more (62 tools before, 64 now)
⟨5 unchanged words⟩ started by a job-returning tool (generate_voiceover, verify_timeline, measure_loudness): {state:queued|running|done|failedqueued|running|done|failed|cancelled, progress: 0-1, detail, ...result fields such as mediaRef when done; verify_timeline, measure_loudness puts its report in `result`}. Poll every ⟨36 unchanged words⟩
⟨86 unchanged words⟩ , or leave it. If 'disabled', call request_ai_models.
Unknown → Live
First tool surface recorded: 62 tools (server version 0.2.0)
https://app.frapea.com/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 7 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
{"properties":{"mediaRef":{"description":"Optional: return only this asset, as {asset}, with its onset times. Omit to list every asset (no onset times).","type":"string"},"projectId":{"description":"Project id from get_projects. ⟨28 unchanged words⟩
⟨99 unchanged words⟩ 'curves' (tone curves), 'hueCurves' (hue-vs-hue/sat/lum). Also 'motionBlur' — NOT the shutter blur: a DIRECTIONAL blur filter (angle 0–360, distance 0–100) that smears every frame the same way whether the clip moves or not (a streak look, a speed effect on footage). For blur that follows the clip's own keyframed movement, use set_clip_properties motionBlur instead.
⟨538 unchanged words⟩ "object"}},"type":"object"},"motionBlur":{"description":"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, dynamic zoom, tracking) the clip has at that instant — so a fast move streaks along its path and a still clip stays sharp (and costs nothing extra). {enabled: true} (or just true) turns it on — 6 samples at 180°, the film look, unless the clip already has its own; {enabled: false} (or false) turns it off; a partial setting changes only what it names. Costs one extra draw per sample on frames where the clip moves. Movement INSIDE the picture (footage, a motion composition's own animation) is not blurred — only the clip's transform. Not to be confused with the 'motionBlur' EFFECT (manage_effects): that is a fixed directional blur filter, the same on every frame; use this setting for blur that comes from the clip actually moving.","properties":{"enabled":{"type":"boolean"},"samples":{"description":"Sub-frame samples, integer 2–8 (default 6).","type":"number"},"shutterAngle":{"description":"Degrees, >0–360 (default 180; 360 = open the whole frame).","type":"number"}},"type":"object"},"opacity":{"description":"Optional static opacity 0–1. ⟨697 unchanged words⟩
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, its tracks, clips and transitions; links between clips (A/V pairs, caption groups) are kept, inside the copy. Nested timelines are copied too by default (includeNested), so editing a nest in the original does not change the backup; motion compositions and media are referenced, not copied. The original is not touched and stays the active timeline; one undo removes the copy. Returns {timelineId, name, clips, nestedCopies?}.
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 timelines, fades, volume keyframes, clip audio effects, ducking, mute/solo) and measures it with EBU R128 / ITU-R BS.1770 — the same meter export loudness normalization uses. The mix is measured AS MIXED: an export's loudnessTargetLufs would then shift all of it by one gain. Returns {jobId}; poll get_job_status every few seconds. When done, `result` is {durationSec, integratedLufs, truePeakDbtp (4× oversampled, BS.1770-4), samplePeakDbfs, loud…