Shotcut MCP について
Shotcut MCP は、GUI を使わずに Shotcut の MLT エンジンで動画を編集する MCP サーバーです。Shotcut で引き続き編集できるネイティブの .mlt プロジェクトを作成し、タイムライン編集、フィルター、タイトル、トランジション、レンダリングに対応します。
主な機能
- 01ネイティブ .mlt プロジェクトの作成
- 02クリップの追加、トリミング、分割、移動、削除
- 03フィルターとテキストタイトルの適用
- 04隣接クリップ間のクロスフェード
- 05タイムラインとプロジェクト情報の確認
- 06melt による動画レンダリング
活用シーン
- 01複数のクリップを動画プロジェクトに編成
- 02編集にタイトルやフェードを追加
- 03レンダリング前にタイムライン構成を確認
MCP 対応
stdio 経由で、動画プロジェクトの編集とレンダリングのツールを MCP クライアントに提供します。stdio サーバーを実行できる MCP クライアントから接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx shotcut-mcpSHOTCUT_MCP_WORKDIRDirectory for .mlt projects and state files (default ~/shotcut-mcp-projects)MELT_BINPath to the MLT melt binary if it is not on PATHFFPROBE_BINPath to ffprobe if it is not on PATHローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
14掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| fps | number | いいえ | |
| name | string | はい | |
| width | integer | いいえ | |
| height | integer | いいえ |
詳細
shotcut-mcp
Shotcut のエンジンである MLT を使い、GUI なしで動画を編集する MCP サーバーです。エージェントはプロジェクトの作成、クリップの追加やトリミング、分割、移動、削除、フィルターの適用、タイトルやクロスフェードの追加、タイムラインの読み込み、melt によるレンダリングを行えます。
出力されるのはロックされた動画ファイルではなく、Shotcut ネイティブの .mlt プロジェクトです。エージェントが作成した編集内容を Shotcut で開き、手動で編集を続けられます。
要件
- Python 3.11+
- MLT の
meltがPATHにあること。または、MELT_BINに完全パスを設定してください。Shotcut をインストールするとmeltも含まれます。- Linux:
sudo apt install melt - macOS:Shotcut をインストールしてから、
MELT_BIN=/Applications/Shotcut.app/Contents/MacOS/meltを設定してください。 - Windows:Shotcut をインストールしてから、Shotcut フォルダー内の
melt.exeをMELT_BINに設定してください。Windows のレンダリングは、まだ CI でテストされていません。
- Linux:
- クリップの長さの読み取りとレンダリング結果の確認には、FFmpeg に含まれる
ffprobeがPATHに必要です。FFPROBE_BINで上書きできます。
インストール
uv を使えば、インストール手順なしで実行できます。
uvx shotcut-mcp
または、pip でインストールできます。
pip install shotcut-mcp
shotcut-mcp
サーバーは stdio 経由で MCP 通信を行います。
goose で使う
goose Desktop または CLI
goose configureを実行し、Add Extension、次に Command-line Extension を選択します。- 名前:
shotcut - コマンド:
uvx shotcut-mcp - タイムアウト:
600秒以上。レンダリングには goose のデフォルトより長い時間がかかります。 - 環境変数
SHOTCUT_MCP_WORKDIRを追加します。また、meltがPATHにない場合はMELT_BINも追加します。
config.yaml
~/.config/goose/config.yaml に次の内容を追加します。
extensions:
shotcut:
enabled: true
type: stdio
name: shotcut
cmd: uvx
args:
- shotcut-mcp
envs:
SHOTCUT_MCP_WORKDIR: /path/to/your/projects
timeout: 600
次のように goose に依頼します。「clip1.mp4 と clip2.mp4 から promo というプロジェクトを作成し、それぞれ最初の 5 秒を残してクロスフェードし、タイトル『Launch day』を追加してレンダリングしてください。」
他の MCP クライアントで使う
stdio サーバーを実行できる MCP クライアントであれば使用できます。たとえば、Claude Desktop の claude_desktop_config.json は次のとおりです。
{
"mcpServers": {
"shotcut": {
"command": "uvx",
"args": ["shotcut-mcp"],
"env": { "SHOTCUT_MCP_WORKDIR": "/path/to/your/projects" }
}
}
}
設定
| 変数 | デフォルト | 説明 |
|---|---|---|
SHOTCUT_MCP_WORKDIR | ~/shotcut-mcp-projects | .mlt プロジェクトとその状態ファイルの保存先 |
MELT_BIN | melt | レンダリングに使う melt バイナリのパス |
FFPROBE_BIN | ffprobe | ソースの長さの読み取りに使う ffprobe のパス |
ツール
| ツール | 説明 |
|---|---|
create_project | フレームサイズとフレームレートを指定して新しいプロジェクトを作成します |
add_clip | ソース動画の一部分をタイムラインの末尾に追加します。クリップの ID を返します |
trim_clip | クリップのソースのイン点とアウト点を変更します |
remove_clip | クリップを 1 つリップル削除します |
move_clip | タイムライン上の新しい位置にクリップを移動します |
split_clip | クリップ内の指定位置で 2 つに分割します |
remove_segment | タイムラインの一部分をリップル削除します |
append_text_overlay | 指定した 2 つの時刻の間、タイムラインにテキストタイトルを焼き込みます |
apply_filter | クリップに brightness、volume、crop、fadeInBrightness、fadeOutBrightness、fadeInAudio、fadeOutAudio を適用します |
set_transition | 隣接する 2 つのクリップ間で、映像と音声をクロスフェードします |
get_timeline | クリップ、ソースのイン点とアウト点、タイムライン上の位置、フィルター、トランジション、タイトルを含む編集内容全体を返します |
project_info | プロジェクトの概要メタデータを返します |
render | melt を使ってプロジェクトを動画ファイルにレンダリングします |
list_projects | 作業ディレクトリ内のプロジェクトを一覧表示します |
クリップ ID は呼び出しをまたいで維持されます。編集状態は各 .mlt の隣にある .state.json ファイルに保存され、変更のたびにそこから .mlt が再生成されます。
現在の制限事項
- 映像トラックは 1 つです。複数トラックの映像と音声には今後対応する予定です。
- Shotcut の GUI で手動編集すると、次のツール呼び出しで上書きされます。安全な往復編集には今後対応する予定です。
set_transitionのstyleオプションは受け付けられますが、現時点でレンダリングされるのはディゾルブのみです。
開発
pip install -e ".[dev]"
pytest
melt がインストールされていない場合、レンダリングテストはスキップされます。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。