Skip to main content
Glama

mcp-ffmpeg

MCP server wrapping FFmpeg and FFprobe for local media processing.

Works with Claude Code, Codex, Claude Desktop, Cursor, VS Code, Windsurf, and any MCP-compatible client.

Prerequisites

  • Node.js 18+

  • FFmpeg and FFprobe installed and in PATH

Install FFmpeg:

brew install ffmpeg

Related MCP server: ffmpeg-mcp

Installation

Claude Code

claude mcp add ffmpeg -- npx -y github:pauloFroes/mcp-ffmpeg

Codex

Add to your codex.toml:

[mcp.ffmpeg]
command = "npx"
args = ["-y", "github:pauloFroes/mcp-ffmpeg"]

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "ffmpeg": {
      "command": "npx",
      "args": ["-y", "github:pauloFroes/mcp-ffmpeg"]
    }
  }
}

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "ffmpeg": {
      "command": "npx",
      "args": ["-y", "github:pauloFroes/mcp-ffmpeg"]
    }
  }
}

VS Code

Add to .vscode/mcp.json:

{
  "servers": {
    "ffmpeg": {
      "command": "npx",
      "args": ["-y", "github:pauloFroes/mcp-ffmpeg"]
    }
  }
}

Windsurf

Add to ~/.windsurf/mcp.json:

{
  "mcpServers": {
    "ffmpeg": {
      "command": "npx",
      "args": ["-y", "github:pauloFroes/mcp-ffmpeg"]
    }
  }
}

Available Tools

Tool

Description

check_dependencies

Check if ffmpeg and ffprobe are installed and available

get_media_info

Get media file metadata (duration, resolution, codecs, format)

extract_frames

Extract frames from video at regular intervals (returns base64 images)

extract_audio

Extract/convert audio from video to MP3

split_audio

Split audio file into chunks of N minutes

License

MIT

Available Tools

5 tools
check_dependenciesCheck DependenciesA
Read-only

Check if ffmpeg and ffprobe are installed and available in PATH. Returns status, version, and installation instructions if missing.

Inputs: no named parameters.

extract_audioExtract AudioA

Extract/convert audio from a local video file to MP3. Returns the path to the extracted audio file.

Inputs: file_path (required), output_dir.

extract_framesExtract FramesA
Read-only

Extract frames/screenshots from a local video file at regular intervals. Returns images as base64 that Claude can see and analyze.

Inputs: file_path (required), format, max_frames, interval_seconds.

get_media_infoGet Media InfoA
Read-only

Get metadata about a local media file (video or audio): duration, resolution, codecs, format, filesize. Uses ffprobe.

Inputs: file_path (required).

split_audioSplit AudioA

Split an audio file into chunks of N minutes. Returns paths to all chunk files. Useful for processing large files that exceed API size limits.

Inputs: file_path (required), output_dir, chunk_minutes.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool has a distinct purpose: checking dependencies, extracting audio, extracting frames, getting media info, and splitting audio. There is no overlap or ambiguity in their functionalities.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case, such as 'check_dependencies' and 'extract_audio', making them predictable and easy to understand.

    Tool Count5/5

    With 5 tools, the server is well-scoped for common ffmpeg operations like extraction and metadata retrieval. It is neither too sparse nor too heavy.

    Completeness4/5

    The tool set covers essential audio/video extraction and info tasks, but lacks some common ffmpeg features like video conversion or merging. Minor gaps exist but do not severely hinder basic workflows.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables audio and video manipulation using FFmpeg, including extracting audio, converting formats, merging files, trimming, and adjusting volume.
      19,326 npm
      ISC