Skip to content
appsgit

Ffmpeg Skill

Ffmpeg Skill is an MCP server that adds developer tools to AI assistants such as Claude Desktop, Claude Code and Cursor. Local video editor for coding agents: 42 FFmpeg tools with a machine-readable contract and an MCP server, for Claude… It has 2,928 GitHub stars, is released under the MIT license and runs locally with npx -y ffmpeg-skill.

github.com/kajisho5/ffmpeg-skill (opens in a new tab)

Data as of from the GitHub API; description from the project's repository. Report an error

Install Ffmpeg Skill

Generated from the server's published package. Replace your-value with your own values.

Claude Desktop

claude_desktop_config.json
{
  "mcpServers": {
    "ffmpeg-skill": {
      "command": "npx",
      "args": [
        "-y",
        "ffmpeg-skill"
      ]
    }
  }
}

Settings > Developer > Edit Config. macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\. Restart Claude Desktop afterwards.

Claude Code

claude mcp add --transport stdio ffmpeg-skill -- npx -y ffmpeg-skill

Cursor

.cursor/mcp.json
{
  "mcpServers": {
    "ffmpeg-skill": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "ffmpeg-skill"
      ]
    }
  }
}

Project file; use ~/.cursor/mcp.json to enable it in every project.

VS Code

.vscode/mcp.json
{
  "servers": {
    "ffmpeg-skill": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "ffmpeg-skill"
      ]
    }
  }
}

Config formats checked against the official docs on Oct 7, 2026: modelcontextprotocol.io (opens in a new tab), code.claude.com (opens in a new tab), cursor.com (opens in a new tab), code.visualstudio.com (opens in a new tab).

Tools (40)

