mcpField
A
adobe-mcp

adobe-mcp

ローカル
github.com/AJSMontyメディア・デザイン85 週間前に更新

adobe-mcp について

adobe-mcpはmacOS向けのMCPサーバーで、Adobe Creative Cloudアプリを操作し、BlenderやSubstance 3D Painterとも連携します。スクリプト編集、シーン確認、レンダリング、制作スクリプトを扱う制作ワークフロー向けです。

主な機能

  1. 01After Effectsなどのスクリプト実行
  2. 02プロジェクト確認とプレビュー出力
  3. 03BlenderとSubstanceのPython処理
  4. 04テクスチャの検索・取得・適用
  5. 05知見の検索と継続的な蓄積

活用シーン

  1. 01編集の自動化とプロジェクト構成の確認
  2. 02コンポジションのプレビューとアニメーション出力
  3. 033Dショットの制作とテクスチャ設定
  4. 04スクリプトの修正方法や制作手法の検索

MCP 対応

stdio経由でMCPクライアントに、スクリプト実行、プロジェクト状態の取得、レンダリング、テクスチャ処理などの制作アプリ操作ツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"ajsmonty-adobe": {
"command": "npx",
"args": [
"-y",
"@ajsmonty/adobe-mcp"
],
"env": {
"ADOBE_MCP_WORKSPACE": "<ADOBE_MCP_WORKSPACE>"
}
}
}
}
起動コマンドnpx -y @ajsmonty/adobe-mcp
設定が必要な環境変数
ADOBE_MCP_WORKSPACEDirectory for rendered assets, the asset registry, and learned lessons (default: ~/AdobeMCP)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@ajsmonty/adobe-mcp1.1.1

ツール

28

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
codestringはいExtendScript の関数本体です。`return` で結果を返します。
timeout_secondsnumberいいえ最大秒数(デフォルト:120)。

詳細

adobe-mcp — Adobe Creative Cloud MCP サーバー(macOS)

Claude から After Effects、Photoshop、Illustrator、Premiere Pro(および Character Animator のパペット制作)を操作し、3D のルック開発やシネマティックアニメーションでは Blender と Substance 3D Painter も操作します。ツール一覧の全容と今後の予定については、ROADMAP.md をご覧ください。 ブリッジ:MCP クライアント → このサーバー → AppleScript DoScript → AE → 一時結果ファイル → 戻る。

ツール

ツール目的
run_extendscript任意の JSX を実行します。return <value> は JSON として返されます。自動的に Undo グループにまとめられます。
get_project_stateプロジェクト項目のツリー、または 1 つのコンポジションのレイヤーの詳細(comp_name)を取得します。
save_frameコンポジションのフレームを PNG にレンダリングし、Claude が作業内容を確認できるようインラインで返します。
list_ae_scriptsscripts/ にある .jsx/.jsxbin ツールを、ヘッダーコメントに記載された説明とともに一覧表示します。
run_ae_script[ファイル]→[スクリプト]→[スクリプトファイルを実行]のように、ライブラリスクリプトを実行します。

3D とシネマティック VFX のパイプライン(Blender + Substance 3D Painter)

2 つの Python ブリッジにより、サーバーを ExtendScript の範囲を超えて拡張し、1 つのエージェントでショットのブロッキングから最終コンポジットまでを行えます。

                  ┌──► Blender ──────────► Python (bpy): live add-on socket :9877, or headless `blender -b`
MCP client ───────┼──► Substance Painter ─► Python: remote scripting HTTP :60041 (/run.json)
                  └──► After Effects ────► ExtendScript via osascript (as above)
ツール目的
blender_run_pythonbpy コードを実行します(result = ... は JSON として返されます)。mode:live(実行中の Blender)、background(ヘッドレス、blend_file/save_as は任意)、auto。
blender_get_stateシーンの概要:フレーム範囲、fps、エンジン、モーションブラー、カメラのレンズ/被写界深度、パス、すべてのオブジェクト。
blender_render_frameシーンカメラを通して低サンプルのプレビューフレームをレンダリングし、インラインで返します。
blender_render_animationシーンの出力設定でフレーム範囲をレンダリングし、出力をアセットとして登録します。
substance_run_pythonSubstance 3D Painter で Python(substance_painter.*)を実行します。
substance_get_stateテクスチャセット、解像度、スタック、チャンネル、ルートレイヤーを取得します。
substance_bake_mesh_maps非同期のメッシュマップベイクを開始します(曲率/AO はスマートマテリアルに使用されます)。
substance_export_texturesプリセット(デフォルトは PBR Metallic Roughness)を使って PBR マップをエクスポートし、各マップを登録します。
vfx_plan_creature_shot簡単な説明(「カメラの前を歩きながら首を回す、フォトリアルな恐竜」など)から、物理的に導き出したタイミングと各段階のツール呼び出し順を作成します。

