Skip to main content
Glama

Photoshop MCP Pro

A professional Model Context Protocol server that lets AI assistants drive Adobe Photoshop directly — create and edit documents, manage layers, run filters and adjustments, build shapes and text, and apply higher-level design intelligence like palette generation, font pairing, and effect recipes.

It runs locally over stdio and controls Photoshop by executing ExtendScript through a platform-specific executor (macOS and Windows supported). Photoshop is launched lazily on the first tool call, so the server starts instantly and only opens Photoshop when you actually use it.

Features

Core editing tools

  • Document — create, open, save, export, resize, crop, flatten

  • Layer — create, duplicate, group, reorder, mask, blend modes, opacity

  • Selection — rectangular/elliptical, by color, invert, feather, modify

  • Transform — move, scale, rotate, skew, flip

  • Shape & Path — vector shapes, paths, fills, strokes

  • Text — text layers, fonts, alignment, color

  • Image — adjustments, filters, blur, sharpen, noise

  • Adjustment — brightness/contrast, hue/saturation, levels, curves, color balance

  • Filter — gaussian/motion blur, sharpen, noise, and more

  • Color — foreground/background, swatches, sampling

  • Guide — guides and rulers

  • Smart Object — create and manage smart objects

  • History — undo/redo, snapshots

  • Style — layer styles (drop shadow, stroke, glow, etc.)

  • Export — PNG, JPEG, and document export

  • Workflow — multi-step composite operations

  • Script — run arbitrary ExtendScript

Design intelligence

  • Palette — generate palettes from mood, image, or brand

  • Typography — suggest font pairings, install fonts, auto-size

  • Recipe — 12 effect recipes with mood mapping

  • Analysis — automatic design scoring (color, contrast, typography, composition) via ps_review

Resources & prompts

  • Built-in resources for presets, palettes, fonts, recipes, and design knowledge

  • A create-design prompt to kick off guided design work

Related MCP server: Photoshop MCP Windows-First

Requirements

  • Adobe Photoshop (with scripting enabled — the default)

  • Node.js >= 18

  • macOS or Windows

Installation

git clone https://github.com/ayushnagvanshi101098-ship-it/photoshop-mcp-pro.git
cd photoshop-mcp-pro
npm install
npm run build

This compiles the TypeScript in src/ to dist/.

Usage

Add the server to your MCP client. The entry point is dist/index.js.

Claude Desktop / Claude Code

{
  "mcpServers": {
    "photoshop": {
      "command": "node",
      "args": ["/absolute/path/to/photoshop-mcp-pro/dist/index.js"]
    }
  }
}

Restart your client. Photoshop opens automatically the first time a tool is called.

Development

npm run dev    # tsc --watch — rebuild on change
npm run build  # one-off build
npm start      # run the compiled server

Source layout:

src/
  index.ts        # server entry — registers tools, resources, prompts
  platform/       # OS detection + ExtendScript executors (macOS / Windows)
  tools/          # MCP tool definitions
  scripts/        # ExtendScript generators per tool category
  resources/      # presets, palettes, fonts, recipes, design knowledge
  prompts/        # design prompts
  utils/          # color math, design analyzer, font manager, logging

How it works

Each tool builds an ExtendScript snippet and hands it to a platform executor, which runs it inside Photoshop and returns the result. The connection layer handles lazy launch, reconnection, and relaunch if Photoshop quits mid-session.

License

MIT © Ayush Nagvanshi

Available Tools

32 tools
ps_add_adjustmentAdd Adjustment LayerA

Creates a NON-DESTRUCTIVE adjustment layer above the active layer. Supports curves, levels, hue-saturation, color-balance, gradient-map, solid-color, photo-filter, brightness-contrast, and invert. Supply the type and its specific params object.

Inputs: type (required), params.

ps_alignAlign LayerA

Aligns a layer relative to the document bounds. Use center-both to perfectly center a layer, or pick an edge alignment.

Inputs: alignment (required), layerName.

ps_apply_filterApply FilterA
Destructive

Applies a destructive filter to the active layer. Supported: gaussian-blur, motion-blur, sharpen (unsharp mask), noise (add noise), radial-blur. Supply the filter type and its specific params object.

Inputs: type (required), params (required).

ps_apply_recipeApply Effect RecipeA

Apply a pre-built visual effect recipe to the active layer. Choose a specific recipe by name, or provide a mood to get the best matching recipe automatically. Recipes combine multiple layer styles and adjustments for polished results in one call.

