Skip to main content
Glama
README.md
# mcp-ffmpeg

MCP server wrapping [FFmpeg](https://ffmpeg.org/) 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:

```bash
brew install ffmpeg
```

## Installation

### Claude Code

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

### Codex

Add to your `codex.toml`:

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

### Claude Desktop

Add to `claude_desktop_config.json`:

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

### Cursor

Add to `.cursor/mcp.json`:

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

### VS Code

Add to `.vscode/mcp.json`:

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

### Windsurf

Add to `~/.windsurf/mcp.json`:

```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

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 issues