Home / MCP / FFmpeg MCP Server

FFmpeg MCP Server

Provides an MCP server that orchestrates FFmpeg-based video processing tasks like search, cut, stitch, and playback.

other
Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
    "mcpServers": {
        "ffmpeg_mcp": {
            "command": "uv",
            "args": [
                "--directory",
                "/Users/xxx/Downloads/ffmpeg-mcp",
                "run",
                "ffmpeg-mcp"
            ]
        }
    }
}

You can run an MCP server that uses FFmpeg tooling to perform local video search, tailoring, stitching, and playback tasks through a unified MCP interface. This setup lets you orchestrate FFmpeg-based video processes from a client, enabling automated workflows and on-demand media manipulation.

How to use

Use an MCP client to connect to the FFmpeg MCP server you run locally. You can trigger a sequence of video operations such as locating videos, extracting metadata, trimming clips, concatenating segments, and playing or exporting results. The server exposes a set of tools that perform these actions and respond with results or paths to generated media.

How to install

Prerequisites you need before starting are installed on your system: a supported runtime for running MCP servers and the capability to run commands from the command line.

1) Clone the project and install dependencies.

2) Start the MCP server as shown in the configuration snippet below.

{
  "mcpServers": {
    "ffmpeg_mcp": {
      "autoApprove": [],
      "disabled": false,
      "timeout": 60,
      "command": "uv",
      "args": [
        "--directory",
        "/Users/xxx/Downloads/ffmpeg-mcp",
        "run",
        "ffmpeg-mcp"
      ],
      "transportType": "stdio"
    }
  }
}

Additional sections

Supported platforms are macOS. The MCP server can run on ARM64 or x86_64 builds.

Available tools

find_video_path

Searches for a video file within a directory by name, supporting exact or partial names, recursively returning the full path.

get_video_info

Retrieves video metadata such as duration, fps, codec, width, and height from a video path.

clip_video

Trims a video file based on a start and end time or a duration, returning the path to the trimmed output.

concat_videos

Concatenates a list of video files into a single output. If properties like width, height, and frame rate are consistent across inputs, a quick mode synthesis is used.

play_video

Plays video or audio using ffplay with support for common formats and options like speed and loop count.

overlay_video

Overlays one video on top of another with controllable position and offsets to produce a composite output.

scale_video

Scales a video to a specified width and height while maintaining aspect when -2 is used.

extract_frames_from_video

Extracts frames from a video to an image sequence with configurable fps, format, and total frame limit.