Inputs: recipe, mood, intensity, color, +1 more.

ps_batchBatch OperationsA
Destructive

Executes multiple tool operations in sequence within a single call. Each operation specifies a tool name and its arguments. Results are returned as a combined array. Use this to chain several steps without round-trips.

Inputs: operations (required).

ps_colorColorA

Manages foreground and background colors. "set-foreground" / "set-background" set the app color (provide color). "swap" swaps foreground and background. "sample-pixel" reads the color at the given x,y coordinate.

Inputs: action (required), color, x, y.

ps_create_designCreate DesignA

HIGH-LEVEL workflow tool that creates an entire design in a single call. Specify a document preset, background (solid/gradient/image), an array of layers (text, image, shape), and optional guides. Generates and executes ONE script for the whole composition. Perfect for quickly scaffolding social media posts, thumbnails, or print layouts.

Inputs: preset (required), background (required), layers (required), guides.

ps_create_documentCreate DocumentA

Creates a new Photoshop document. Use a preset for common social-media / print sizes, or supply custom dimensions. Optionally fill a background color and add guide presets.

Inputs: width, height, resolution, colorMode, +4 more.

ps_create_layerCreate LayerB

Creates a new layer or group in the active document. Optionally positions it below a named layer.

Inputs: type (required), name, below.

ps_create_textCreate Text LayerA

Creates a text layer with full typographic control in a single call — font, size, color, alignment, tracking, leading, and warp. Use type "point" for single-line text or "area" for a bounded text box.

Inputs: text (required), x (required), y (required), type (required), +9 more.

ps_draw_shapeDraw ShapeA

Draws a vector shape on a new shape layer. Supports rectangle, rounded-rectangle, ellipse, line, polygon, star, and custom-path. Supply the type and its specific params.

Inputs: type (required), params (required).

ps_execute_scriptExecute ExtendScriptA
Destructive

Runs arbitrary ExtendScript code directly in Photoshop. This is the escape hatch for anything the other tools cannot do. The script string is passed to Photoshop as-is. Use with care — there are no guardrails. Returns whatever the script evaluates to.

Inputs: script (required).

ps_exportExport DocumentA

Exports the active document to a file. Supports PNG (with optional scaling), JPEG (with quality), PSD, and TIFF. Provide an absolute file path.

Inputs: format (required), path (required), quality, scale.

ps_get_document_infoGet Document InfoA
Read-only

Returns the full state of the active document — dimensions, resolution, color mode, layer count, active layer, and selection status. Use this to orient yourself before making changes.

Inputs: no named parameters.

ps_get_layersGet LayersA
Read-only

Returns the full layer tree of the active document as JSON, including names, types, visibility, opacity, blend modes, and bounds. Use this to understand the document structure before editing.

Inputs: no named parameters.

ps_guideGuidesA

Manages document guides. "add" places a single guide at a position. "add-grid" creates an evenly-spaced grid of guides. "remove-all" clears all guides. "get" returns current guide positions.

Inputs: action (required), orientation, position, columns, +2 more.

ps_historyHistoryA
Destructive

Manages document history. "undo" steps backward (default 1 step), "redo" steps forward, "get-states" returns the list of history states. Use undo to recover from mistakes.

Inputs: action (required), steps.

ps_manage_layersManage LayersA
Destructive

Performs a layer operation: delete, duplicate, merge-visible, flatten, rasterize, group, ungroup, lock, unlock, show, or hide. Targets the named layer or the active layer if none is specified. This single tool replaces 10+ individual layer-action tools.

Inputs: action (required), layerName.

ps_maskLayer MaskA
Destructive

Creates or manages layer masks. "create" adds a reveal-all mask, "create-from-selection" adds a mask from the current selection, "apply" merges the mask into the layer, "delete" removes it.

Inputs: action (required).

ps_palettePaletteA

Generate and work with color palettes. Four actions: "generate" — create a harmony from a base hex color; "from-mood" — pick a curated palette for a design mood; "from-image" — extract dominant colors from the active document/layer; "from-brand" — return the official palette for a known brand (jaipuria, rentdraft).

Inputs: action (required), baseColor, harmony, mood, +3 more.

ps_place_imagePlace ImageA

Places an external image file into the active document. By default it is placed as a Smart Object for non-destructive editing. Optionally set position and dimensions.

Inputs: filePath (required), x, y, width, +2 more.

ps_reorder_layerReorder LayerA

