SkillAgentSearch skills...

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 MCP

README

Photoshop MCP Server

Note: This is an unofficial, community-maintained project and is not affiliated with or endorsed by Adobe Inc.

npm version License: MIT TypeScript Platform

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 path
  • LOG_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 pixels
  • height (number, required): Document height in pixels
  • resolution (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 save
  • format (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 content
  • x (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 layer
  • position (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
View on GitHub
GitHub Stars10
CategoryDevelopment
Updated2d ago
Forks5

Languages

TypeScript

Security Score

80/100

Audited on Apr 8, 2026

No findings