by alisaitteke
MCP server for Adobe Photoshop automation - Control Photoshop from AI assistants with 50+ tools for design, image editing, and workflow automation
# Add to your Claude Code skills
git clone https://github.com/alisaitteke/photoshop-mcpGuides for using ai agents skills like photoshop-mcp.
Last scanned: 6/13/2026
{
"issues": [
{
"type": "npm-audit",
"message": "concurrently: Vulnerability found",
"severity": "critical"
},
{
"type": "npm-audit",
"message": "shell-quote: shell-quote quote() does not escape newlines in object .op values",
"severity": "critical"
}
],
"status": "FAILED",
"scannedAt": "2026-06-13T07:46:46.413Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}photoshop-mcp is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by alisaitteke. MCP server for Adobe Photoshop automation - Control Photoshop from AI assistants with 50+ tools for design, image editing, and workflow automation. It has 102 GitHub stars.
photoshop-mcp failed SkillsLLM's automated security scan, which flagged one or more high-severity issues. Review the Security Report section carefully before using it.
Clone the repository with "git clone https://github.com/alisaitteke/photoshop-mcp" and add it to your Claude Code skills directory (see the Installation section above).
photoshop-mcp is primarily written in TypeScript. It is open-source under alisaitteke on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh photoshop-mcp against similar tools.
No comments yet. Be the first to share your thoughts!
Requires a passing catalog security scan. Resolve the flagged issues and resubmit to enable featuring.
v1.1+ — recipe workflows, fewer round-trips, snappier sessions.
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 — or through the bundled standalone web UI, which supports both API keys and CLI subscription accounts (Claude Code / Gemini CLI).
Don't want to wire this into Claude Desktop or Cursor? The same package ships a fully local web UI that lets you chat with an AI model and drive Photoshop through this MCP server underneath. Connect with a provider API key or, for Anthropic and Google, reuse the OAuth session from Claude Code or Gemini CLI — no separate API key required.

npx -p @alisaitteke/photoshop-mcp photoshop-mcp-ui
That's it. A local server starts on 127.0.0.1 (random free port) and your
default browser opens the chat UI automatically.
Pick any of the following on first launch — use an API key or your existing CLI subscription account (Anthropic and Google):
| Provider | Models | API key | CLI account |
|---|---|---|---|
| Anthropic | Claude Sonnet / Opus / Haiku | console.anthropic.com | npm i -g @anthropic-ai/claude-code → claude auth login |
| OpenAI | GPT-5, GPT-4.1, o-series | platform.openai.com | — |
| Gemini 2.5 Pro / Flash / Flash-Lite | aistudio.google.com | npm i -g @google/gemini-cli → gemini auth login |
|
| OpenRouter | 100+ models from any provider | openrouter.ai | — |
api_key (default) — Vercel AI SDK + your provider API key. Usage is billed
per token at API rates; the UI shows estimated cost per chat.cli_account — Uses your local Claude Code or Gemini CLI OAuth session.
No API key is stored; the UI probes claude auth status / gemini headless
to verify login. Usage counts against your subscription quota, not API
billing — the status bar shows "Included in subscription".You can switch auth method per provider in Settings without losing the other credential (e.g. keep an API key while trying CLI account, then switch back).
~/.photoshop-mcp/data.db (SQLite, chmod 600). API keys never leave your
machine; CLI mode inherits OAuth from ~/.claude/ or ~/.gemini/.Open Settings from the sidebar at any time:
| Action | API key mode | CLI account mode |
|---|---|---|
| Set up | Paste key → Save | Install CLI → auth login → Check connection |
| Switch away | Choose API key — stored key is kept | Choose Uses your account — key is not deleted |
| Custom binary | — | Optional CLI path if claude / gemini is not on PATH |
| Cost display | Per-token estimate in status bar | Included in subscription badge |
Auth method is stored per provider in ~/.photoshop-mcp/data.db (authMethod:
api_key or cli_account). Existing configs without authMethod default to
api_key and keep working unchanged.
photoshop-mcp-ui [--port 5174] [--host 127.0.0.1] [--no-open]
stream-json (Google). All paths talk to this same
Photoshop MCP server over STDIO.claude auth login /
gemini auth login in Terminal).On top of atomic photoshop_* tools, the server ships an opinionated AI/prompt
layer that helps host LLMs (Cursor, Claude Desktop, etc.) translate vague user
requests into reliable Photoshop actions:
instructions — workflow contract advertised on MCP initialize
(ping once, state-before-action, prefer recipes, error recovery). See
src/prompts/instructions.ts.prompts primitive — 16 pre-engineered templates (12 recipe + 4 guide:
ps.enhance_portrait, ps.remove_background, ps.gradient_fade, ps.sky_blend, …)
via prompts/list and prompts/get.photoshop_recipe_* tools (remove
background, enhance portrait, prepare for web, export social variants, color
grade, frequency separation, batch mockup, organize layers, gradient fade,
sky blend, dodge & burn, remove distraction). Each wraps steps in a single
Photoshop history state (one Undo reverts all). 80 tools total (68 atomic
photoshop_get_state (cheap snapshot),
photoshop_get_preview (base64 JPEG for vision verification),
photoshop_get_capabilities (version-aware feature flags).code and
suggested_next_tool for self-correction.Full reference: docs/prompt-layer.md.
Verify parity: npm run verify:photoshop-prompts. Latest results:
docs/development.md#integration-test-results.
Below are example prompts you can use with AI assistants (Claude, Cursor, etc.)
when this MCP server is configured. Prefer recipe tools (photoshop_recipe_*)
for multi-step outcomes — each recipe is a single undo step. Use atomic
photoshop_* tools only for fine-grained edits no recipe covers.
Ping Photoshop and read capabilities for my installed version.
Get the current document state before changing anything.
Open portrait.jpg, get a downscaled preview so you can verify the subject.
After each major recipe, get another preview to confirm the result.
Enhance the portrait on the active layer at medium intensity with skin smoothing.
Use the enhance-portrait recipe — I want frequency separation + auto-tone in one undoable step.
If the active layer is text or a Smart Object, rasterize first or pick a raster layer.
Show me a preview when done.
Equivalent MCP prompt template: ps.enhance_portrait with { intensity: "medium", skin_smoothing: "true" }.
Remove the background from the active portrait layer.
Use Select Subject + a layer mask with a 2px feather. Keep the original pixels behind the mask.
The subject must be on the active layer — not a flat color fill.
Equivalent MCP prompt template: ps.remove_background with { feather_px: "2", keep_shadow: "false" }.
Apply a warm film color grade to the open document as non-destructive adjustment layers.
Use the apply-color-grade recipe with preset warm_film.
Preview the result when finished.
Set up frequency separation on the active raster layer with a 6px blur radius.
I will paint on the Low and High layers myself — do not apply extra smoothing.
Tell me which layers to edit when the stack is ready.
Equivalent MCP prompt template: ps.frequency_separation with { radius_px: "6" }.
Prepare the active document for web: sRGB, downscale, sharpen, export one optimized JPEG to ~/.photoshop-mcp/exports.
Then export Instagram post and X post variants as separate JPEGs from the same document.
List the output paths in a table.
Equivalent templates: ps.prepare_for_web, ps.export_social_variants.
I have a mockup PSD open with a Smart Object layer named "Screen".
Replace it with every PNG/JPG in ~/assets/mockups/ and export one JPEG per asset.
Do not place flat layers — swap the Smart Object so perspective is preserved.
Equivalent MCP prompt template: ps.batch_mockup_replace.