無料の CC0 テクスチャおよび HDRI ライブラリ(Poly Haven、ambientCG): どちらも公開している素材はすべてパブリックドメインなので、クレジット表記なしで商用利用できます。

ツール目的
texture_search両ライブラリで PBR マテリアル(type=texture)または HDRI(type=hdri)を検索し、ID、タグ、サムネイルを返します。
texture_download1k~8k のアセットを <workspace>/textures にダウンロードします(キャッシュされます)。マップ名は <id>_BaseColor/_Roughness/_Normal/_Height/_Metallic/_ARM/_AO に変更されます。
blender_apply_textureライブラリアセットまたはローカルのマップフォルダー(例:Substance のエクスポート)から Principled マテリアルを作成して割り当てます。正しいカラー空間、OpenGL 法線、真のディスプレイスメント、ARM の分解、実世界の tile_m スケール、UV のないメッシュ用のトライプレーナープロジェクションに対応します。
blender_set_hdriライブラリの HDRI でシーンを照らし、プレートに合わせます(強度、回転)。

ダウンロードしたフォルダーは、Creature_Walk_Cinematic.py の texture_dir としても使用できます。必要に応じて、ミラーを参照するよう POLYHAVEN_API/AMBIENTCG_API を設定してください。

ライブラリスクリプト(run_script で実行し、パラメーターは params 経由で指定):

  • scripts/blender/Creature_Walk_Cinematic.py:物理演算に基づいてタイミングを決める、重量感のある二足歩行です。速度はフルード数、歩幅は Alexander(1976)に基づき、足は滑らずに接地したままです。首と尾は関節ごとに3フレーム遅れ、頭部は視線が安定するよう制御され、レンズのほうを向き、胸部は呼吸に合わせて動きます。カメラは、オペレーターの遅れと着地時の揺れを加えた手持ち式リグです。レンダー設定は、180°シャッター、シャドウキャッチャーを使用する Cycles で、ビューティー/シャドウ/ミストの PNG シーケンスと、マルチレイヤー EXR を出力します。Blender 5.0.1(bpy)でヘッドレス動作をテスト済みです。4.x の API にも対応しています。
  • scripts/substance/Creature_Skin_LookDev.py:任意でベイクした後、マットな「aged scales」ベース、キャビティマスクを適用したウェットネスレイヤー、光沢のある目と口のセットを、すべて1回の取り消し操作で適用します。書き出しも任意です。
  • scripts/ae/Cinematic_3D_Composite.jsx:各パスを読み込み、シャドウを乗算し、プリコンポーズ済みのエッジライトラップを加え、ミストからデプスヘイズを生成し、任意でデプスレンズブラーを適用して、CG のみにソフト化とグレインを加えます。

セットアップ:

  • Blender ライブモード:編集 → プリファレンス → アドオン → ディスクからインストール → bridges/blender/adobe_mcp_bridge.py の順に進み、有効にします(127.0.0.1:9877 で待ち受けます。BLENDER_MCP_PORT で変更できます)。バックグラウンドモードではアドオンは不要です。/Applications/Blender*.app または PATH 上の blender を検出します(BLENDER_PATH で変更できます)。
  • Substance 3D Painter:リモートスクリプティングを有効にして起動します。 open -a "Adobe Substance 3D Painter" --args --enable-remote-scripting(ポートは SUBSTANCE_PAINTER_PORT で変更できます)。
  • どちらのブリッジもローカル専用で、認証はありません。ポートに接続できるマシン上のすべてのものが、アプリ内で Python を実行できます。作業が終わったら、Blender アドオンを無効にするか、Painter を終了してください。

ナレッジシステム(サーバーは使いながら学習します)

サーバーには、実際の制作セッションから収集した情報をもとに整備されたナレッジベース(knowledge/lessons.jsonl)が付属しています。matchName に関する注意点、API の癖、パラメーター型の落とし穴、手法(ブループリントのライン抽出、シームレスな風のループ、QE トランジション、Auto Reframe など)が登録されています。

次の3つの仕組みで、ナレッジベースの有用性と拡充を保っています。

  1. 注意点の自動提示 — *_run_extendscript の呼び出しが失敗するたびに、そのエラーとレッスンのキーワードを照合します。一致した内容は、クライアントに表示されるエラーメッセージに追加されます(たとえば、Premiere で Illegal Parameter type が発生すると、autoReframeSequence の文字列プリセットに関する修正方法がエラーとともに表示されます)。失敗は、今後のレッスン作成に使う素材として $WORKSPACE/error-log.jsonl にも記録されます。
  2. knowledge_search/knowledge_add ツール — エージェントは、通常とは異なるスクリプティングを試す前にレッスンを参照し、自動提示されなかった新たな注意点を解決したときは、それを記録します。実行時のレッスンは $WORKSPACE/learned.jsonl に保存されます(リポジトリの更新後も保持され、インストールごとに管理されます)。
  3. サーバーの指示とツールの説明 — 明示的なドキュメント指定、視覚的な検証、レンダーのタイムアウト処理、ES3 の制限など、特に重要なルールは MCP の指示と各ツールの説明に組み込まれているため、新規インストール時から適切に動作します。

