Photoshop MCP

Drive a running copy of Adobe Photoshop on Windows or macOS from an MCP client, from layers to export

By Ali Sait Teke (individual) TypeScript Local · stdio DesignMedia

75 popularity score ★ 818 ↓ 5.1k/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add photoshop -- npx -y @alisaitteke/photoshop-mcp
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "photoshop": {
      "command": "npx",
      "args": [
        "-y",
        "@alisaitteke/photoshop-mcp"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "photoshop": {
      "command": "npx",
      "args": [
        "-y",
        "@alisaitteke/photoshop-mcp"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "photoshop": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@alisaitteke/photoshop-mcp"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.photoshop]
command = "npx"
args = ["-y", "@alisaitteke/photoshop-mcp"]
Gemini CLITerminal
gemini mcp add --scope user photoshop npx -- -y @alisaitteke/photoshop-mcp

Settings 5

ANALYTICS_DISABLED Optional: Set to 1 or true to turn off the anonymous usage analytics that are on by default.
PHOTOSHOP_PATH Optional: Path to a Photoshop install when automatic detection picks the wrong one.
PHOTOSHOP_SCRIPT_TIMEOUT Optional: Default script timeout in milliseconds (30000 unless set).
PSMCP_UPDATE_CHECK Optional: Set to 0 to stop the daily npm version check and update notices.
PSMCP_FEEDBACK Optional: Set to 0 to stop the product-feedback question added to ping replies.

What it does

Photoshop MCP is a local stdio server that controls a copy of Adobe Photoshop already open on the same Windows or macOS machine. It sends ExtendScript to Photoshop through AppleScript on macOS and COM automation on Windows, so an assistant can create and open documents, work with layers, text, selections and masks, apply filters and colour adjustments, handle smart objects and artboards, and export files.

Version 1.7.34 registers 128 tools: 111 single-step tools and 17 recipe tools that chain several steps, such as background removal, portrait retouching, web and social export, carousel splitting and batch watermarking. Each recipe lands in Photoshop's history as one step, so a single undo reverts it. A further tool, photoshop_execute_script, runs any ExtendScript the client passes, with a 30-second timeout by default (PHOTOSHOP_SCRIPT_TIMEOUT, or timeout_ms up to 600000).

The same npm package also ships a browser chat window (the ui program) that uses the server with your own AI provider key or a Claude Code or Gemini CLI login; that window is a separate program, not part of the MCP server. An experimental opt-in routing feature in that window sends prompts to api.typesafe.ai when TYPESAFE_API_KEY is set.

The server collects anonymous usage analytics by default and sends them to a Rybbit instance at hey.sideguard.io (tool names and counts, never arguments or results, per its analytics doc); ANALYTICS_DISABLED=1 turns this off. It also checks npm for a newer release at most once a day and may add an update notice or a product-feedback question to photoshop_ping replies. The tools reference shows 107 tools in detail; the recipes are listed in the prompt-layer doc. The project is community-made and not affiliated with Adobe.

What it needs

RuntimeNode.js 18+

Adobe Photoshop installed and running on Windows or macOS (the README says any version from 2012). Node.js 18 or later for npx. Generative tools need Photoshop 24 or later and an Adobe account signed in with generative credits; photoshop_generative_upscale needs Photoshop 27. photoshop_neural_filter needs the optional UXP plugin from the repository installed in Photoshop.

Limits

Windows and macOS only; it drives a local Photoshop and cannot work on files without the app running. Generative fill, remove, expand, upscale and text-to-image use Adobe's Firefly features and spend the Adobe account's generative credits. A long script that is still running makes photoshop_ping return extendscript_timeout until it finishes. photoshop_install_font installs a font file already on disk and does not download it. The routing feature in the chat window is labelled experimental, and the Action Plan mode there is labelled beta.

Who it suits

Suits designers and photographers who already have Photoshop on Windows or macOS and want an assistant to do repetitive edits, batch exports and multi-step retouching, with each recipe undoable in one step. It does not suit Linux users, headless servers or anyone without a Photoshop licence. It writes to open documents and files on disk and can run arbitrary ExtendScript, so pick it when you are comfortable letting the client change your work. We also hold another Photoshop server, photoshop-mcp-2 (@synthetic-ai/photoshop-mcp), from a different maker.

Tools 60 of 128

photoshop_ping
Checks that Photoshop's scripting engine is reachable and idle
photoshop_get_version
Reports the Photoshop version
photoshop_get_capabilities
Reports which Photoshop features this install supports
photoshop_get_state
Summarises the open documents and current state
photoshop_create_document
Creates a new document with a given size
photoshop_open_image
Opens an image file from disk
photoshop_list_documents
Lists open documents with their ids
photoshop_set_active_document
Switches to another open document
photoshop_get_document_info
Returns details of the active document
photoshop_save_document
Saves the document to a path in a chosen format
photoshop_close_document
Closes a document, with or without saving
photoshop_export_as
Exports the document or layers to image files
photoshop_create_artboard
Adds an artboard of a given size
photoshop_export_artboards
Exports each artboard to its own file
photoshop_create_layer
Adds a new empty layer
photoshop_delete_layer
Removes a layer
photoshop_get_layers
Lists the layers of the document
photoshop_create_text_layer
Adds a text layer with content and styling
photoshop_update_text_content
Changes the text of a text layer
photoshop_set_text_font
Sets the font of a text layer
photoshop_list_fonts
Lists fonts available to Photoshop
photoshop_install_font
Installs a font file from disk for the current user
photoshop_fill_layer
Fills a layer with a colour
photoshop_set_layer_opacity
Sets a layer's opacity
photoshop_set_layer_blend_mode
Sets a layer's blend mode
photoshop_duplicate_layer
Copies a layer
photoshop_merge_visible_layers
Merges all visible layers
photoshop_flatten_image
Flattens the document to one layer
photoshop_move_layer_to_position
Moves a layer to a given place in the stack
photoshop_scale_layer
Scales a layer by a percentage
photoshop_rotate_layer
Rotates a layer
photoshop_apply_gaussian_blur
Applies a Gaussian blur
photoshop_apply_sharpen
Sharpens the active layer
photoshop_adjust_hue_saturation
Changes hue, saturation and lightness
photoshop_adjust_curves
Applies a curves adjustment
photoshop_apply_lut
Applies a colour lookup table
photoshop_select_subject
Selects the main subject automatically
photoshop_select_rectangle
Makes a rectangular selection
photoshop_create_layer_mask
Adds a mask to a layer
photoshop_content_aware_fill
Fills the selection from surrounding content
photoshop_undo
Steps back in the history
photoshop_get_history
Lists history states
photoshop_play_action
Runs a recorded Photoshop action
photoshop_execute_script
Runs ExtendScript code supplied by the client
photoshop_resize_image
Resizes the image
photoshop_crop_document
Crops the document
photoshop_place_image
Places an image file as a layer
photoshop_generative_fill
Fills the selection with Generative Fill from a prompt
photoshop_generative_expand
Extends the canvas with Generative Expand
photoshop_generate_image
Creates an image from a text prompt
photoshop_neural_filter
Applies a Neural Filter through the UXP plugin
photoshop_apply_layer_style
Adds layer effects such as shadow or stroke
photoshop_replace_smart_object_contents
Swaps a smart object's contents for another file
photoshop_generate_from_datasets
Renders files from imported data sets
photoshop_recipe_remove_background
Cuts out the subject onto an editable mask in one step
photoshop_recipe_enhance_portrait
Smooths skin and fixes tones in one step
photoshop_recipe_prepare_for_web
Converts, downsizes and sharpens for web output
photoshop_recipe_export_social_variants
Exports sized copies for social networks
photoshop_recipe_split_carousel
Splits a wide design into numbered slides
photoshop_recipe_batch_watermark
Watermarks a folder of images, leaving originals untouched

Similar servers