mcp.film

mcp.film / Editing & Post / LeClap

LeClap

Communityby Community (heristop)freeverified Oct 16, 2026

Deterministic video from one JSON template — same input, same frames, rendered locally.

What it does

LeClap exposes its ffmpeg-video-composer engine over MCP: the agent asks for the template JSON Schema, authors a descriptor of sections, filters, music and text overlays, validates it for free, then renders it to an MP4 on the machine. Nothing is sampled and nothing is uploaded, so the same template produces the same frames on every run — the opposite trade to a generative model, and the right one for titles, lower thirds, and any card you will need to re-render at 3am with one word changed. An opt-in bridge renders compositions from your own Remotion project into a clip the deterministic engine then composites.

Connect

Claude Code
claude mcp add leclap -e LECLAP_MCP_MEDIA_DIR=/abs/path/to/media -e LECLAP_MCP_OUTPUT_DIR=/abs/path/to/renders -- npx -y @leclap/mcp
Claude Desktop (claude_desktop_config.json)
{
  "mcpServers": {
    "leclap": {
      "command": "npx",
      "args": [
        "-y",
        "@leclap/mcp"
      ]
    }
  }
}
Cursor (.cursor/mcp.json)
{
  "mcpServers": {
    "leclap": {
      "command": "npx",
      "args": [
        "-y",
        "@leclap/mcp"
      ]
    }
  }
}
Auth: none

Sample tools

get_samplesget_template_schemavalidate_templateedit_templatecompose_videorender_framesprobe_mediatranscribe_mediarender_remotion_clip

Field notes

First-party to the LeClap project — the MCP package lives in its monorepo — but that project is one maintainer's open-source work, not a company, so it is listed as community. MIT, 34 stars on the monorepo, npm @leclap/mcp 0.6.0 (12 Oct 2026), commits landing daily as of 14 Oct. Moving fast enough to break you: 0.5.0 folded `patch_template` into `edit_template` and `list_samples`/`get_sample` into `get_samples`, and dropped `ping`, so tool lists cached from September call dead names. The official MCP registry entry (dev.leclap/video) still advertises 0.3.4 — trust npm, not the registry. The README now documents 14 always-on tools, among them `render_frames` for still checks, a `validate_template` that flags text fit, safe-zone and contrast problems without rendering, local whisper.cpp captions via `transcribe_media` (models are not auto-downloaded — run `leclap transcribe --download-model` once or set LECLAP_WHISPER_DOWNLOAD=1), and a 25-sample starter set. npm still declares Node >=24.11.0, an aggressive floor that bounces any Node 22 LTS setup. The npx path falls back to `ffmpeg-static`, which has no ffprobe — transitions, music, whole-video overlays and `probe_media` need one — so put a system ffmpeg on PATH. The media and output dirs now default to ~/.leclap/media and ~/.leclap/renders; set LECLAP_MCP_MEDIA_DIR deliberately anyway, since local inputs must resolve inside it and pointing it at your home directory hands every tool call the run of it. `render_remotion_clip` runs your project's own JavaScript under headless Chromium and is off unless you pass --allow-remotion with a trusted entry; Remotion's own licence applies. `open_in_builder` produces a leclap.dev link with the template carried in the URL fragment, not uploaded. Determinism is per platform, not across them — Node and browser encode with libx264, Android with libopenh264, iOS with h264_videotoolbox. Renders are 10-minute-capped by default.

Also in Editing & Post

Pairs well with