アプリごとの scripts/ ライブラリは、同じ考え方を実行可能な形にしたものです。再利用可能なスキル(list_scripts/run_script)として、ブループリントのライン抽出(PS)、シームレスな風のループとキネティックタイポグラフィのリグ(AE)、ワンコールの縦向き Auto Reframe(Premiere)を提供します。

インストール

オプション A — Claude Desktop と Cowork でワンクリック(Node 不要)
  1. 操作したい Adobe アプリをインストールしておきます。After Effects では、「Preferences → Scripting & Expressions → "Allow Scripts to Write Files and Access Network"」を有効にします。
  2. Releases から最新の adobe-mcp-x.y.z.mcpb をダウンロードし、ダブルクリックします(または Claude Desktop → Settings → Extensions にドラッグします)。Claude Desktop には Node ランタイムが同梱されているため、ほかにインストールするものはありません。
  3. 使用します。各アプリで最初にツールを呼び出すとき、macOS の Automation 権限を求めるプロンプトが一度だけ表示されるので、Allow をクリックします。

アップグレードする場合:まず古いバージョンを削除し(Settings → Extensions → Adobe Creative Cloud → Uninstall)、その後、新しい .mcpb をインストールしてください。既存のバージョンに上書きインストールすると、新しいバージョン番号が表示されても古いファイルが残ることがあります。

オプション B — npm 経由で任意の MCP クライアントを使用

システム全体に Node 18 以降がインストールされている必要があります(nodejs.org のインストーラー、または brew install node を使用してください。GUI アプリからは nvm 管理のインストールが見えないことがよくあります)。クローンも npm install も不要です。以下の各クライアント設定は、次のコマンドを実行するだけです。

npx -y @ajsmonty/adobe-mcp
オプション C — ソースから(コントリビューター向け)
git clone https://github.com/AJSMonty/adobe-mcp.git ~/tools/adobe-mcp
cd ~/tools/adobe-mcp && npm install
# point your client at: node ~/tools/adobe-mcp/server.mjs

Premiere Pro のみ:ppro_* ツールを使うには、同梱の CEP パネルを一度インストールする必要があります。cep/mcp-bridge を ~/Library/Application Support/Adobe/CEP/extensions/ にコピーして PlayerDebugMode を有効にし(「Notes」を参照)、Premiere 内で Window → Extensions → MCP Bridge を開きます。

MCP クライアントへの接続

これは標準的な stdio MCP サーバーです。MCP 対応クライアントであれば、どれでも操作できます(Claude Code、 Claude Desktop、Cursor、Windsurf、VS Code Copilot エージェントモード、Zed、Cline、Goose、など)。 以下はすべて、クライアントの設定形式で同じワンライナーを表したものです。 stdio 経由で npx -y @ajsmonty/adobe-mcp を実行します(ソースのチェックアウトでは node .../server.mjs)。

Claude Code
claude mcp add --scope user adobe -- npx -y @ajsmonty/adobe-mcp

--scope user を指定すると、すべてのプロジェクトで使用できます。チームと .mcp.json を共有するには、リポジトリ内で --scope project を使用してください。確認するには claude mcp list を実行します。

Claude Desktop

Settings → Developer → Edit Config を開き、claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "adobe": {
      "command": "npx",
      "args": ["-y", "@ajsmonty/adobe-mcp"]
    }
  }
}

Claude Desktop を完全に終了してから、再度開きます。

Cursor

Settings → MCP → Add server を選択するか、~/.cursor/mcp.json(グローバル)または .cursor/mcp.json(プロジェクトごと)を編集します。

{
  "mcpServers": {
    "adobe": {
      "command": "npx",
      "args": ["-y", "@ajsmonty/adobe-mcp"]
    }
  }
}

Settings → MCP で有効にしてから、Agent モード(composer)を使用します。ツール呼び出しの際に承認プロンプトが表示されます。

VS Code(Copilot エージェントモード)

ワークスペース内の .vscode/mcp.json(または「MCP: Add Server」コマンドでユーザーの mcp.json)を使用します。

{
  "servers": {
    "adobe": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@ajsmonty/adobe-mcp"]
    }
  }
}
Windsurf

~/.codeium/windsurf/mcp_config.json に設定します。形式は上記の Claude Desktop/Cursor と同じ mcpServers です。