Parsed from the Tools section of the README; check the repository for the current list.

  • probe.py

    Duration, fps (+ VFR detection), resolution, codecs, bit depth, HDR format incl.

  • scenes.py

    Scene changes, audio peaks, highlight proposals (--rank-by audio loudest, or --rank-by duration longest — both…

  • look.py

    Contact sheet, single frames, side-by-side comparison as PNG so the agent can see what it made; --safe NAME shades the…

  • cut.py

    In/out or multi-segment cuts, lossless -c copy first, re-encode fallback, --accurate for frame-exact video and…

  • join.py

    Concatenate clips with xfade transitions, normalising size, fps, sample rate and channel layout (the widest clip's, or…

  • silence.py

    Detect and remove dead air (jump cuts) with a margin around speech; list or export the cut list; --filler also removes…

  • fit.py

    Fit to a duration (pitch-preserving speed change or trim, smooth slow-mo) and/or aspect ratio (pad, crop or --fit…

  • crop.py

    Crop to an exact pixel rectangle (--x --y --width --height) — distinct from fit.py --fit crop, which crops to an…

  • cropdetect.py

    Measure existing black letterbox/pillarbox bars and report the crop.py-ready rectangle that removes them — analysis…

  • deinterlace.py

    Deinterlace interlaced source footage (yadif), --mode frame/field, --parity

  • denoise.py

    Reduce video noise/grain (hqdn3d), --strength low/medium/high or individual spatial/temporal overrides

  • redact.py

    Blur, pixelate, or (--mode delogo) interpolate away an exact pixel rectangle for the whole clip.

  • sphere.py

    Extract a flat rectilinear viewport from a 360/spherical video (--yaw --pitch --roll --h-fov --v-fov); no subject…

  • straighten.py

    Rotate by an arbitrary angle for horizon correction (--degrees, --fit crop/pad) — distinct from fit.py --rotate's…

  • insert.py

    Turn a still image into a silent, fixed-duration video clip (title card, end slate) at an exact frame size / fps, with…

  • background.py

    Generate a solid-colour or two-colour gradient clip at an exact size/duration — no input file

  • reverse.py

    Reverse playback (video and, unless --no-audio, audio)

  • stabilize.py

    Two-pass motion stabilisation (vidstabdetect/vidstabtransform)

  • sequence.py

    Numbered (frame%04d.png) or glob-matched still images into a video

  • waveform.py

    Render an audio track as a waveform or spectrum visualization video (showwaves/showspectrum) — for audio-only inputs…

  • freeze.py

    Hold a frame for N seconds (--at, --hold, --mode insert/extend) — an end-card hold or a comedic beat

  • pad.py

    Add black/silent padding at the start and/or end of the timeline (--start, --end) — distinct from fit.py --fit pad's…

  • speedramp.py

    Step through different constant speeds across a clip via --segment START-END:FACTOR (repeatable) — distinct from…

  • loop.py

    Repeat a clip --times N or to a target --duration — for background loops and filling a fixed slot length; --boomerang…

  • broll.py

    Cut away to a B-roll clip over the A-roll for a window (--insert B --at T --duration D, repeatable) and come back; A's…

  • metadata.py

    Write container chapter markers from a TIME TITLE text file and title/artist/comment tags, every stream copied bit for…

  • grid.py

    Composite --colsx--rows clips into one grid, each cell letterboxed and labelled with its filename by default (--label…

  • audio.py

    Voice clean-up chain at three strengths (--voice light\

  • sync.py

    Offset between two recordings by audio cross-correlation (1 ms, pure Python), clock-drift correction; aligned video or…

  • loudness.py

    Two-pass EBU R128 loudnorm to −14 LUFS / −1 dBTP or any target (--lra for the range), video stream-copied; the written…

  • caption.py

    Burn SRT/ASS with font, size, colour, outline, position; build SRT from timed plain text; wraps to the safe area —…

  • overlay.py

    Logos, watermarks and titles with position, time range, opacity, fades; --platform NAME keeps them clear of that…

  • graphics.py

    Lower-thirds, title cards, chapter chips, progress bars, countdowns, corner bugs, social stickers, opening hook cards…

  • color.py

    HDR10 / HLG / Dolby Vision → SDR BT.709 tone mapping, DV layer stripping, 3D LUT (.cube), colour-tag rewriting, typed…

  • export.py

    Presets youtube, youtube4k, reels, tiktok, shorts, linkedin, facebook, x, youtube-hdr (HEVC Main10, source HDR tags…

  • proxy.py

    Small, low-bitrate proxy for downstream AI analysis/preview/editing decisions — resize by --width/--scale, proxy-grade…

  • check.py

    PASS / WARN / FAIL against YouTube, Shorts, Reels, TikTok, X, LinkedIn, Facebook, broadcast and podcast specs, from…

  • report.py

    Single-file HTML delivery report: before/after sheets, media facts, loudness, compliance, the commands run; --pack…

  • render.py

    Render a whole edit from a declarative project.json (clips, transitions, captions, overlays including the social…

  • batch.py

    Apply a step recipe or a project to a folder with a content-hash cache; --watch; --jobs N processes several files at…

About Ffmpeg Skill

Give your coding agent a video editor. Claude Code, Cursor, Codex or any MCP client edits your footage with local FFmpeg, then checks its own output. No cloud · No API keys · Python standard library

  • audio-processing
  • captions
  • ffmpeg
  • subtitles
  • video
  • video-editing
  • video-processing
  • agent-skills
  • ai-agents
  • claude-code

FAQ

Ffmpeg Skill FAQ

Still curious? Email info@appsgit.com.

How do I install the Ffmpeg Skill MCP server?

Add the command npx -y ffmpeg-skill to your MCP client: put it in claude_desktop_config.json for Claude Desktop, run claude mcp add for Claude Code, or add it to .cursor/mcp.json (Cursor) or .vscode/mcp.json (VS Code). The snippets on this page are ready to paste.

Is Ffmpeg Skill free?

The server is open source under the MIT license, so running it is free. It does not declare any required API key.

Is Ffmpeg Skill actively maintained?

The most recent commit was on Oct 26, 2026. The latest release is v2.17.1, published Oct 25, 2026. appsgit only lists MCP servers with a commit in the last six months.