Moves a layer to a new position in the layer stack. Use "top"/"bottom" for absolute positioning, or "up"/"down" for relative moves. Optionally specify a targetLayer for relative placement.

Inputs: position (required), layerName, targetLayer.

ps_resizeResize Canvas or ImageA
Destructive

Resizes the canvas (adds/removes space around content) or the image (resamples all content). Use "canvas" to change document bounds without scaling, or "image" to scale everything.

Inputs: action (required), width (required), height (required), resampleMethod.

ps_reviewReview DesignA
Read-only

Takes a screenshot of the current document via ExtendScript and returns it as base64-encoded image data alongside the full document state and a design analysis score (0-100) covering color harmony, contrast/WCAG, typography hierarchy, and composition balance. This is the visual feedback loop tool — use it after making changes to verify the result looks correct.

Inputs: no named parameters.

ps_save_documentSave DocumentA

Saves the active document to disk. Supports PSD, JPEG, and PNG formats. For JPEG, quality ranges from 1 (lowest) to 12 (highest).

Inputs: path (required), format (required), quality.

ps_selectSelectA

Creates or modifies selections. Use "all" to select everything, "none" to deselect, "inverse" to invert, or create geometric / color-range selections. For rectangle/ellipse, provide bounds; for color-range, provide a sample color and fuzziness.

Inputs: type (required), params.

ps_set_layer_propertiesSet Layer PropertiesA

Sets opacity, blend mode, and/or fill opacity on the active layer. Consolidates what was previously three separate tools.

Inputs: opacity, blendMode, fillOpacity.

ps_set_layer_styleSet Layer StyleA

The POWER tool for layer effects. Supply any combination of effects — dropShadow, innerShadow, outerGlow, innerGlow, bevelEmboss, gradientOverlay, patternOverlay, satin, colorOverlay, stroke — and they are all applied in a single call. Omitted effects are left unchanged. This replaces a dozen individual effect tools.

Inputs: dropShadow, innerShadow, outerGlow, innerGlow, +6 more.

ps_smart_objectSmart ObjectA

Manages Smart Objects. "convert" converts the active layer to a Smart Object for non-destructive editing. "place-file" embeds an external file as a new Smart Object layer.

Inputs: action (required), filePath, x, y.

ps_transformTransform LayerB

Applies a transform to the active (or named) layer. Supports move, scale, rotate, flip-horizontal, flip-vertical, and fit-to-document — all in one tool. Supply only the parameters relevant to your action.

Inputs: action (required), layerName, x, y, +3 more.

ps_typographyTypographyA

Font pairing, installation, and size recommendations. Three actions: "suggest" — get a curated font pairing for a mood + purpose combination; "install" — download and install a Google Fonts family to the system; "auto-size" — calculate optimal font sizes for a document (reads dimensions if not provided).

Inputs: action (required), mood, purpose, fontName, +3 more.

ps_update_textUpdate Text LayerA

Updates a single property on the active text layer — content, font, size, color, alignment, tracking, leading, or warp. Targets the currently active layer, so select the text layer first.

Inputs: property (required), value.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 32 tools

    Disambiguation3/5

    Most tools have distinct purposes, but there are clear overlaps: ps_export and ps_save_document both save files with overlapping formats, and ps_place_image and ps_smart_object's 'place-file' action both place external images as smart objects. This could cause an agent to misselect.

    Naming Consistency3/5

    All tools start with 'ps_', but naming conventions vary: many use verb_noun (e.g., ps_create_document), but some are single verbs (ps_batch, ps_resize) or nouns (ps_color, ps_history, ps_mask). This inconsistency makes the set less predictable.

    Tool Count3/5

    At 32 tools, the set is on the high side for an MCP server. While Photoshop is complex and many tools are justified, several tools overlap (e.g., export/save), suggesting some could be consolidated. The count feels slightly bloated.

    Completeness4/5

    The tool set covers a wide range of Photoshop operations: document creation, layers, adjustments, filters, text, shapes, selections, masks, guides, transforms, smart objects, color, palettes, typography, history, and export. Missing features like channels or actions are minor, and ps_execute_script acts as an escape hatch.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      An AI-driven integration server that enables natural language control of Adobe Photoshop through the Model Context Protocol. It automates design workflows by facilitating smart asset slicing, layer analysis, and the future generation of UI code from design files.
      2
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      A full-featured image processing MCP server for AI assistants, exposing ~55 tools across 11 categories for editing, layers, conversion, AI segmentation/cleanup/generation, design analysis, and screenshot-to-code.
      -