MCP server that recreates the style of a reference reel with your footage and script, using Remotion
The server provides 28 tools with detailed, action-verb names and substantive descriptions (averaging ~150 chars per tool), placing it solidly above the median community server. All tools have descriptions ≥50 chars. Input schemas are visible and properly typed for all 28 tools. However, critical gaps reduce the score: (1) Output schemas are entirely absent, no tool documents what fields/structure it returns, forcing LLMs to guess downstream data shapes and breaking tool chaining. (2) Error handling is minimal, no tool specifies recovery guidance, retryability classification, or actionable error messages. (3) Parameter descriptions, while present, often lack specificity: they omit constraints (min/max for numeric fields, format/regex patterns, valid enum values). (4) No tool declares idempotence, destructiveness, or read-only status, critical for agent safety. (5) Tool composition shows some awareness (e.g., draft_recipe consumes analyze_reference + index_footage outputs), but many tools lack cross-referencing (e.g., render_reel accepts a project path, but no tool documents what a valid project path structure is). These gaps are typical of well-intentioned but incompletely polished MCP servers, the foundation is solid, but production readiness requires output schema documentation and error guidance.
Probe a creator's channel to understand their style, audience, and upload cadence — so a reel you're building matches their brand and not just their reference. Extracts thumbnails, titles, transcript, and metadata from recent uploads.
Probe a reference video: duration, resolution, fps, scene cuts, average shot length. Extracts start/mid/end frames per shot so you can look at the style AND spot in-shot motion (punch-in zooms, pans) by comparing a shot's frames. Returns JSON with paths to the extracted frames — open them.
Apply a brand's colors, fonts, and logo to a recipe so the output matches the creator's identity. Modifies captions, backgrounds, and overlays to use brand colors; swaps fonts; and places the logo in standard positions.
Watch a reel's motion, pacing, and structure and offer suggestions. Takes JSON or a project path + optional segment indices to focus on. Returns a numbered list of observations, each with a segment reference and a suggestion — some structural (this segment is too long), some visual (this shot is shaky), some editorial (the pacing here matches the music poorly).
Turn a reference reel and footage analysis into a first-pass recipe. The recipe is complete: pick which shots go where, what captions say, music timing, and all the design variables the reference uses. It lands in a JSON file ready to hand to scaffold_reel.
No output schemas documented for any tool. Tools return JSON/paths/metadata, but LLMs have no specification of field names, types, or structure. This breaks downstream tool chaining and forces LLMs to hallucinate field names.
No error handling specifications. Tools do not document what errors are possible, whether they are retryable, or what recovery action the agent should take. E.g., transcribe_reference requires a local whisper CLI, failure mode (missing CLI, model download failure) and recovery guidance are absent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Cut a talking-head video to the words of a transcript, so each sentence or phrase lands in its own shot. Useful when you have one long take and a script: hand over the video + the words, and get back a tighter intercut sequence that matches your timing.
Export captions as SRT or WebVTT, ready to attach to the rendered video. Segments with empty captions become blank lines in the timing structure, so the word-level data stays aligned even when some segments go silent.
When a hook_variants recipe set has been rendered segment by segment, assemble the per-variant timings and bake out a full recipe for each one, with the shared body shots already pinned to their segment numbers. Those are the final reels — they have everything, and nothing remains to render.
Extract the audio track from a video into an .m4a file. Returns the path to use in the recipe's music.file.
Turn a script into a spoken voiceover audio track using the built-in macOS voice (no API key). Use the returned file as the recipe's audio track; transcribe it for karaoke word timings. macOS only.
Retrieve a brand preset by name.
Write one recipe per alternative opening, changing NOTHING else. The first second and a half is what creators actually A/B, and rebuilding a whole reel per hook both wastes a render on byte-identical frames and lets the variants differ in more than the thing under test. Each variant reports which segments changed — pass those to render_reel's `segments` and a variant costs one segment instead of a reel. Karaoke word timings on a replaced hook are dropped, since they index the words that were there.
Rank the shots in a footage dump, and pick which one goes in which segment. Split every clip into shots and measure each one, so the agent picks from a ranked library instead of being handed the right clip in advance. Filmstrips land in `.mimic-mcp/footage/` under the work dir.
List all saved brand kits.
List all saved brand presets.
Swap the captions for a translation you supply and write a renderable recipe plus .srt/.vtt sidecars for that language. It owns the parts that go silently wrong if you just swap the strings: `wordTimings` are offsets into a specific sentence, so a translated line would highlight the WRONG words — they are dropped unless you supply new ones; `emphasisWords` indices that now point past the caption are cleared; and because languages are not the same length, the translated reel is re-scored for reading speed, since a line that read fine in English can flash past in German at the same segment timing.
Open a reel project in Remotion Studio for interactive editing, live preview, and timeline scrubbing. Starts the studio server and returns the localhost URL.
Pull a single frame from a rendered reel to use as the video's thumbnail. Pass the video path and a timecode, or ask for suggestions based on the recipe.
Render a reel to a video file, or just the segments you specify. Invokes remotion render under the hood. If you ask for specific segments, only those render — useful for testing a hook or re-rendering a changed section before committing the full video.
Pull a single frame from a reel project at a given timecode.
Ingest a finished or in-progress render and describe what you see: pacing, shot variety, whether the captions are readable, visual glitches, and adherence to the reference style. Use this to decide whether the reel needs another pass before publishing.
Save a brand kit for reuse.
Save a brand preset for reuse.
Turn a recipe into a renderable Remotion project. Writes a complete reel/ directory with all the scenes, components, and config — plus a modified recipe.json pinned to the scaffold's capabilities. The reel directory is ready to hand to render_reel.
Look at a clip and propose a crop and pan that keeps the subject centered and in frame, accounting for safe areas and avoiding overly tight crops that show noise. Run this on footage you're considering for a segment to get backgroundPosition in a format ready to paste into the recipe.
Follow a subject (person, object) through a clip and report its position frame by frame — for custom framing when backgroundPosition can't see the right subject, or to power motion graphics that track the action.
Transcribe the reference's spoken audio with word-level timings, so you can see its script structure (hook → build → payoff), not just its visuals. Each segment's wordTimings are segment-relative and drop straight into a karaoke caption. Requires a local whisper CLI (e.g. `uv tool install whisper-ctranslate2`).
Cut the silent gaps out of talking-head footage, concatenating the spoken parts into a tighter jump-cut clip. Run this on raw footage first, then use the returned path as background.video. Returns how much was removed.
Numeric parameters lack min/max constraints in descriptions. threshold_db, min_silence_seconds, concurrency, and port are defined as numeric types but omit bounds, ranges, or valid intervals. LLMs will pass arbitrary values (e.g., concurrency=999999, port=99999).
Parameters with predefined options lack enum constraints. 'voice' in generate_voiceover lists example values (Samantha, Daniel) but should be an enum. 'model' in transcribe_reference (tiny/base/small/medium) and 'format' in export_captions (srt/vtt) are specified as strings when they should use enum to prevent invalid values.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. This is critical for agent safety: render_reel, trim_silence, generate_voiceover, edit_by_transcript all modify state (write videos, audio, files), but the LLM has no explicit signal that these are destructive or non-idempotent. Agents cannot reason about side effects or retry safety.
Tool descriptions mention file paths and directory structures but do not validate or constrain them. E.g., scaffold_reel expects a recipe.json input but does not specify the exact schema of that JSON or valid directory layouts. draft_recipe outputs a JSON file but does not document its structure. This breaks composability.
list_presets and list_brand_kits provide no pagination or limit parameters. If there are hundreds of presets, the response could balloon the context window. No indication of returned item count or truncation.
Parameter descriptions inconsistently document optional fields. Some use 'optional: true', others omit the keyword or use 'Omit for the default.' Standardization would improve clarity.
Tools dealing with external prerequisites (whisper CLI, macOS voice system, Remotion installation) do not validate or communicate dependencies upfront. transcribe_reference requires `uv tool install whisper-ctranslate2` but does not check if it exists or provide a clear error if missing.