概要
インストール
ツールリスト
コンテンツ詳細
代替品
什么是Photoshop MCP Server?
Photoshop MCP Serverは、AIアシスタントとAdobe Photoshopをつなぐ架け橋です。自然言語コマンド(例:「1920x1080のドキュメントを作成し、青色の背景と中央に文字を追加する」)でPhotoshopを制御し、デザインタスクを自動的に実行できます。簡単な画像編集から複雑なデザインワークフローまで、会話で完了することができます。如何使用Photoshop MCP Server?
使い方は非常に簡単です。1) AIツール(Claude DesktopまたはCursor)でMCPサーバーを設定します。2) 自然言語でデザイン操作を説明します。3) AIアシスタントが自動的に対応するPhotoshop機能を呼び出してタスクを完了します。複雑なPhotoshopスクリプトやAPIを学ぶ必要はなく、人と会話するように要求を説明するだけです。适用场景
デザイナー、コンテンツクリエイター、マーケティング担当者、ソーシャルメディア運用者、およびPhotoshopを頻繁に使用し、効率を上げたいユーザーに適しています。特に、大量の画像処理、ソーシャルメディア素材の作成、簡単なポスターのデザイン、高速な画像修正などの繰り返しタスクに最適です。主要功能
如何使用
使用案例
常见问题
相关资源
インストール
{
"mcpServers": {
"photoshop": {
"command": "npx",
"args": ["-y", "@alisaitteke/photoshop-mcp"],
"env": {
"LOG_LEVEL": "1"
}
}
}
}🚀 Photoshop MCP Server
このプロジェクトは非公式でコミュニティによってメンテナンスされており、Adobe Inc. とは関係がなく、承認もされていません。
このModel Context Protocol (MCP) サーバーは、ClaudeやCursorなどのAIアシスタントがAdobe Photoshopをプログラムで制御できるようにします。これにより、IDEで作業しながら自然言語コマンドを使ってデザインを作成し、画像を操作し、Photoshopのワークフローを自動化することができます。
🎨 50以上のツール | 🖥️ クロスプラットフォーム | 📦 NPX対応 | 🔧 ExtendScript API | ⏮️ 元に戻す/やり直し
✨ 主な機能
- ✅ WindowsとmacOSの両方で動作
- ✅ Photoshop 2012 - 2025+をサポート
- ✅ ExtendScript API:AppleScript/COMオートメーションを通じた汎用的な互換性
- ✅ 自動検出:システム上のPhotoshopのインストールを自動的に検出
- ✅ 50以上のツール:包括的なPhotoshopの自動化
- ✅ ドキュメント管理:ドキュメントの作成、開く、保存、閉じる、トリミング
- ✅ レイヤー操作:レイヤーの作成、削除、複製、マージ、変形
- ✅ レイヤープロパティ:不透明度、ブレンドモード、可視性、ロック
- ✅ テキスト書式設定:フォント、サイズ、色、配置の制御
- ✅ 画像配置:画像の配置、ファイルの開き、ドキュメントに合わせる
- ✅ フィルター:ガウシアンブラー、シャープネス、ノイズ、モーションブラー
- ✅ 色調整:明るさ/コントラスト、色相/彩度、自動レベル/コントラスト
- ✅ 選択範囲とマスク:矩形選択、レイヤーマスク
- ✅ 履歴管理:元に戻す/やり直しの操作、履歴状態の表示
- ✅ アクション:記録されたアクションの再生、カスタムスクリプトの実行
- ✅ 自動ラスタライズ:必要に応じてレイヤーを自動的にラスタライズ
- ✅ コンテキスト追跡:各操作後のドキュメント/レイヤーの状態を返し、AIがコンテキストを認識できるようにする
📦 インストール
NPXを使用する(推奨)
インストールは不要です!MCPクライアントを設定するだけです。
npx @alisaitteke/photoshop-mcp
ソースからインストール
git clone https://github.com/yourusername/photoshop-mcp.git
cd photoshop-mcp
npm install
npm run build
設定
Cursor用
Cursorの設定(.cursor/config.json またはワークスペース設定)に追加します。
{
"mcpServers": {
"photoshop": {
"command": "npx",
"args": ["-y", "@alisaitteke/photoshop-mcp"],
"env": {
"LOG_LEVEL": "1"
}
}
}
}
Claude Desktop用
Claude Desktopの設定(macOSでは ~/Library/Application Support/Claude/claude_desktop_config.json、Windowsでは %APPDATA%\Claude\claude_desktop_config.json)に追加します。
{
"mcpServers": {
"photoshop": {
"command": "npx",
"args": ["-y", "@alisaitteke/photoshop-mcp"],
"env": {
"LOG_LEVEL": "1"
}
}
}
}
環境変数
PHOTOSHOP_PATH:(オプション)カスタムのPhotoshopインストールパスを指定LOG_LEVEL:ログレベル(0=DEBUG、1=INFO、2=WARN、3=ERROR)
利用可能なツール
接続と情報
photoshop_ping
Photoshopへの接続をテストします。
// 例: Photoshopがアクセス可能か確認
photoshop_ping()
photoshop_get_version
Photoshopのバージョン情報を取得します。
// 例: バージョン詳細を取得
photoshop_get_version()
ドキュメント管理
photoshop_create_document
新しいPhotoshopドキュメントを作成します。 パラメーター:
width(数値、必須):ドキュメントの幅(ピクセル)height(数値、必須):ドキュメントの高さ(ピクセル)resolution(数値、オプション):DPI解像度(デフォルト: 72)colorMode(文字列、オプション):カラーモード - RGB、CMYK、またはグレースケール(デフォルト: RGB)
// 例: 1920x1080のRGBドキュメントを作成
photoshop_create_document({
width: 1920,
height: 1080,
resolution: 72,
colorMode: "RGB"
})
photoshop_get_document_info
アクティブなドキュメントの情報を取得します。
// 例: 現在のドキュメントの詳細を取得
photoshop_get_document_info()
photoshop_save_document
アクティブなドキュメントを保存します。 パラメーター:
path(文字列、必須):保存先の完全なパスformat(文字列、オプション):PSD、JPEG、またはPNG(デフォルト: PSD)quality(数値、オプション):JPEGの品質(1 - 12、デフォルト: 8)
// 例: JPEGとして保存
photoshop_save_document({
path: "/Users/username/Desktop/output.jpg",
format: "JPEG",
quality: 10
})
photoshop_close_document
アクティブなドキュメントを閉じます。 パラメーター:
save(ブール値、オプション):閉じる前に保存するかどうか(デフォルト: false)
// 例: 保存せずに閉じる
photoshop_close_document({ save: false })
レイヤー操作
photoshop_create_layer
新しいレイヤーを作成します。 パラメーター:
name(文字列、オプション):レイヤー名
// 例: 名前付きのレイヤーを作成
photoshop_create_layer({ name: "Background" })
photoshop_delete_layer
アクティブなレイヤーを削除します。
// 例: 現在のレイヤーを削除
photoshop_delete_layer()
photoshop_create_text_layer
テキストレイヤーを作成します。 パラメーター:
text(文字列、必須):テキスト内容x(数値、オプション):X座標(ピクセル、デフォルト: 100)y(数値、オプション):Y座標(ピクセル、デフォルト: 100)fontSize(数値、オプション):フォントサイズ(ポイント、デフォルト: 24)
// 例: テキストレイヤーを作成
photoshop_create_text_layer({
text: "Hello World",
x: 200,
y: 150,
fontSize: 48
})
photoshop_fill_layer
アクティブなレイヤーを単色で塗りつぶします。 パラメーター:
red(数値、必須):赤色成分(0 - 255)green(数値、必須):緑色成分(0 - 255)blue(数値、必須):青色成分(0 - 255)
// 例: 青色で塗りつぶす
photoshop_fill_layer({
red: 0,
green: 100,
blue: 255
})
photoshop_get_layers
アクティブなドキュメント内のすべてのレイヤーのリストを取得します。
// 例: すべてのレイヤーをリスト表示
photoshop_get_layers()
photoshop_set_layer_opacity
アクティブなレイヤーの不透明度を設定します。 パラメーター:
opacity(数値、必須):不透明度(0 - 100)
// 例: 不透明度を75%に設定
photoshop_set_layer_opacity({ opacity: 75 })
photoshop_set_layer_blend_mode
アクティブなレイヤーのブレンドモードを設定します。 パラメーター:
blendMode(文字列、必須):ブレンドモード(NORMAL、MULTIPLY、SCREEN、OVERLAYなど)
// 例: ブレンドモードを乗算に設定
photoshop_set_layer_blend_mode({ blendMode: "MULTIPLY" })
利用可能なブレンドモード: NORMAL、DISSOLVE、DARKEN、MULTIPLY、COLORBURN、LINEARBURN、DARKERCOLOR、LIGHTEN、SCREEN、COLORDODGE、LINEARDODGE、LIGHTERCOLOR、OVERLAY、SOFTLIGHT、HARDLIGHT、VIVIDLIGHT、LINEARLIGHT、PINLIGHT、HARDMIX、DIFFERENCE、EXCLUSION、SUBTRACT、DIVIDE、HUE、SATURATION、COLOR、LUMINOSITY
photoshop_set_layer_visibility
アクティブなレイヤーを表示または非表示にします。 パラメーター:
visible(ブール値、必須):可視状態
// 例: レイヤーを非表示にする
photoshop_set_layer_visibility({ visible: false })
photoshop_set_layer_locked
アクティブなレイヤーをロックまたはロック解除します。 パラメーター:
locked(ブール値、必須):ロック状態
// 例: レイヤーをロックする
photoshop_set_layer_locked({ locked: true })
photoshop_rename_layer
アクティブなレイヤーの名前を変更します。 パラメーター:
name(文字列、必須):新しいレイヤー名
// 例: レイヤーの名前を変更
photoshop_rename_layer({ name: "Hero Image" })
photoshop_duplicate_layer
アクティブなレイヤーを複製します。 パラメーター:
newName(文字列、オプション):複製されたレイヤーの名前
// 例: 新しい名前でレイヤーを複製
photoshop_duplicate_layer({ newName: "Background Copy" })
photoshop_merge_visible_layers
すべての可視レイヤーを1つにマージします。
// 例: 可視レイヤーをマージ
photoshop_merge_visible_layers()
photoshop_flatten_image
すべてのレイヤーを1つの背景レイヤーに平坦化します。
// 例: 画像を平坦化
photoshop_flatten_image()
photoshop_rasterize_layer
アクティブなレイヤーをラスタライズします(テキスト/スマートオブジェクトを通常のレイヤーに変換)。
// 例: レイヤーをラスタライズ
photoshop_rasterize_layer()
レイヤーの並び順
photoshop_move_layer_to_position
アクティブなレイヤーを別のレイヤーに対して移動します。 パラメーター:
targetLayerName(文字列、必須):参照レイヤーの名前position(文字列、必須):ABOVE、BELOW、TOP、またはBOTTOM
// 例: レイヤーを「Background」の上に移動
photoshop_move_layer_to_position({
targetLayerName: "Background",
position: "ABOVE"
})
photoshop_move_layer_to_top
アクティブなレイヤーをレイヤースタックの一番上に移動します。
// 例: 一番上に移動
photoshop_move_layer_to_top()
photoshop_move_layer_to_bottom
アクティブなレイヤーをレイヤースタックの一番下に移動します。
// 例: 一番下に移動
photoshop_move_layer_to_bottom()
photoshop_move_layer_up
アクティブなレイヤーを1つ上に移動します。
// 例: 上に移動
photoshop_move_layer_up()
photoshop_move_layer_down
アクティブなレイヤーを1つ下に移動します。
// 例: 下に移動
photoshop_move_layer_down()
レイヤーの変形
photoshop_fit_layer_to_document
アクティブなレイヤーをドキュメントのキャンバスにアスペクト比を維持しながら合わせます。 パラメーター:
fillDocument(ブール値、オプション):trueの場合、キャンバス全体を埋めます(トリミングされる場合があります)。falseの場合、キャンバス内に収まります(余白がでる場合があります)。デフォルト: false
// 例: レイヤーをキャンバス内に合わせる
photoshop_fit_layer_to_document({ fillDocument: false })
// 例: キャンバス全体を埋める(必要に応じてトリミング)
photoshop_fit_layer_to_document({ fillDocument: true })
photoshop_scale_layer
アクティブなレイヤーをパーセンテージで拡大または縮小します。 パラメーター:
scalePercent(数値、必須):拡大/縮小率(例: 50は50%、200は200%)centerAnchor(ブール値、オプション):中心から拡大/縮小するかどうか(true)または左上から(false)。デフォルト: true
// 例: 150%に拡大
photoshop_scale_layer({
scalePercent: 150,
centerAnchor: true
})
photoshop_move_layer
アクティブなレイヤーを指定されたオフセットで移動します。 パラメーター:
deltaX(数値、必須):水平方向のオフセット(ピクセル)deltaY(数値、必須):垂直方向のオフセット(ピクセル)
// 例: レイヤーを右に100px、下に50px移動
photoshop_move_layer({
deltaX: 100,
deltaY: 50
})
photoshop_rotate_layer
アクティブなレイヤーを回転させます。 パラメーター:
degrees(数値、必須):回転角度(正の値は時計回り)
// 例: 時計回りに45度回転
photoshop_rotate_layer({ degrees: 45 })
フィルター
photoshop_apply_gaussian_blur
アクティブなレイヤーにガウシアンブラーフィルターを適用します。 パラメーター:
radius(数値、必須):ブラー半径(ピクセル、0.1 - 250)
// 例: 10pxのブラーを適用
photoshop_apply_gaussian_blur({ radius: 10 })
photoshop_apply_sharpen
アンシャープマスク(シャープネス)フィルターを適用します。 パラメーター:
amount(数値、必須):シャープネスの量(パーセント、1 - 500)radius(数値、必須):半径(ピクセル、0.1 - 250)threshold(数値、オプション):閾値レベル(0 - 255、デフォルト: 0)
// 例: 画像をシャープにする
photoshop_apply_sharpen({
amount: 100,
radius: 1.5,
threshold: 0
})
photoshop_apply_noise
ノイズを追加するフィルターを適用します。 パラメーター:
amount(数値、必須):ノイズの量(パーセント、0.1 - 400)distribution(文字列、オプション):UNIFORMまたはGAUSSIAN(デフォルト: UNIFORM)monochromatic(ブール値、オプション):モノクロノイズ(デフォルト: false)
// 例: ノイズを追加
photoshop_apply_noise({
amount: 10,
distribution: "GAUSSIAN",
monochromatic: false
})
photoshop_apply_motion_blur
モーションブラーフィルターを適用します。 パラメーター:
angle(数値、必須):ブラーの角度(度、-360から360)radius(数値、必須):ブラーの距離(ピクセル、1 - 999)
// 例: モーションブラーを適用
photoshop_apply_motion_blur({
angle: 45,
radius: 20
})
色調整
photoshop_adjust_brightness_contrast
明るさとコントラストを調整します。 パラメーター:
brightness(数値、必須):明るさの調整(-100から100)contrast(数値、必須):コントラストの調整(-100から100)
// 例: 明るさとコントラストを上げる
photoshop_adjust_brightness_contrast({
brightness: 20,
contrast: 15
})
photoshop_adjust_hue_saturation
色相、彩度、および明度を調整します。 パラメーター:
hue(数値、必須):色相のシフト(-180から180)saturation(数値、必須):彩度の調整(-100から100)lightness(数値、必須):明度の調整(-100から100)
// 例: 色を調整
photoshop_adjust_hue_saturation({
hue: 30,
saturation: 20,
lightness: 0
})
photoshop_auto_levels
自動レベル調整を適用します。
// 例: 自動レベル
photoshop_auto_levels()
photoshop_auto_contrast
自動コントラスト調整を適用します。
// 例: 自動コントラスト
photoshop_auto_contrast()
photoshop_desaturate
レイヤーをモノクロに変換します(グレースケールにする)。
// 例: モノクロにする
photoshop_desaturate()
photoshop_invert
レイヤーの色を反転させます。
// 例: 色を反転させる
photoshop_invert()
テキスト書式設定
photoshop_set_text_font
アクティブなテキストレイヤーのフォントファミリーとサイズを設定します。 パラメーター:
fontName(文字列、必須):フォントファミリー名fontSize(数値、オプション):フォントサイズ(ポイント)
// 例: フォントを変更
photoshop_set_text_font({
fontName: "Helvetica",
fontSize: 48
})
photoshop_set_text_color
アクティブなテキストレイヤーの色を設定します。 パラメーター:
red(数値、必須):赤色成分(0 - 255)green(数値、必須):緑色成分(0 - 255)blue(数値、必須):青色成分(0 - 255)
// 例: テキストを青色に設定
photoshop_set_text_color({
red: 0,
green: 100,
blue: 255
})
photoshop_set_text_alignment
テキストの配置を設定します。 パラメーター:
alignment(文字列、必須):LEFT、CENTER、RIGHT、LEFTJUSTIFIED、CENTERJUSTIFIED、RIGHTJUSTIFIED、FULLYJUSTIFIED
// 例: テキストを中央揃えにする
photoshop_set_text_alignment({ alignment: "CENTER" })
photoshop_update_text_content
アクティブなテキストレイヤーのテキスト内容を更新します。 パラメーター:
text(文字列、必須):新しいテキスト内容
// 例: テキストを更新
photoshop_update_text_content({ text: "New Text" })
選択範囲とマスク
photoshop_select_rectangle
矩形選択範囲を作成します。 パラメーター:
left,top,right,bottom(数値、必須):選択範囲の境界(ピクセル)
// 例: 領域を選択
photoshop_select_rectangle({
left: 100,
top: 100,
right: 500,
bottom: 400
})
photoshop_select_all
ドキュメント全体を選択します。
// 例: すべてを選択
photoshop_select_all()
photoshop_deselect
すべての選択範囲を解除します。
// 例: 選択を解除
photoshop_deselect()
photoshop_invert_selection
現在の選択範囲を反転させます。
// 例: 選択範囲を反転
photoshop_invert_selection()
photoshop_create_layer_mask
現在の選択範囲からレイヤーマスクを作成します。
// 例: マスクを作成
photoshop_create_layer_mask()
photoshop_delete_layer_mask
アクティブなレイヤーからレイヤーマスクを削除します。
// 例: マスクを削除
photoshop_delete_layer_mask()
photoshop_apply_layer_mask
レイヤーマスクをレイヤーに適用(マージ)します。
// 例: マスクを適用
photoshop_apply_layer_mask()
履歴と元に戻す/やり直し
photoshop_undo
最後の操作を元に戻します - Ctrl/Cmd+Zと同等です。 パラメーター:
steps(数値、オプション):元に戻すステップ数(デフォルト: 1)
// 例: 最後の操作を元に戻す
photoshop_undo()
// 例: 最後の3つの操作を元に戻す
photoshop_undo({ steps: 3 })
photoshop_redo
以前に元に戻した操作をやり直します - Ctrl/Cmd+Shift+Zと同等です。 パラメーター:
steps(数値、オプション):やり直すステップ数(デフォルト: 1)
// 例: 最後に元に戻した操作をやり直す
photoshop_redo()
// 例: 最後の2つの元に戻した操作をやり直す
photoshop_redo({ steps: 2 })
photoshop_get_history
アクティブなドキュメントの履歴状態を取得します。
// 例: 履歴を表示
photoshop_get_history()
アクションと自動化
photoshop_play_action
アクションパレットに記録されたアクションを再生します。 パラメーター:
actionName(文字列、必須):アクション名actionSetName(文字列、必須):アクションセット名
// 例: アクションを再生
photoshop_play_action({
actionName: "My Action",
actionSetName: "Default Actions"
})
photoshop_execute_script
カスタムのExtendScriptコードを実行します(高度な使用)。 パラメーター:
code(文字列、必須):ExtendScriptコード
// 例: カスタムコードを実行
photoshop_execute_script({
code: "app.beep();"
})
画像操作
photoshop_resize_image
アクティブな画像をリサイズします。 パラメーター:
width(数値、必須):新しい幅(ピクセル)height(数値、必須):新しい高さ(ピクセル)
// 例: Instagramの投稿サイズにリサイズ
photoshop_resize_image({
width: 1080,
height: 1080
})
photoshop_crop_document
ドキュメントを指定された境界でトリミングします。 パラメーター:
left(数値、必須):左の境界(ピクセル)top(数値、必須):上の境界(ピクセル)right(数値、必須):右の境界(ピクセル)bottom(数値、必須):下の境界(ピクセル)
// 例: ドキュメントをトリミング
photoshop_crop_document({
left: 100,
top: 100,
right: 1820,
bottom: 980
})
photoshop_place_image
画像ファイルをアクティブなドキュメントのレイヤーとして配置します。 パラメーター:
filePath(文字列、必須):画像ファイルの完全なパスx(数値、オプション):X座標のオフセット(ピクセル、デフォルト: 0)y(数値、オプション):Y座標のオフセット(ピクセル、デフォルト: 0)
// 例: 特定の位置に画像を配置
photoshop_place_image({
filePath: "/Users/username/Pictures/photo.jpg",
x: 100,
y: 200
})
photoshop_open_image
画像ファイルを新しいドキュメントとして開きます。 パラメーター:
filePath(文字列、必須):画像ファイルの完全なパス
// 例: 画像を開く
photoshop_open_image({
filePath: "/Users/username/Pictures/photo.jpg"
})
サンプルプロンプト
このMCPサーバーを設定した場合、AIアシスタント(Claude、Cursorなど)で使用できるサンプルプロンプトを以下に示します。
🎨 基本的なデザイン作成
1920x1080のRGBカラーモードのPhotoshopドキュメントを作成します。
薄い青色の背景レイヤーを追加し、RGB(240, 248, 255)で塗りつぶします。
64ptのフォントで「Welcome」という中央揃えのテキストを追加します。
デスクトップにwelcome.psdとして保存します。
🖼️ 素材画像を使ったデザイン(Pexels MCPを使用)
Pexelsで「mountain sunset」の画像を検索します。
1920x1080のPhotoshopドキュメントを作成します。
ダウンロードした画像を配置し、キャンバス全体に合わせます。
3pxの微妙なガウシアンブラーを適用します。
明るさを15、コントラストを10上げます。
上部中央に72ptで「Adventure Awaits」という白いテキストを追加します。
テキストの不透明度を90%に設定し、ブレンドモードをOVERLAYに設定します。
品質10でadventure.jpgとして保存します。
✨ 写真の強化
デスクトップのphoto.jpgをPhotoshopで開きます。
自動レベルと自動コントラストを適用します。
アンシャープマスクを量120%、半径1.5、閾値0で適用します。
彩度を15上げます。
各辺から100pxをトリミングします。
品質12でenhanced-photo.jpgとして保存します。
🎭 レイヤーエフェクトとブレンディング
1200x800のドキュメントを作成します。
「Background」という名前の新しいレイヤーを追加し、RGB(50, 50, 50)で塗りつぶします。
位置(100, 100)にlogo.pngを配置します。
ロゴレイヤーを現在のサイズの50%に合わせます。
ブレンドモードをSCREENに設定し、不透明度を85%に設定します。
別のレイヤーを追加し、RGB(255, 100, 50)で塗りつぶします。
このレイヤーのブレンドモードをMULTIPLYに設定し、不透明度を60%に設定します。
すべての可視レイヤーをマージします。
composite.psdとして保存します。
📝 テキストポスターデザイン
1080x1350の縦長ドキュメント(Instagramストーリーサイズ)を作成します。
レイヤーを追加し、RGB(120, 40, 200)のグラデーションのような色で塗りつぶします。
(540, 300)に96ptで「SUMMER」というテキストを追加します。
テキストの色を白RGB(255, 255, 255)に変更します。
テキストの配置を中央に設定します。
(540, 450)に128ptで「2026」という白いテキストを追加します。
背景レイヤーに2pxのガウシアンブラーを適用します。
summer-poster.pngとして保存します。
🎬 バッチ処理
image1.jpgを開きます。
1920x1080にリサイズします。
自動コントラストを適用します。
微妙なシャープネス(量80%、半径1.0)を適用します。
品質10でprocessed-1.jpgとして保存します。
元のファイルに変更を保存せずに閉じます。
image2.jpgとimage3.jpgについても同じ操作を繰り返します。
🖌️ クリエイティブな操作
2000x2000の正方形のドキュメントを作成します。
abstract-pattern.jpgを配置し、ドキュメントに合わせます。
レイヤーを複製します。
複製したレイヤーに45度、半径50pxのモーションブラーを適用します。
ブレンドモードをOVERLAYに設定し、不透明度を70%に設定します。
中央に120ptの白い「MOTION」というテキストを追加します。
(200, 200)から(1800, 1800)の矩形選択範囲を作成します。
選択範囲を反転させて削除し(ボーダーエフェクトを作成)、画像を平坦化します。
motion-art.jpgとして保存します。
🎯 高度なワークフロー
印刷用に3000x2000のドキュメントを300 DPIで作成します。
hero-image.jpgを配置し、キャンバスに合わせます。
画像レイヤーを複製します。
複製したレイヤーを完全にモノクロにします。
ブレンドモードをLUMINOSITYに設定し、不透明度を50%に設定します。
「Overlay」という名前の新しいレイヤーを作成します。
RGB(255, 150, 0)で塗りつぶし、ブレンドモードをSOFTLIGHTに設定し、不透明度を30%に設定します。
上部中央(1500, 200)に96ptで「PORTFOLIO」というテキストを追加します。
テキストの色を白に設定します。
(1500, 320)に36ptで「2026 Collection」というサブテキストを追加します。
テキスト領域の周りに矩形選択範囲を作成します。
オーバーレイレイヤーにレイヤーマスクを作成します。
可視レイヤーをマージします。
portfolio-cover.psdとして保存します。
品質12でportfolio-cover.jpgとしてエクスポートします。
🔄 アクションの使用
my-photo.jpgを開きます。
「My Actions」セットの「Vintage Look」アクションを再生します。
明るさを-10調整して少し暗くします。
vintage-photo.jpgとして保存します。
⚡ カスタムスクリプトの実行
このカスタムExtendScriptコードを実行します。
app.beep();
alert('Processing started!');
⏮️ 元に戻す/やり直しの操作
アクティブなレイヤーに15pxのガウシアンブラーを適用します。
[結果を待つ]
実際には、ブラーが強すぎます。それを元に戻します。
代わりに5pxのガウシアンブラーを適用します。
または:
履歴状態を取得して、実行された操作を確認します。
最後の3つの操作を元に戻します。
1ステップやり直して1つの操作を取り戻します。
💻 使用例
シンプルなデザインを作成する
// 1. 新しいドキュメントを作成
photoshop_create_document({
width: 800,
height: 600,
colorMode: "RGB"
})
// 2. 背景レイヤーを作成
photoshop_create_layer({ name: "Background" })
// 3. 色で塗りつぶす
photoshop_fill_layer({
red: 240,
green: 240,
blue: 255
})
// 4. テキストレイヤーを追加
photoshop_create_text_layer({
text: "My Design",
x: 400,
y: 300,
fontSize: 64
})
// 5. 結果を保存
photoshop_save_document({
path: "/Users/username/Desktop/design.psd",
format: "PSD"
})
画像をバッチ処理する
// 1. 既存のドキュメントを開く(手動ステップ)
// 2. 画像をリサイズ
photoshop_resize_image({ width: 1920, height: 1080 })
// 3. JPEGとして保存
photoshop_save_document({
path: "/Users/username/Desktop/resized.jpg",
format: "JPEG",
quality: 12
})
// 4. ドキュメントを閉じる
photoshop_close_document({ save: false })
素材画像を使ったデザインを作成する(Pexels MCPを使用)
この例は、Photoshop MCPとPexels MCPを組み合わせる方法を示しています。
// 1. Pexelsで画像を検索する(Pexels MCPサーバーを使用)
// 注意: Pexels MCPサーバーを設定する必要があります
pexels_photos_search({
query: "nature landscape",
per_page: 5
})
// 2. 必要な画像をダウンロードする(手動またはスクリプトで)
// 3. 新しいPhotoshopドキュメントを作成
photoshop_create_document({
width: 1920,
height: 1080,
colorMode: "RGB"
})
// 4. ダウンロードした画像を配置
photoshop_place_image({
filePath: "/Users/username/Downloads/pexels-photo.jpg",
x: 0,
y: 0
})
// 5. 画像をドキュメントに合わせる(新機能!)
photoshop_fit_layer_to_document({
fillDocument: true // キャンバス全体を埋める
})
// 6. テキストオーバーレイを追加
photoshop_create_text_layer({
text: "Beautiful Nature",
x: 960,
y: 100,
fontSize: 72
})
// 7. 最終的なデザインを保存
photoshop_save_document({
path: "/Users/username/Desktop/nature-design.psd",
format: "PSD"
})
コンテキスト追跡
各ツールは、Photoshopの現在の状態に関する包括的なコンテキスト情報を返します。これには以下が含まれます。
- ドキュメント情報:名前、寸法、解像度、カラーモード、レイヤー数
- アクティブなレイヤー情報:名前、タイプ、不透明度、ブレンドモード、可視性、ロック状態
- 選択状態:選択範囲がアクティブかどうか
- 操作結果:変更された内容の具体的な詳細
これにより、AIアシスタントは以下のことを認識できます。
- どのドキュメントがアクティブか
- どのレイヤーで作業しているか
- 現在のレイヤーのプロパティ(不透明度、ブレンドモードなど)
- ドキュメントの寸法と設定
応答例:
{
"applied": true,
"filter": "Gaussian Blur",
"radius": 10,
"wasRasterized": true,
"context": {
"hasDocument": true,
"document": {
"name": "design.psd",
"width": 1920,
"height": 1080,
"resolution": 72,
"colorMode": "RGBColorMode",
"layerCount": 3,
"hasSelection": false
},
"activeLayer": {
"name": "Background",
"kind": "NORMAL",
"opacity": 100,
"blendMode": "NORMAL",
"visible": true,
"locked": false,
"isBackground": false
}
}
}
このコンテキストにより、AIアシスタントは複数のコマンドにわたってどのドキュメントとレイヤーで作業しているかを覚えることができます。
プラットフォーム固有の注意事項
Windows
- COMオートメーションを使用してPhotoshopと通信します。
- レジストリベースの自動検出により、インストールパスを特定します。
- 32ビットと64ビットの両方のバージョンをサポートします。
macOS
- AppleScript/OSAを使用してPhotoshopと通信します。
- Spotlightベースの自動検出により、インストールパスを特定します。
- 複数のPhotoshopバージョンを同時にインストールしている場合もサポートします。
サポートされるPhotoshopバージョン
- すべてのPhotoshopバージョン(2012 - 2025+):AppleScript(macOS)またはCOM(Windows)を介してExtendScript APIを使用します。
重要な注意事項:Photoshop 2022以降はUXPをプラグインにサポートしていますが、AppleScript/COMを介した外部自動化ではExtendScriptのみを使用できます。UXPは内部プラグイン用に設計されており、外部スクリプトから呼び出すことはできません。したがって、このMCPサーバーはすべてのPhotoshopバージョンで最大限の互換性を得るためにExtendScriptを使用しています。
トラブルシューティング
"Photoshop not found"
- Photoshopがデフォルトの場所にインストールされていることを確認してください。
- または、
PHOTOSHOP_PATH環境変数をカスタムのインストールパスに設定してください。
{
"env": {
"PHOTOSHOP_PATH": "C:\\Custom\\Path\\Adobe Photoshop 2025\\Photoshop.exe"
}
}
"Failed to connect to Photoshop"
- Photoshopが実行中であることを確認してください(サーバーは実行されていない場合に起動しようとします)。
- Photoshopの設定でスクリプト実行が有効になっていることを確認してください。
- Windowsでは、COMオートメーションがセキュリティ設定によってブロックされていないことを確認してください。
"Script execution timeout"
- 一部の操作は大きなドキュメントでは時間がかかる場合があります。
- デフォルトのタイムアウトは30秒です。
- 複雑な操作の場合は、小さなステップに分割することを検討してください。
デバッグログ
LOG_LEVEL=0を設定して詳細なログを有効にします。
{
"env": {
"LOG_LEVEL": "0"
}
}
開発
ビルド
npm run build
ウォッチモード
npm run dev
リントとフォーマット
npm run lint
npm run format
🚀 クイックスタートの例
💡 一般的なユースケース
| タスク | プロンプトの例 |
|---|---|
| 基本的なデザイン | "1920x1080のドキュメントを作成し、青い背景を追加し、中央に「Hello」というテキストを配置" |
| 写真編集 | "photo.jpgを開き、自動レベルを適用し、100%シャープにし、edited.jpgとして保存" |
| 素材画像 | "image.jpgを配置し、キャンバスに合わせ、「Summer 2026」というオーバーレイテキストを追加" |
| レイヤーエフェクト | "アクティブなレイヤーのブレンドモードをMULTIPLYに設定し、不透明度を80%に設定" |
| フィルター | "現在のレイヤーに10pxのガウシアンブラーを適用" |
| テキストスタイル | "テキストをHelvetica 64pt、赤色、中央揃えに変更" |
| バッチ作業 | "1080x1080にリサイズし、自動コントラストを適用し、square.jpgとして保存し、閉じる" |
| マスク | "100,100から500,500の矩形を選択し、レイヤーマスクを作成" |
アーキテクチャ
photoshop-mcp/
├── src/
│ ├── core/ # MCPサーバーのコア
│ │ ├── server.ts # メインのMCPサーバー
│ │ ├── session.ts # セッション管理
│ │ └── tool-registry.ts # ツール登録システム
│ ├── platform/ # プラットフォーム固有の検出と実行
│ │ ├── detector.ts # メインの検出器
│ │ ├── connection.ts # 接続マネージャー
│ │ ├── windows-detector.ts # Windowsレジストリ検出
│ │ ├── windows-executor.ts # Windows COMオートメーション
│ │ ├── macos-detector.ts # macOS Spotlight検出
│ │ └── macos-executor.ts # macOS AppleScript実行
│ ├── api/ # Photoshop APIの抽象化
│ │ ├── photoshop-api.ts # APIファクトリー
│ │ ├── batch-play.ts # UXP batchPlayヘルパー(レガシー)
│ │ └── extendscript.ts # ExtendScriptスニペットライブラリ
│ ├── tools/ # MCPツールの実装(42以上のツール)
│ │ ├── document-tools.ts # ドキュメント操作
│ │ ├── layer-tools.ts # レイヤーの作成/削除
│ │ ├── layer-properties-tools.ts # 不透明度、ブレンドモードなど
│ │ ├── layer-transform-tools.ts # 拡大/縮小、回転、移動
│ │ ├── image-tools.ts # リサイズ、トリミング
│ │ ├── image-placement-tools.ts # 画像の配置/開き
│ │ ├── filter-tools.ts # ブラー、シャープネス、ノイズ
│ │ ├── adjustment-tools.ts # 色調整
│ │ ├── text-tools.ts # テキスト書式設定
│ │ ├── selection-tools.ts # 選択範囲とマスク
│ │ └── action-tools.ts # アクションとカスタムスクリプト
│ └── utils/ # ユーティリティ
│ └── logger.ts # ログシステム(stderrベース)
└── examples/ # 設定例
├── cursor-config.json
└── claude-desktop-config.json
コントリビュート
コントリビューションは大歓迎です!プルリクエストを送信してください。
📄 ライセンス
MIT
謝辞
- Model Context Protocol SDK を使用して構築されています。
- Adobe Photoshopスクリプトコミュニティからインスピレーションを得ています。
代替品













