Premiere Pro MCP Server について
Premiere Pro MCP Serverは、Premiere Pro内のUXPプラグインを介して、MCPクライアントからプロジェクト、タイムライン、エフェクト、文字起こし、書き出しを操作します。Premiere Proがインストールされたマシンで動作し、READMEによると実環境ではまだテストされていません。
主な機能
- 01プロジェクト、ビン、シーケンスの管理
- 02クリップ、トラック、マーカーの編集
- 03エフェクトとキーフレームの適用
- 04文字起こしとメタデータの処理
- 05シーケンス、フレーム、タイムラインの書き出し
活用シーン
- 01素材を読み込み、プロジェクトのビンに整理
- 02シーケンス内のクリップ、エフェクト、マーカーの調整
- 03クリップの文字起こしとテキストの書き出し
- 04完成シーケンスやタイムライン交換ファイルの書き出し
MCP 対応
MCPクライアントにstdio経由でPremiere Proの操作ツールを提供します。Premiere Pro内のUXPプラグインがローカルWebSocketでサーバーに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y adobe-mcp-premierePREMIERE_WS_PORTPort on 127.0.0.1 the Premiere Pro plugin connects to. Default 3011; set the same port in the plugin panelBRIDGE_TOKENシークレットShared secret the plugin must send to connect (enter it in the plugin panel). PREMIERE_BRIDGE_TOKEN overrides itPREMIERE_ALLOWED_DIRSExtra directories allowed for file operations (':' on macOS, ';' on Windows)PREMIERE_SCRIPT_TIMEOUT_MSHow long to wait for Premiere Pro before reporting that a dialog may be open. Default 120000PREMIERE_CONNECT_WAIT_MSHow long a call waits for the plugin to connect before failing. Default 4000ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
96掲載時のツール一覧 · 1 週間前に更新
このツールにパラメーターはありません。
詳細
Premiere Pro MCP サーバー
Adobe Premiere Pro を操作する MCP サーバーです。プロジェクトとビン、シーケンスとその設定、タイムライン編集、マーカー、エフェクト、キーフレームとトランジション、トランスクリプト、メタデータ、書き出しに対応しています。Premiere Pro がインストールされたマシン上で動作し、Premiere Pro 内の小規模な UXP プラグインを介して Premiere Pro と通信します。
ステータス:実際の Premiere Pro では未テストです。 各スクリプトは Premiere Pro の UXP API リファレンスと照合し、テストでは代替 DOM に対して実行していますが、Premiere Pro 上ではまだ実行していません。未完成な部分があることをご了承ください。まだ不確かな点をご覧ください。
Premiere Pro 25.6 以降(macOS または Windows)、プラグインの読み込みに使用する UXP Developer Tool、Node.js 18 以降が必要です。
プラグインを使用する理由
Premiere Pro には、このリポジトリ内の他のサーバーが使用するような外部スクリプト実行手段がありません。AppleScript 辞書も、Windows の COM オブジェクトもなく、/C es.processFile コマンドラインは Premiere Pro の起動時にしか使えず、結果も返さず、サポート対象外です。Adobe がサポートする Premiere Pro の自動化方法は、Premiere Pro 内で動作するプラグインです。Adobe が移行を進めているプラグインプラットフォームが UXP です(Premiere Pro 25.6 から一般提供開始。CEP は 2027 年 12 月に Marketplace への新規登録受付を終了し、2029 年 12 月に削除されます)。
UXP プラグインは WebSocket 接続を開けますが、接続を受け付けることはできません。そのため、このサーバーは 127.0.0.1 で待ち受け、プラグインが接続します。
MCP client --stdio--> adobe-mcp-premiere --ws://127.0.0.1:3011--> MCP Bridge panel (in Premiere Pro)
起動するプロセスは 1 つだけです。MCP サーバーが WebSocket サーバーも兼ねます。
インストール
-
MCP クライアントにサーバーを追加します。
Claude Code:
claude mcp add premiere -- npx -y adobe-mcp-premieremcpServersブロックを読み込むクライアントの場合:{ "mcpServers": { "premiere": { "command": "npx", "args": ["-y", "adobe-mcp-premiere"], "env": { "BRIDGE_TOKEN": "a long random string" } } } } -
Premiere Pro でプラグインを読み込みます。公開されるまでは、UXP Developer Tool を使って読み込んでください。
- Premiere Pro で、プラグイン設定の Developer Mode をオンにします。
- Creative Cloud アプリから UXP Developer Tool をインストールして開きます。
- Add Plugin をクリックし、このパッケージ内の
uxp/plugin/manifest.jsonを選択します。クローン内ではpackages/premiere/uxp/plugin、npm install adobe-mcp-premiereの実行後はnode_modules/adobe-mcp-premiere/uxp/pluginです。premiere_statusを実行すると、サーバーが使用しているコピーのフォルダーが表示されます。 - Load をクリックし、Premiere Pro の Window メニューから MCP Bridge パネルを開きます。
-
パネルでポート(
PREMIERE_WS_PORTを変更していない場合は 3011)とトークン(BRIDGE_TOKENを設定した場合)を入力し、Connect をクリックします。パネルは両方の値を記憶し、接続が切れるたびに 3 秒おきに再接続するため、MCP サーバーの再起動後も自動的に再接続します。 -
クライアントに
premiere_statusを実行するよう依頼します。ポート、プラグインの接続状態、Premiere Pro のバージョン、アクティブなプロジェクトが表示されます。
規則
- シーケンスは
sequenceで指定します。{ name }、{ guid }(list_sequencesで取得)、または省略してアクティブなシーケンスを指定します。 - プロジェクト項目は
itemで指定します。{ id }(list_project_itemsで取得)、{ path: "Footage/Interviews/a.mov" }(プロジェクトルートからのビンのパス)、または同じ名前の項目が 1 つしかない場合は{ name }を指定します。 - シーケンス内のクリップは、
list_clipsに表示されるとおりclip: { track, trackIndex, clipIndex }で指定します。trackはvideoまたはaudio、インデックスは 0 から始まります(トラック 0 は V1 または A1)。複数のクリップを受け取るツールではclips: { items: [...], selected: true }を指定します。selectedを指定すると、タイムラインで選択されているクリップも追加されます。編集後はインデックスが変わるため、再度一覧を取得してください。 - エフェクトは
list_clip_effectsで取得したコンポーネントのインデックスとパラメーター名(またはインデックス)で指定します。 - 時間の単位は秒です。ファイルには、ホームフォルダー内または
PREMIERE_ALLOWED_DIRSで指定されたディレクトリ内の絶対パスを指定する必要があります。ファイルを書き込むツールは、overwrite: trueを指定しない限り、既存ファイルの置き換えを拒否します。
ツール
| 分野 | ツール |
|---|---|
| プロジェクト | get_project_info、create_project(空のプロジェクト、またはテンプレートから作成)、open_project(ダイアログを無効化)、save_project(または「別名で保存」)、close_project(またはすべてのプロジェクトを閉じる)、revert_project、list_project_items(またはプロジェクトパネルの選択項目)、search_project_items(名前、メディアパス、種類、オフライン状態)、get_clip_info(メディアパス、イン点/アウト点、オフライン状態、プロキシ、フッテージの解釈)、import_media(インポート可能なすべての形式、ビンへの取り込み、画像シーケンス)、create_bin(または検索ビン)、manage_items(名前変更、ビンへの移動、ラベルの色、削除) |
| メディア | import_project_sequences(別のプロジェクトから選択したシーケンスを読み込み)、import_after_effects_comps(Dynamic Link)、relink_media(単一のクリップ、またはファイル名でオフラインのクリップを再リンク)、manage_media(更新、オフライン化、プロキシまたはフル解像度メディアの割り当て)、modify_footage(フッテージの解釈、タイムコード、フレームサイズに合わせてスケール)、reveal_media_file(Finder または Explorer で表示)、get_project_media_settings、set_project_media_settings(取り込み、スクラッチディスク、増加するファイル) |
| シーケンス | list_sequences、create_sequence(デフォルト設定、.sqpreset、またはクリップから作成)、open_sequence、get_sequence_settings、set_sequence_settings(フレームサイズ、フレームレート、ピクセルアスペクト、フィールド、編集モード、表示形式、サンプルレート、プレビュー、ビット深度、レンダリング品質、リニアカラー)、duplicate_sequence、delete_sequence、close_sequence、create_subsequence(サブシーケンスを作成)、set_sequence_times(イン点/アウト点、ゼロポイント、作業領域、再生ヘッド)、move_playhead(フレーム、編集点、ギャップ、マーカー、イン点/アウト点)、run_scene_edit_detection(カット、マーカー、またはサブクリップ)、get_sequence_properties、set_sequence_properties(カスタムプロパティ) |
| タイムライン | list_tracks(ビデオ、オーディオ、キャプション)、list_clips(または名前で検索)、insert_clip、overwrite_clip(任意でソース範囲を指定)、trim_clip(ソースのイン点/アウト点、シーケンスの開始/終了)、edit_clips(スリップ、ロール、スライド、再生ヘッドまでトリミング)、select_clips(指定したクリップ、すべて、なし、再生ヘッド位置、前方、後方、次、前)、fit_clips_to_frame(フレームサイズに合わせる)、move_clips、remove_clips(消去またはリップル削除)、set_clip_properties(名前、有効化)、set_track_properties(ミュート、名前変更)、insert_mogrt |
| マーカー | list_markers、add_marker、edit_marker(名前、コメント、種類、長さ、色、移動)、remove_markers(シーケンスまたはクリップのマーカー)、mark_clips(クリップにマーク、選択項目にマーク) |
| ソース | create_subclip、set_source_in_out(設定またはクリア。編集するオーディオ範囲のマークにも使用)、scale_to_frame_size、control_source_monitor(開く、再生、閉じる、マッチフレーム) |
| エフェクト | list_available_effects(ビデオエフェクト、オーディオエフェクト、ビデオトランジション)、list_clip_effects、apply_effect(一致する名前または表示名でビデオエフェクトを適用、表示名でオーディオエフェクトを適用)、remove_effect、set_effect_param、add_keyframes(補間を指定)、remove_keyframes、add_transition(開始、終了、または両方。長さ、片側のみ、置き換え)、remove_transition、set_clip_transform(モーションまたはベクトルモーション、不透明度、ブレンドモード)、copy_clip_effects(属性をペースト)、manage_source_effects(ソースクリップのエフェクト) |
| キーフレーム | jump_to_keyframe(次または前)、copy_keyframes(別のパラメーターまたはクリップへ)、retime_keyframes(アニメーションを拡大または縮小)、fade_clips(不透明度または音量のフェード) |
| カラー | set_lumetri_color(名前で基本補正、クリエイティブ、カラーホイール、HSL セカンダリ、ビネットの設定、またはインデックスで任意のパラメーターを指定)、set_clip_input_lut(入力 LUT の上書き) |
| オーディオ | set_clip_volume(ボリュームエフェクトのレベル)、adjust_clip_audio(音量を dB で変更、パンまたはバランスを調整) |
| グラフィックスとキャプション | list_graphics_templates(インストール済みの .mogrt ファイル)、insert_library_mogrt(Creative Cloud Library から挿入)、list_transcription_languages(および言語パック)、import_captions(SRT、SCC、MCC、DFXP、STL、XML) |
| トランスクリプト | transcribe_clip、export_transcript(返却、または .json への書き込み) |
| 書き出し | export_sequence(エンコーダープリセット、今すぐ書き出し、Media Encoder のキューまたは Premiere Pro のキューへ送信、全体またはイン点からアウト点まで、XMP、結果を読み込み)、encode_media(プロジェクト項目またはメディアファイルを Media Encoder のキューへ送信)、export_frame(PNG、JPEG、TIFF、DPX、EXR、…)、export_timeline(Final Cut Pro XML、OpenTimelineIO、AAF) |
| メタデータ | get_metadata(プロジェクトのメタデータと XMP)、set_metadata、get_metadata_display(プロジェクトパネルの列)、set_metadata_display(列、新しいスキーマフィールド) |
| アプリケーション | wait_for_event(プロジェクト、シーケンス、Media Encoder、書き出し、読み込みのイベント)、clear_media_cache、recover_project(クラッシュ後の自動保存コピー) |
| ユーティリティ | premiere_status、execute_premiere_code、help |
help({ tool }) は、任意のツールのパラメーターを説明します。 |
ほとんどのツールは Premiere Pro 25.6 で動作します。以下の機能にはそれ以降のバージョンが必要で、その旨が説明に記載されています:export_timeline(26.2、AAF は 26.3)、トラック名の変更(26.3)、export_sequence の startQueue と xmp(26.3)、set_sequence_settings のフレームレート(26.2)、close_sequence(26.2)、create_subclip(26.3)、ソースモニターの位置設定(26.3)、set_sequence_times の作業領域(26.5)、transcribe_clip と clear_media_cache(26.5)。古いバージョンでは、これらの呼び出しはバージョンを示すメッセージとともに失敗します。list_transcription_languages で言語を一覧表示する機能(26.3。指定したコードの確認はそれ以前のバージョンでも動作します)も同様です。
Premiere Pro の UXP API に対応する呼び出しがないため、以下の機能は提供していません:クリップのリンクとリンク解除、オーディオトランジション、プログラムモニターの再生、クリップ速度、クリップゲイン(Volume エフェクトの Level を除く)、キャプションテキストの編集、トラックターゲット設定、ネスト、メニューコマンド、取り消し、Lumetri の自動ボタン、Lumetri カーブ(RGB と色相・彩度のカーブポイントは単純なパラメーター値ではありません)。
作業の邪魔にならない設計
- 呼び出しごとに取り消しステップは 1 つです。 編集は
project.lockedAccess内で構築され、Premiere Pro の要件に従ってproject.executeTransactionで実行されます(26.3 以降)。そのため、各呼び出しは「編集」>「取り消し」に 1 つの項目として記録されます。Premiere Pro が記録しないいくつかの操作(再生ヘッド、トラックのミュート、作業領域、保存)については、その旨を明記しています。 - ダイアログは表示されません。 プロジェクトを開くときと閉じるときは、Premiere Pro の確認画面を無効にします。読み込み時には
suppressUIを渡します。 - スクリプトは一度に 1 つだけ実行します。 プラグインはスクリプトを順番に実行し、同時に 2 つ実行することはありません。
- タイムアウトの理由を示します。 Premiere Pro が
PREMIERE_SCRIPT_TIMEOUT_MS(デフォルトは 120 s)以内に応答しない場合、ダイアログが開いている可能性があることをエラーに示します。長時間かかる書き出しや文字起こしでは、この値を大きくしてください。 - スクリプトに未加工の入力は渡しません。 呼び出し元から渡されたすべての値を検証し、JSON リテラルとしてスクリプトに書き込みます。
設定
| 変数 | 用途 |
|---|---|
PREMIERE_WS_PORT | プラグインが接続する 127.0.0.1 のポートです。デフォルトは 3011 です。パネルにも同じポートを設定してください。 |
BRIDGE_TOKEN | 共有シークレットです。設定すると、接続時にプラグインからこの値を送信する必要があります。パネルに入力してください。InDesign ブリッジとは異なるトークンが必要な場合は、PREMIERE_BRIDGE_TOKEN が優先されます。 |
PREMIERE_ALLOWED_DIRS | 読み込み、保存、書き出しに使用できる追加ディレクトリです(macOS では : 区切り、Windows では ; 区切り)。 |
PREMIERE_SCRIPT_TIMEOUT_MS | スクリプトを待機する時間です。デフォルトは 120000 です。 |
PREMIERE_CONNECT_WAIT_MS | プラグインが接続するまで、呼び出しが失敗せずに待機する時間です。デフォルトは 4000 です。 |
セキュリティ
- ローカルのみ。 サーバーは
127.0.0.1で待ち受け、ほかのインターフェースでは待ち受けません。 - トークン。
BRIDGE_TOKENを設定していない場合、このマシン上のどのプログラムでも、プラグインが接続されていない間に、プラグインとしてポートに接続できます(その場合、スクリプトを受け取って応答できます)。また、以下で説明するHTTPエンドポイント経由でスクリプトを送信できます。他の人や信頼できないソフトウェアが使用するマシンでは、BRIDGE_TOKENを設定してください。トークンを設定すると、プラグインの最初のメッセージにトークンが含まれている必要があります(トークンが間違っている場合はコード4001で接続が閉じられ、5秒以内にメッセージが届かない場合はコード4002で閉じられます)。また、HTTPエンドポイントにはAuthorization: Bearer <token>が必要です。トークンは定時間比較されます。 - プラグインは1つのみ。 プラグインが接続されている間は、ほかの接続は正しいトークンを持っていても、コード4009で閉じられます。
- ウェブページは不可。
Originヘッダーを含むHTTPリクエスト(つまり、ブラウザのページからのリクエスト)は拒否されます。 - プラグインが実行できること。 パネルは、プラグインの権限でサーバーから送信された内容を実行します。権限にはPremiere Pro DOMへのアクセスとネットワークアクセスが含まれます(ポートを設定可能なため、マニフェストではすべてのドメインを許可していますが、プラグイン自体は
127.0.0.1にのみ接続します)。ファイルシステムへのアクセス権限は要求しません。Premiere Proが、サーバーによる確認済みのパスでファイルを読み書きします。execute_premiere_codeは、独自のコードを制限なく実行します。 - パネルはトークンを
localStorageに平文で保存します。
2つのMCPクライアントを同時に使用する
各MCPクライアントはサーバーの独自のコピーを起動しますが、ポートをリッスンできるプロセスは1つだけです。最初のプロセスがリッスンし、後から起動したプロセスは、別のサーバーコピーがポートを使用していることを検出すると(GET /statusで確認します)、HTTP経由でスクリプトをそのサーバーに転送します(トークンを使ってPOST /executeを実行します)。その後、両クライアントのスクリプトは、1つのプラグイン接続を介して一度に1つずつ実行されます。最初のサーバーが終了すると、もう一方のプロセスからの次の呼び出しがポートを引き継ぎ、パネルが接続するまでPREMIERE_CONNECT_WAIT_MSの時間だけ待機します。パネルは3秒以内に再接続します。
ポートを別のプログラムが使用している場合、呼び出しはその旨を示すメッセージとともに失敗します。別のPREMIERE_WS_PORTを選び、パネル側にも設定してください。トークンの異なる2つ目のコピーには、トークンが一致しないことが通知されます。
adobe-mcp-suiteでは、ポートは起動時ではなく、最初のPremiere Pro呼び出し時に開きます。
まだ確証が得られていない点
以下は Adobe の UXP リファレンスに基づいていますが、Premiere Pro で動作することはまだ確認されていません。
- プロジェクト項目。 ビンとクリップは
FolderItem.castとgetItems()の成功によって区別し、シーケンスはClipProjectItem.isSequence()で判定します。数値のProjectItem.typeは、その値が ドキュメント化されていないため、そのまま報告されます。 - クリップの移動。
move_clipsはオフセットをcreateMoveActionに渡しますが、リファレンスでは TickTime 引数についてしか説明されていません。 - キーフレームの時間。
add_keyframesはKeyframe.positionを設定します。クリップまたはシーケンスを基準とするかはドキュメント化されていないため、list_clip_effectsが報告する時間を使用してください。 - 音量。
set_clip_volumeは英語の表示名で Volume エフェクトとその Level パラメーターを検索します。adjust_clip_audioは Level にデシベル比を乗算するため、Level と dB の対応方法に依存せず、パンはエフェクトコントロールに表示される値(-100 から 100)で渡します。Panner がどのように値を保存するかは確認されていません。 - 名前によるエフェクトの検索。
set_clip_transform、fade_clips、copy_clip_effects、set_lumetri_colorは、英語の表示名(Motion、Opacity、Blend Mode、Lumetri Color およびその設定)でエフェクトとパラメーターを検索します。Premiere Pro で Lumetri の名前はどれも確認されておらず、Input LUT、Look、カラーホイール、HSL Secondary の範囲の値の型も確認されていません。エフェクトに存在しない名前が指定された場合、実際にある名前とともに報告されます。ブレンドモードは Blend Mode メニュー内の位置で指定します(Normal = 0)。blendModeIndexは生の値を受け取ります。 - クリップを基準とするキーフレーム。
jump_to_keyframe、copy_keyframes、copy_clip_effects、fade_clipsは、ExtendScript と同様に、キーフレームの時間をクリップのソース時間(In 点がクリップの最初のフレーム)として扱います。アニメーションを有効にすると、それ自体でキーフレームが追加されるかどうかは不明です。 - ソースクリップのエフェクト。
manage_source_effectsを使った適用または削除はドキュメント化されていません。このツールはエフェクト数が変化したことを確認します。 - 書き出しフレーム。
exportSequenceFrameはファイル名とフォルダーを受け取ります。サーバーはベース名とフォルダーを別々に渡します。 - メディア。 レイヤー付きファイルは統合して読み込まれます(
importFilesにレイヤーのオプションはありません)。EDL、AAF、FCP XML は、すべてのファイルと同様にimportFilesを通じて処理されます。modify_footageは、FootageInterpretationオブジェクトが持つFIELD_TYPE_*とALPHACHANNEL_*の値を使ってフィールド順とアルファを設定します。set_project_media_settingsは、リファレンスでScratchDiskFolder定数しか示されていないスクラッチディスクのフォルダーパスを渡します。 ビンの検索クエリは指定されたとおりに渡されますが、構文はドキュメント化されていません。 - Media Encoder のジョブ。
encode_mediaは Adobe のサンプルと同様に、範囲を 0(全体)、1(イン点からアウト点まで)、2(ワークエリア)として渡します。ファイル全体の場合は、無効な終了時刻(TickTime をゼロで割って作成します。リファレンスによるとTIME_INVALIDが返されます)を渡します。サンプルではTickTime.TIME_INVALIDを渡しています。 - イベント。
wait_for_eventがイベントについて報告する内容は、イベントオブジェクトが持つプレーンな値です。リファレンスにはそれらの説明がありません。 - 自動保存のコピー。
recover_projectは、自動保存用スクラッチディスク内にあるプロジェクト名のコピーを探します。Premiere Pro が既定値をシンボル名で報告する場合は、プロジェクトの隣にある「Adobe Premiere Pro Auto-Save」も探します。 - パネルの WebSocket。 Premiere Pro の UXP が
Originヘッダーを送信するか、ポートを含むより限定的なnetwork.domainsエントリーが機能するかは不明です。premiere_statusは確認したオリジンを表示します。
確認できた内容を、Premiere Pro のバージョンとともに報告してください。
ArtCraft(FilmCraft)のサポート
このサーバーは、Storytold のFilmCraftノンリニアタイムライン動画編集ソフトウェア向けに、透過的なアダプターサポートを提供します。Premiere Pro がインストールされていないか実行されていない場合、または PREMIERE_TARGET=craft(もしくは ADOBE_TARGET=craft)が設定されている場合、互換性のあるツールは FilmCraft のループバックブリッジプロトコル(デフォルトでは 127.0.0.1:9876、または FILMCRAFT_CONTROL_PORT)に直接ルーティングされます。
開発
npm test # bridge over real sockets, plugin runtime, definitions, arguments, scripts, static audit
npm run audit # the audit alone, with findings listed
npm run check # syntax check
監査では、すべてのツールをサンプル引数で実行し、生成された各スクリプトを解析します。すべての ppro.<Class>、静的メンバー、コンストラクター、および ppro.Constants.<Enum>.<VALUE> は、tests/fixtures/premiere-uxp-api.json に存在する必要があります。それ以外のメンバーは、いずれかの UXP クラスまたはプレーンな JavaScript のメンバーである必要があります。また、25.6 より後に追加されたメンバーを使うツールは、必要なバージョンを宣言する必要があります。
フィクスチャには、Adobe の Premiere 向け UXP リファレンス(AdobeDocs/uxp-premiere-pro、Apache-2.0)に基づいて、ケイパビリティアトラスに記録された 67 個のクラスとそのメンバーおよび定数が一覧されています。npm run fixtures で再生成できます(scripts/generate-fixtures.js を参照)。tests/fixtures/feature-ids.json には、ツールが申告できるアトラスの機能 ID が一覧されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。