その他のクライアント

クライアントが stdio 経由の MCP に対応していれば、npx -y @ajsmonty/adobe-mcp を指定するだけで使用できます。

クライアントに関する注意事項
  • macOS の Automation 権限はホストアプリごとに必要です。 新しいクライアント(Cursor、VS Code、別のターミナルなど)から最初にツールを呼び出すと、Adobe アプリを操作するための Automation プロンプトが表示されます。System Settings → Privacy & Security → Automation で、ホストごとに一度承認してください。
  • インライン画像プレビュー(ae_save_frame、ps_save_preview、ai_save_preview、 ppro_save_frame)は、MCP の画像コンテンツを返します。Claude クライアントと Cursor ではインラインで表示されます。画像を表示できないクライアントでもメタデータのテキストは取得でき、モデルはファイルをエクスポートしてディスクから読み取る方法に切り替えられます。
  • サーバーの指示(作業ルールとナレッジベースの参照先)は、MCP の instructions フィールドを通じて送信されます。ほとんどのクライアントはこれをモデルに渡しますが、渡さない場合でも、同じルールがツールの説明と knowledge_search に組み込まれています。

スクリプトライブラリ(「スキル」)

.jsx / .jsxbin ファイルを scripts/ に配置すると、list_ae_scripts / run_ae_script からすぐに利用できます。

  • アクションスクリプト(現在の選択項目を操作し、UI は使用しません)はヘッドレスで実行されます。まず run_extendscript で選択項目を設定してください。
  • ScriptUI パネルスクリプトは、ユーザーがクリックできるように AE ウィンドウ内にパレットを開きます。
  • コア関数を分離できる通常の .jsx パネルは、UI 起動部分を取り除いてソースを評価することで、ヘッドレスで操作できる場合があります。

⚠️ scripts/ にはサードパーティ製または購入したツールが含まれる場合があります。再配布権を確認していない場合は、このリポジトリを非公開にするか、scripts/ を .gitignore に追加してください。

注意事項

  • AE アプリは /Applications から自動検出されます(新しい「Adobe After Effects *」)。環境変数 AE_APP_NAME で上書きできます。たとえば、Desktop 設定では "env": {"AE_APP_NAME": "Adobe After Effects 2025"}、claude mcp add では --env AE_APP_NAME=... を指定します。
  • AE をプロジェクトとともに開いておく必要があります(空のデフォルトプロジェクトでも構いません)。
  • タイムアウトが発生する場合は、通常、AE にモーダルダイアログが表示されています。閉じてください。
  • save_frame には AE 2022 以降が必要です。

ExtendScript の注意点(苦労して学んだこと)

  • ExtendScript は ES3 です。アロー関数、テンプレートリテラル、let / const、JSON、Array.map は使用できません。
  • コレクション(project.items、comp.layers、プロパティグループ)は 1 始まりです。
  • エフェクトパラメーターには表示名ではなく matchName("ADBE Glo2-0002")でアクセスしてください。表示名は重複することがあります。
  • .property() の検索に失敗すると、文字列化自体が例外を投げる ネイティブエラーが発生します。エラーハンドラーも停止しないよう、e.toString() を独自の try/catch で囲んでください。
  • テキストレイヤーはソーステキストに合わせて自動で名前が変更されます。安定した検索が必要な場合は、名前を変更してください。
  • カメラでは、ポイント・オブ・インタレストは アンカーポイントのスロット(ADBE Anchor Point)にあります。
  • 空間プロパティでは、次元に関係なく、setTemporalEaseAtKey に 1 要素のイーズ配列が必要です。
  • 子レイヤーを回転したレイヤーに親子付けすると、補正が子レイヤーのトランスフォームに適用されます。向きを継承させる場合は、親子付け後に子レイヤーの回転をゼロにしてください。
  • グリッドエフェクトでは、アンカーをアニメーション化する前に Size From(ADBE Grid-0002 = 3)を設定してください。設定しないと、「スクロール」でセルのサイズが変更されてしまいます。

スモークテスト

AE を開いた状態で、Claude に次のように依頼してください。「get_project_state を使って AE プロジェクトの内容を表示してから、1920x1080 のコンポを作成し、『Test』という名前を付け、見出しのテキストレイヤーを追加して、フレームを表示してください。」

コントリビューションとガバナンス

PR を歓迎します。CONTRIBUTING.md をご覧ください。main と dev へのすべてのマージには、メンテナーの承認が必要です(ブランチ保護 + CODEOWNERS)。ナレッジベース向けの知見は、最も手軽で価値の高い貢献です。インストールする前に SECURITY.md をお読みください。このサーバーは仕様上、Adobe アプリ内でスクリプトを実行します。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。