mcp-ffmpeg-tools について
FFmpeg コマンドを実行し、FFmpeg のソースコードを基に検証するオープンソースの Python 製 MCP サーバーです。実行結果やエラーの確認が必要な LLM のメディア処理ワークフローに適しています。
主な機能
- 01FFmpeg コマンドの実行
- 02ffprobe によるメディア検査
- 03結果確認用のスクリーンショット取得
- 04FFmpeg ソースコードに基づくコマンド検証
- 05実行結果とエラーの返却
活用シーン
- 01メディアファイルの変換
- 02音声・動画ストリームの抽出
- 03動画クリップの重ね合わせと配置
- 04出力解像度とビットレートの確認
MCP 対応
MCP クライアントに FFmpeg 実行、ffprobe 検査、スクリーンショット取得、ソースコード検索のツールを提供します。ローカルでの実行に加え、Docker で MCP API を HTTP 公開できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-ffmpeg-tools
LLM(大規模言語モデル)が FFmpeg コマンドを実行し、実行結果を受け取り、FFmpeg のソースコードと照合してコマンドを検証できるように設計された、オープンソースの Python MCP(Model-Command Protocol)サーバーです。
前提条件
mcp-ffmpeg-tools をインストールする前に、システムに FFmpeg がインストールされている必要があります。
Windows
- ffmpeg.org から FFmpeg をダウンロードします
- アーカイブを任意の場所に展開します
binディレクトリをシステムの PATH に追加します
macOS
brew install ffmpeg
Linux (Ubuntu/Debian)
sudo apt update
sudo apt install ffmpeg
Linux (Fedora)
sudo dnf install ffmpeg
機能
- MCP インターフェースを通じて FFmpeg コマンドを実行します
- 詳細な実行結果とエラーメッセージを受け取ります
- コマンド修正のために FFmpeg のソースコードにアクセスします
- クロスプラットフォームに対応しています(Windows、macOS、Linux)
- uv を使用して環境を管理します
インストール
- リポジトリをクローンします:
git clone https://github.com/gamhoi/mcp-ffmpeg-tools.git
cd mcp-ffmpeg-tools
- uv を使用してインストールします:
uv venv
uv pip install -e .
インストールプロセスでは、次の処理が行われます。
- FFmpeg がインストールされ、システムの PATH からアクセスできることを確認します
- 検証用の対応する FFmpeg ソースコードをダウンロードします
- Python パッケージとその依存関係をインストールします
FFmpeg が見つからない場合、またはソースコードのダウンロードに失敗した場合、インストールは失敗します。
使用方法
Claude Desktop での使用
次の設定を Claude Desktop の設定に追加します。
{
"mcpServers": {
"mcp-ffmpeg-tools": {
"command": "uv",
"args": [
"--directory",
"PATH_TO/mcp-ffmpeg-tools",
"run",
"ffmpeg-tools"
]
}
}
}
テストの実行
uv run python3 client/test.py
プロンプトの例
基本プロンプト
Help me perform media conversion tasks using FFmpeg. You can:
- use tool:execute_ffmpeg to run FFmpeg commands
- use tool:execute_ffprobe to inspect results (e.g., resolution, bitrate)
- use tool:get_screenshot to inspect results (e.g., video layout, quality)
- use tool:ls_ffmpeg_source_code and tool:get_ffmpeg_source_code to validate commands using FFmpeg source code
動画と音声を抽出する
Extract all media streams from the file 'YOU_FILE_PATH' and save outputs to 'YOU_OUTPUT_PATH'
2 つの動画を重ねる
Overlay file1 'YOU_FILE_PATH_1' and file2 'YOU_FILE_PATH_2', using file1 as the background. Scale file2 down to half its original resolution and position it at the top-right corner of file1. Save the output to 'YOUR_OUTPUT_PATH'.
Docker で実行する
Docker を使用して、MCP FFmpeg Tools を HTTP モードで実行できます。 これにより、クライアントが使用できるように MCP API(/mcp)を HTTP ポートで公開できます。
オプション 1 — Docker Hub からプルする
Docker Hub から公式イメージを直接プルして実行できます。
docker pull gamhoi/mcp-ffmpeg-tools:latest
ポート 8000 で実行します。
docker run -d -p 8000:8000 gamhoi/mcp-ffmpeg-tools:latest --port 8000
次の設定を Claude Desktop の設定に追加します。
{
"mcpServers": {
"mcp-ffmpeg-tools-http": {
"type": "streamableHttp",
"url": "http://localhost:8000/mcp"
}
}
}
注:デフォルトの URL
http://localhost:8000/mcpは、MCP サーバーがローカルで実行されていることを前提としています。 リモート環境またはネットワーク環境で実行している場合は、localhostをホストの IP アドレスまたはドメイン名に置き換えてください。
オプション 2 — ローカルでビルドする
Dockerfile からビルドする場合:
docker build -t mcp-ffmpeg-tools .
ローカルファイルへのアクセス
デフォルトでは、コンテナ内の ffmpeg は Docker の外部にあるローカルファイルにアクセスできません。 ローカルの動画を処理できるようにするには、ホストのディレクトリをコンテナにマウントする必要があります。
例:
docker run -d -p 8000:8000 -v /local_media:/media gamhoi/mcp-ffmpeg-tools:latest --port 8000
この例では:
- ローカルの動画ファイルを次の場所に置けます:/local_media/sample.mp4
- コンテナ内では、同じファイルに次の場所からアクセスできます:/media/sample.mp4
そのため、LLM にローカルファイルの処理を依頼する際は、次のようにします。
Extract all media streams from the file /media/sample.mp4 and save outputs to /media/
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。