aviutl2-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@aviutl2-mcp create a 1280x720 60fps project with a title and open it"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
aviutl2-mcp
AviUtl ExEdit2 (AviUtl2) を LLM(Claude Code など)から操作する MCP サーバー。
Claude Code に「1920x1080 30fps のプロジェクトを作って、タイトルテキストを入れて、拡散光をかけて、AviUtl2 で開いて」と指示するだけで、.aup2 プロジェクトを組み立てて実際に AviUtl2 で開くところまで自動化できます。
さらに、ネイティブブリッジプラグイン(plugin/)を導入すると、既に開いている AviUtl2 をリアルタイムに操作できます。 ファイルの書き換え・開き直しは不要で、live_add_object 等のツールを呼ぶと即座にプレビュー画面へ反映されます。詳細は plugin/README.md を参照してください。
動作確認済み環境: AviUtl ExEdit2 version 2.00 beta53a / Windows 11 / Node.js 22。
ダウンロード
Releases から最新版の zip をダウンロード して展開し、setup.bat をダブルクリックするだけで導入できます。手順の詳細は GETTING_STARTED.md を参照してください。
⚠️ 同梱の
plugin/build/mcp_bridge.dll(リアルタイム制御用プラグイン)は現時点ではコード署名されていません。導入時にセキュリティソフトが反応することがあります。ソースコードはplugin/src/に全て公開していますので、気になる方は中身を確認してから使ってください。署名対応の計画は SIGNING.md を参照してください。
以下はこのプロジェクトの技術的な仕組みの説明です。
Related MCP server: ae-mcp
仕組み
AviUtl2 のプロジェクトファイル .aup2 は UTF-8・CRLF の INI 風テキストです。このサーバーはそのフォーマットを解析・生成することで、GUI 操作なしにプロジェクトを構築します。
実機が保存した
.aup2をparse → serializeしてバイト単位で完全一致することをテストで保証(test/roundtrip.test.js)。フォーマットを壊しません。オブジェクトは「メディア入力エフェクト → 任意のフィルタ → 描画/再生エフェクト」という AviUtl2 の内部構造どおりに生成します。
パラメータの書式(
拡散光の強さなど)は実機が出力したプロジェクトから採取した検証済みの値を使用しています。
安全設計(本体を壊さない)
src/paths.js の assertWritable() で書き込み先を検証し、以下をコードレベルで拒否します。
領域 | 読み取り | 書き込み |
本体フォルダ | ✅ | ❌ 常に拒否 |
データフォルダ | ✅ | ❌ 拒否( |
それ以外(ユーザーのプロジェクト置き場など) | ✅ | ✅ |
スクリプトのインストールは C:\ProgramData\aviutl2\Script\MCP\ という専用サブフォルダにのみ行うため、既存のスクリプトや設定を上書きしません。
セットアップ
このリポジトリを好きな場所に clone/展開してください。
cd <展開したフォルダ>\aviutl2-mcp
npm install
npm test # ラウンドトリップ + MCP 統合テストsetup.bat(またはsetup.ps1)を実行すると、依存インストールから下記の .mcp.json 作成まで自動化されます。詳しくは GETTING_STARTED.md を参照してください。
Claude Code への登録
このフォルダの直下に .mcp.json を作成すると、Claude Code をこのフォルダで起動したときに自動で読み込まれます。
{
"mcpServers": {
"aviutl2": {
"command": "node",
"args": ["<展開したフォルダの絶対パス>\\aviutl2-mcp\\src\\index.js"]
}
}
}args にはこのリポジトリの src/index.js への絶対パスを指定してください(setup.ps1 を使えば自動で書き込まれます)。Claude Code をこのフォルダで起動すると aviutl2 サーバーが読み込まれ、/mcp で確認できます。別の場所で使う場合は claude mcp add で登録するか、任意の設定ファイルにこの JSON を追記してください。
環境変数(任意)
AVIUTL2_EXE_DIR—aviutl2.exeのあるフォルダ(自動検出に失敗する場合)AVIUTL2_DATA_DIR— データフォルダ(既定C:\ProgramData\aviutl2)
提供ツール
ツール | 説明 |
| インストール状態・バージョン・起動中かを返す(最初に呼ぶ) |
| 導入済みスクリプト/プラグイン/図形/フォント等の一覧 |
| 本体付属の |
| 空の |
|
|
| 動画/画像/音声/テキスト/任意構成のオブジェクトを追加 |
| レイヤー/フレーム範囲/エフェクトパラメータを変更、フィルタ追加 |
| オブジェクト削除 |
| シーンの解像度・fps・名前などを変更 |
| AviUtl2 を起動(プロジェクトを開く) |
| スクリプト(.anm2 等)を |
| 管理フォルダのスクリプトを削除 |
| 配布用 zip を作成 |
| ネイティブブリッジプラグインを |
| ブリッジプラグインへの接続確認 |
| 起動中プロジェクトの現在シーンの状態をリアルタイム取得 |
| 起動中プロジェクトにオブジェクトをその場で追加(開き直し不要) |
| 起動中プロジェクトのオブジェクトをその場で編集 |
| 起動中プロジェクトのオブジェクトをその場で削除 |
オブジェクトの型(add_objects)
video/image/audio…file(絶対パス)を指定text…text(改行可)とtext_params(サイズフォント文字色文字装飾文字揃えなど)raw…effectsでエフェクト列を完全指定(高度な用途)共通:
layerframe_startframe_end、draw_params(XY拡大率透明度合成モード音量など)、filters(拡散光ぼかしラスターなどフィルタ効果の配列)
移動アニメは値を "開始値,終了値,直線移動" の形式で渡します(例 draw_params: { X: "-960,960,直線移動" })。使えるフィルタ名・パラメータ名は read_docs(doc:"readme") や既存プロジェクトの read_project で確認できます。
使い方の例
Claude Code への指示例:
1280x720 60fps のプロジェクトを
C:\Users\<ユーザー名>\Videos\intro.aup2に作って、 中央にタイトル「新作動画」を縁取り文字で置いて、左から右へスライドインさせて、 AviUtl2 で開いて。
コードから直接叩く例は examples/build-demo.mjs を参照(node examples/build-demo.mjs で demo/demo.aup2 を生成して AviUtl2 で開きます)。
リアルタイム制御(ブリッジプラグイン)
.aup2 ファイルの生成・編集は「開き直し」が必要になりますが、plugin/ に同梱したネイティブプラグイン(.aux2、AviUtl2 公式 SDK の EDIT_SECTION API を使用)を導入すると、既に開いている AviUtl2 に対して名前付きパイプ経由でその場に反映できます。
install_live_bridge を実行 → AviUtl2 を再起動 → live_status で接続確認 → live_add_object / live_update_object / live_delete_object対象は AviUtl2 で現在表示・編集中のシーン(ファイル方式のようなシーン番号指定はない)
オブジェクトの特定は
layer(0始まり)とframe_startの完全一致で行う本体は改変せず、
ProgramData\aviutl2\Plugin\aviutl2-mcp-bridge.aux2という専用ファイル名にのみ書き込む(他のプラグインと衝突しない)仕組み・ビルド方法・IPC プロトコルの詳細は plugin/README.md を参照
スクリプトの配布(MOD)
install_script で自作の Lua スクリプト(アニメーション効果 .anm2 など)を導入し、package_scripts で配布用 zip を作れます。zip は「解凍して出てくるフォルダを ProgramData\aviutl2\Script に入れる」構成になっており、受け取った人は AviUtl2 のプレビュー画面へ D&D するだけでもインストールできます。Lua の仕様は read_docs(doc:"lua") で本体付属の lua.txt を読めます。
このツール自体の配布パッケージを作る
他の人に配れる zip(setup.bat で導入できる完成品)を作るには:
npm run packagerelease/aviutl2-mcp-vX.X.X.zip が生成されます。node_modules や .git、開発中の一時ファイルは含まれず、
受け取った人がそのまま setup.bat を実行できる最小構成(ソース一式 + ビルド済みの plugin/build/mcp_bridge.dll)になります。
プラグインを最新のソースから作り直したい場合は、先に plugin/README.md の手順でビルドしてから
npm run package を実行してください(ビルド済みDLLが無くても、ファイル方式の機能だけを含んだパッケージが作られます)。
配布を受け取った側の手順は GETTING_STARTED.md にまとめてあります。
コード署名について
plugin/build/mcp_bridge.dll は未署名のネイティブDLLです。動画編集ソフトのプロセスに読み込まれ
名前付きパイプで通信するという性質上、セキュリティソフトが警戒する可能性があります。
このプロジェクトは SignPath.io のオープンソース向け無料署名プログラムへの
申請を前提に、GitHub Actions での自動ビルド(.github/workflows/build-plugin.yml)
を用意しています。申請〜設定の具体的な手順は SIGNING.md を参照してください。
署名してもセキュリティソフトの警戒が完全になくなるわけではありません(未知の発行元という理由での警告は 減りますが、「動画編集ソフトに注入されIPC通信を行う」という挙動自体への挙動検知は署名の有無に関わらず 残る可能性があります)。SignPathでの審査が難しい場合の代替として、Azure Trusted Signing(月額課金・ 要Microsoftアカウントでの本人確認)や、Sectigo/Certum等が提供する個人向けOV証明書(年額課金・要身分証明) もあります。
注意点
ファイル方式(
create_project/add_objects等)は、AviUtl2 で既に開いているプロジェクトを外部から編集しても自動では反映されません。編集後は AviUtl2 で開き直してください。逆に、AviUtl2 で編集・保存すると外部の変更は上書きされます。同じプロジェクトを両方から同時に触らないようにしてください。リアルタイムに反映したい場合はブリッジプラグイン経由のlive_*ツールを使ってください(上記「リアルタイム制御」参照)。add_objectsは同一レイヤー・同一シーンでフレーム範囲が重なる追加を拒否します。対応フォーマットは AviUtl2 2.00 beta53a で確認したものです。将来のバージョンでキーが増えても、未知のセクションはパーサが明示的にエラーにするため、気付かず壊すことはありません。
ライセンス
MIT。AviUtl2 本体は同梱しません(各自でインストール)。
Available Tools
19 toolsadd_objectsオブジェクトの追加A
プロジェクトにオブジェクト (動画/画像/音声/テキスト/任意エフェクト構成) を追加する。同一レイヤー・同一シーン内でフレーム範囲が重なると AviUtl2 上で正しく扱えないので重ねないこと。frame_end は終了フレーム(含む)。
Inputs: path (required), objects (required).
create_projectプロジェクト (.aup2) の新規作成B
空の AviUtl2 プロジェクトファイルを作成する。パスは .aup2 で終わること。AviUtl2 本体・データフォルダ内には作成できない。
Inputs: path (required), width, height, overwrite, +3 more.
delete_objectオブジェクトの削除C
オブジェクトを削除する。以降のオブジェクトの index は詰められる。
Inputs: path (required), object_index (required), scene.
get_environmentAviUtl2 環境情報の取得A
AviUtl2 のインストール状態 (本体パス・バージョン・データフォルダ・導入済みプラグイン/スクリプト数・起動中かどうか) を返す。最初に一度呼ぶことを推奨。
Inputs: no named parameters.
install_live_bridgeリアルタイム制御ブリッジプラグインのインストールA
同梱のネイティブプラグイン(mcp_bridge.dll)を C:\ProgramData\aviutl2/Plugin/aviutl2-mcp-bridge.aux2 としてインストールする。これにより起動中のAviUtl2を名前付きパイプ経由でリアルタイム操作できるようになる(live_*系ツール)。反映にはAviUtl2の再起動が必要。他のプラグインとは独立したファイル名なので既存プラグインを上書きしない。
Inputs: overwrite.
install_scriptスクリプトのインストールA
AviUtl2 のスクリプトフォルダ (C:\ProgramData\aviutl2/Script/MCP) にスクリプトファイルを書き込む。対応拡張子: .anm2(アニメーション効果) .obj2(カスタムオブジェクト) .cam2(カメラ効果) .scn2(シーンチェンジ) .tra2(トラックバー移動) .mod2(共有モジュール) .lua .txt .md。反映には AviUtl2 の再起動が必要。Lua の仕様は read_docs(doc:'lua') を参照。
Inputs: content (required), filename (required), overwrite.
launch_aviutl2AviUtl2 の起動A
AviUtl2 を起動する。project_path を指定するとそのプロジェクトを開く。注意: 既に AviUtl2 で同じプロジェクトを開いている場合、外部で編集した内容は取り込まれない (再度開き直す必要がある)。
Inputs: project_path.
list_assets導入済みアセットの一覧A
AviUtl2 のデータフォルダにある拡張要素を一覧する。kind: scripts(スクリプト) / plugins(プラグイン) / figures(図形SVG) / transitions(シーンチェンジPNG) / fonts / aliases(エイリアス)
Inputs: kind (required).
live_add_object起動中プロジェクトへのオブジェクト追加(リアルタイム)A
起動中のAviUtl2の現在編集中シーンに、開き直し不要でその場にオブジェクトを追加する。パラメータはファイル方式のadd_objectsと同じ形式(type: video/image/audio/text/raw)。既存オブジェクトとフレーム範囲が重なる場合は失敗する。
Inputs: type (required), layer (required), frame_end (required), frame_start (required), +6 more.
live_delete_object起動中プロジェクトのオブジェクト削除(リアルタイム)B
layer/frame_startで対象オブジェクトを特定して削除する。
Inputs: layer (required), frame_start (required).
live_get_state起動中プロジェクトの状態取得A
起動中のAviUtl2から現在編集中シーンの設定と全オブジェクト(エイリアス形式)をリアルタイムに取得する。
Inputs: no named parameters.
live_statusリアルタイム制御ブリッジの接続確認A
起動中のAviUtl2にブリッジプラグイン経由で接続できるか確認する(ping)。live_*系ツールを使う前に呼ぶこと。
Inputs: no named parameters.
live_update_object起動中プロジェクトのオブジェクト編集(リアルタイム)A
layer/frame_startで対象オブジェクトを特定し(live_get_stateのframe_startと一致する必要あり)、設定値の変更や移動をその場に反映する。
Inputs: layer (required), frame_start (required), sets, move_to.
package_scripts配布用パッケージ (zip) の作成A
C:\ProgramData\aviutl2/Script/MCP 内のスクリプトを配布用 zip にまとめる。zip 内は「解凍して ProgramData\aviutl2\Script に入れる」構成 (サブフォルダ付き)。files を省略すると管理フォルダ内の全ファイルを含める。
Inputs: output_path (required), files, readme, folder_name.
read_docsAviUtl2 付属ドキュメントの参照A
本体付属のドキュメントを読む。doc: readme(aviutl2.txt 全体説明・オブジェクト/制御文字の仕様) / lua(lua.txt スクリプト(.anm2等)のLua仕様) / style(style.conf レイアウト設定の雛形)。offset/limit は行単位。
Inputs: doc (required), limit, offset.
read_projectプロジェクトの読み取りA
.aup2 を解析して JSON で返す (シーン設定・全オブジェクトのレイヤー/フレーム範囲/エフェクトとパラメータ)。GUI で作った既存プロジェクトからパラメータの書式を学ぶのにも使える。
Inputs: path (required).
uninstall_scriptスクリプトの削除B
このサーバーが管理するフォルダ (C:\ProgramData\aviutl2/Script/MCP) からスクリプトを削除する。それ以外の場所は削除できない。
Inputs: filename (required).
update_objectオブジェクトの編集A
既存オブジェクトのレイヤー/フレーム範囲/エフェクトパラメータを変更する。object_index は read_project が返す index。effect_index を指定してそのエフェクトの params をマージ更新する。
Inputs: path (required), object_index (required), layer, scene, +6 more.
update_sceneシーン設定の変更B
シーンの解像度・フレームレート・名前などを変更する (video.width / video.height / video.rate / audio.rate / name など)。
Inputs: path (required), settings (required), scene.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 19 tools
Each tool targets a distinct resource and mode (file vs live), with 'live_' prefix clearly separating real-time operations from project-file operations. Even similar operations like add_objects and live_add_object are unambiguous due to prefix and explicit descriptions.
Tool names mostly follow a verb_noun pattern, with consistent snake_case. Minor inconsistencies include 'live_status' (noun instead of verb) and 'add_objects' being plural while other object operations are singular, but these are predictable deviations.
With 19 tools, the count is slightly above the typical well-scoped range, but each tool serves a clear purpose across project management, live editing, environment introspection, and script handling. The complexity is justified by the domain.
The server covers core CRUD for projects, objects, scenes, and scripts, plus live editing capabilities. Minor gaps exist, such as lack of render/export and explicit scene add/delete operations, but these are not critical for the intended workflow.
Maintenance
Related MCP Connectors
AI video editor your agent can drive: plan scenes, edit a multi-track timeline, and render MP4s.
Open-source AI video editor: cut, caption, clip and animate real Revline projects from your agent.
AI video editor for agents and humans: timeline, captions, color, audio and generation as MCP tools.
The agentic video editor for ChatGPT and Claude. Ask in your chat and it cuts, captions, adds music, titles and motion graphics on a real timeline you can open and adjust.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to control video editing software (剪映/CapCut and Adobe Premiere Pro) through a unified interface, supporting operations like material import, clip splitting, subtitle addition, effects, transitions, audio mixing, and export.10MIT
- AlicenseNot gradedqualityCmaintenanceConnects LLMs and agentic assistants directly to an active Adobe After Effects session on Windows, enabling composition inspection, parametric motion graphics, keyframe injection, vector masks, audio beat analysis, and automated rotoscoping.MIT
- AlicenseNot gradedqualityCmaintenanceEnables LLM-driven inspection, building, modification, and visual review of Adobe After Effects compositions through structured scene-level operations and a CEP-to-ExtendScript bridge.MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP-compatible AI assistants to control Adobe Premiere Pro through natural language, automating project and media management, timeline editing, color and audio adjustments, titles and markers, and batch exports via a local bridge.8,109 npm1MIT