Photoshop MCP
MCP server for Adobe Photoshop automation - Control Photoshop from AI assistants with 50+ tools for design, image editing, and workflow automation
Install / Use
/learn @alisaitteke/Photoshop MCPQuality Score
Category
Development & EngineeringSupported Platforms
README
Photoshop MCP Server
Note: This is an unofficial, community-maintained project and is not affiliated with or endorsed by Adobe Inc.
A Model Context Protocol (MCP) server that enables AI assistants like Claude and Cursor to control Adobe Photoshop programmatically. This allows you to create designs, manipulate images, and automate Photoshop workflows through natural language commands while working in your IDE.
🎨 50+ Tools | 🖥️ Cross-Platform | 📦 NPX Ready | 🔧 ExtendScript API | ⏮️ Undo/Redo
Features
- ✅ Works on both Windows and macOS
- ✅ Supports Photoshop 2012-2025+
- ✅ ExtendScript API: Universal compatibility via AppleScript/COM automation
- ✅ Auto-Detection: Automatically finds Photoshop installation on your system
- ✅ 50+ Tools: Comprehensive Photoshop automation
- ✅ Document Management: Create, open, save, close, crop documents
- ✅ Layer Operations: Create, delete, duplicate, merge, transform layers
- ✅ Layer Properties: Opacity, blend modes, visibility, locking
- ✅ Text Formatting: Font, size, color, alignment controls
- ✅ Image Placement: Place images, open files, fit to document
- ✅ Filters: Gaussian Blur, Sharpen, Noise, Motion Blur
- ✅ Color Adjustments: Brightness/Contrast, Hue/Saturation, Auto Levels/Contrast
- ✅ Selections & Masks: Rectangular selections, layer masks
- ✅ History Control: Undo/Redo operations, view history states
- ✅ Actions: Play recorded actions, execute custom scripts
- ✅ Auto-Rasterize: Automatically converts layers when needed for filters
- ✅ Context Tracking: Returns document/layer state after each operation for AI context awareness
Installation
Using NPX (Recommended)
No installation required! Just configure your MCP client:
npx @alisaitteke/photoshop-mcp
From Source
git clone https://github.com/yourusername/photoshop-mcp.git
cd photoshop-mcp
npm install
npm run build
Configuration
For Cursor
Add to your Cursor settings (.cursor/config.json or workspace settings):
{
"mcpServers": {
"photoshop": {
"command": "npx",
"args": ["-y", "@alisaitteke/photoshop-mcp"],
"env": {
"LOG_LEVEL": "1"
}
}
}
}
For Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"photoshop": {
"command": "npx",
"args": ["-y", "@alisaitteke/photoshop-mcp"],
"env": {
"LOG_LEVEL": "1"
}
}
}
}
Environment Variables
PHOTOSHOP_PATH: (Optional) Specify custom Photoshop installation pathLOG_LEVEL: Logging level (0=DEBUG, 1=INFO, 2=WARN, 3=ERROR)
Available Tools
Connection & Info
photoshop_ping
Test connection to Photoshop.
// Example: Check if Photoshop is accessible
photoshop_ping()
photoshop_get_version
Get Photoshop version information.
// Example: Get version details
photoshop_get_version()
Document Management
photoshop_create_document
Create a new Photoshop document.
Parameters:
width(number, required): Document width in pixelsheight(number, required): Document height in pixelsresolution(number, optional): DPI resolution (default: 72)colorMode(string, optional): Color mode - RGB, CMYK, or Grayscale (default: RGB)
// Example: Create a 1920x1080 RGB document
photoshop_create_document({
width: 1920,
height: 1080,
resolution: 72,
colorMode: "RGB"
})
photoshop_get_document_info
Get information about the active document.
// Example: Get current document details
photoshop_get_document_info()
photoshop_save_document
Save the active document.
Parameters:
path(string, required): Full path where to saveformat(string, optional): PSD, JPEG, or PNG (default: PSD)quality(number, optional): JPEG quality 1-12 (default: 8)
// Example: Save as JPEG
photoshop_save_document({
path: "/Users/username/Desktop/output.jpg",
format: "JPEG",
quality: 10
})
photoshop_close_document
Close the active document.
Parameters:
save(boolean, optional): Save before closing (default: false)
// Example: Close without saving
photoshop_close_document({ save: false })
Layer Operations
photoshop_create_layer
Create a new layer.
Parameters:
name(string, optional): Layer name
// Example: Create a named layer
photoshop_create_layer({ name: "Background" })
photoshop_delete_layer
Delete the active layer.
// Example: Delete current layer
photoshop_delete_layer()
photoshop_create_text_layer
Create a text layer.
Parameters:
text(string, required): Text contentx(number, optional): X position in pixels (default: 100)y(number, optional): Y position in pixels (default: 100)fontSize(number, optional): Font size in points (default: 24)
// Example: Create a text layer
photoshop_create_text_layer({
text: "Hello World",
x: 200,
y: 150,
fontSize: 48
})
photoshop_fill_layer
Fill the active layer with a solid color.
Parameters:
red(number, required): Red component (0-255)green(number, required): Green component (0-255)blue(number, required): Blue component (0-255)
// Example: Fill with blue
photoshop_fill_layer({
red: 0,
green: 100,
blue: 255
})
photoshop_get_layers
Get list of all layers in the active document.
// Example: List all layers
photoshop_get_layers()
photoshop_set_layer_opacity
Set the opacity of the active layer.
Parameters:
opacity(number, required): Opacity value (0-100)
// Example: Set opacity to 75%
photoshop_set_layer_opacity({ opacity: 75 })
photoshop_set_layer_blend_mode
Set the blend mode of the active layer.
Parameters:
blendMode(string, required): Blend mode (NORMAL, MULTIPLY, SCREEN, OVERLAY, etc.)
// Example: Set blend mode to multiply
photoshop_set_layer_blend_mode({ blendMode: "MULTIPLY" })
Available blend modes: 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
Show or hide the active layer.
Parameters:
visible(boolean, required): Visibility state
// Example: Hide layer
photoshop_set_layer_visibility({ visible: false })
photoshop_set_layer_locked
Lock or unlock the active layer.
Parameters:
locked(boolean, required): Lock state
// Example: Lock layer
photoshop_set_layer_locked({ locked: true })
photoshop_rename_layer
Rename the active layer.
Parameters:
name(string, required): New layer name
// Example: Rename layer
photoshop_rename_layer({ name: "Hero Image" })
photoshop_duplicate_layer
Duplicate the active layer.
Parameters:
newName(string, optional): Name for duplicated layer
// Example: Duplicate layer with new name
photoshop_duplicate_layer({ newName: "Background Copy" })
photoshop_merge_visible_layers
Merge all visible layers into one.
// Example: Merge visible layers
photoshop_merge_visible_layers()
photoshop_flatten_image
Flatten all layers into a single background layer.
// Example: Flatten image
photoshop_flatten_image()
photoshop_rasterize_layer
Rasterize the active layer (convert text/smart object to normal layer).
// Example: Rasterize layer
photoshop_rasterize_layer()
Layer Ordering
photoshop_move_layer_to_position
Move the active layer relative to another layer.
Parameters:
targetLayerName(string, required): Name of the reference layerposition(string, required): ABOVE, BELOW, TOP, or BOTTOM
// Example: Move layer above "Background"
photoshop_move_layer_to_position({
targetLayerName: "Background",
position: "ABOVE"
})
photoshop_move_layer_to_top
Move the active layer to the top of the layer stack.
// Example: Move to top
photoshop_move_layer_to_top()
photoshop_move_layer_to_bottom
Move the active layer to the bottom of the layer stack.
// Example: Move to bottom
photoshop_move_layer_to_bottom()
photoshop_move_layer_up
Move the active layer up one position.
// Example: Move up
photoshop_move_layer_up()
photoshop_move_layer_down
Move the active layer down one position.
// Example: Move down
photoshop_move_layer_down()
Layer Transformations
photoshop_fit_layer_to_document
Scale the active layer to fit the document canvas while maintaining aspect ratio.
Parameters:
fillDocument(boolean, optional): If true, fills entire canvas (may crop). If false, fits within canvas (may have margins). Default: false
// Example: Fit layer within canvas
photoshop_fit_layer_to_document({ fillDocument: false })
// Example: Fill entire canvas (cropping if needed)
photoshop_fit_l
