Photoshop Full MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Photoshop Full MCPopen the file beach-photo.psd and increase the contrast by 20%"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Photoshop Full MCP v2
Photoshop Full MCP v2 is a local, capability-gated MCP server for Photoshop. It targets the installed Photoshop 2026 (27.9) while avoiding version and install-path assumptions.
Quick Start for Windows
Prerequisites: Windows 10/11, Photoshop 24 or later, Node.js 20 or later, and Codex Desktop or the Codex CLI. Photoshop 2026 (27.9) is the reference host.
Download
photoshop-full-mcp-v2.0.1-windows.zipfrom the latest release, then extract it. The adjacent signed manifest and signature authenticate future in-app updates; the.sha256file is an optional corruption check.Open PowerShell in the extracted
photoshop-full-mcp-2.0.1folder and run:powershell -NoProfile -ExecutionPolicy Bypass -File .\Install.ps1The installer verifies the bundled runtime, installs it under
%LOCALAPPDATA%\PS_MCP, and registers a separatephotoshop_full_mcpserver. The checkout/download folder is no longer needed afterward.Double-click the included
photoshop-full-mcp-v2.0.1.ccxto install the Photoshop plugin. If CCX installation is unavailable, use Adobe UXP Developer Tools and select the installed manifest shown by Doctor.Restart Codex, open Photoshop, then choose Plugins > Photoshop Full MCP Bridge.
In Codex, call
photoshop_pairing_begin, enter the completeport-codevalue shown by the trusted Windows dialog in the Photoshop panel, and callphotoshop_host_describe. A response withbridge.connected: trueis the first-success check.
Run Doctor at any time:
powershell -NoProfile -ExecutionPolicy Bypass -File "$env:LOCALAPPDATA\PS_MCP\app\tools\Doctor.ps1"The default approval mode is automatic. Normal editing commands do not require one-by-one approval clicks. See the illustrated Windows installation guide and troubleshooting guide for update, removal, and recovery steps.
It does not claim that every Photoshop UI feature is scriptable. The catalog separates:
supported: implemented and proven by a live Photoshop fixture on the target hostexperimental: entitlement, model, network, or credit dependentrequires_user: creates a non-blocking job with explicit native-menu instructions that the user must complete; it does not automate OS clicksunverified: inventoried but blocked until a local fixture passesunavailable: no reliable desktop UXP contract is known
Related MCP server: Photoshop MCP Server
Architecture
MCP server: Node.js/TypeScript over stdio
Photoshop bridge: UXP Manifest v5 panel over authenticated
127.0.0.1Discovery: ports
38452through38462Pairing: short-lived 128-bit
port-codecapability shown only in a trusted local Windows dialog opened byphotoshop_pairing_beginExecution: schema validation, capability/risk policy, FIFO queue,
executeAsModal, one-history grouping, and before/after state verificationApprovals: automatic by default; scope-bound one-time tokens, replay protection, path limits, and advanced descriptor allowlists remain enforced
Default file bridge: export and confined re-open use the server-owned
%LOCALAPPDATA%\PS_MCP\exportsfolder without a picker; a user-selected persistent UXP folder remains optionalAdvanced raw batchPlay: hidden by default; set
PS_MCP_ADVANCED=confirmto expose only the parameter-freedeselectandinvertdescriptors. Other raw descriptors and all raw JSX are rejected before they reach PhotoshopTelemetry: none
The broad feature inventory is in catalog/features.json. Executable contracts are in catalog/commands.json.
Current audited state: 101 command contracts (87 supported, 1 experimental, 0 unverified, 11 requires_user, 2 unavailable) and 52 feature groups (21 supported, 1 experimental, 0 unverified, 10 requires_user, 20 unavailable). A command or feature group is promoted to supported only after its signed live Photoshop 27.9 fixture passes. Invalid inherited Generative Fill and Neural Filter descriptors are explicitly unavailable, and malformed or unallowlisted raw descriptors are rejected server-side so they cannot open Photoshop's unknown-command dialog.
Install from source
Release ZIP installation above is recommended. Contributors can instead clone the repository and run:
npm ci --no-audit --no-fund
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\Install-Local.ps1The compatibility wrapper builds once, copies a self-contained production runtime to %LOCALAPPDATA%\PS_MCP, and registers that installed copy. Moving or deleting the source checkout afterward does not break the MCP server. The installer registers photoshop_full_mcp alongside an existing photoshop_mcp; it does not remove or edit the old package.
For the UXP plugin, run npm run uxp:package and install the generated CCX, or load the installed manifest reported by Doctor in Adobe UXP Developer Tools. Optionally choose an export folder in the panel. Without one, document.export uses the authenticated server-owned default export folder.
Update and uninstall
# Download, verify, and install the newest GitHub release
powershell -NoProfile -ExecutionPolicy Bypass -File "$env:LOCALAPPDATA\PS_MCP\app\tools\Update.ps1"
# Remove the installed runtime and Codex registration; preserve pairing and exports
powershell -NoProfile -ExecutionPolicy Bypass -File "$env:LOCALAPPDATA\PS_MCP\app\tools\Uninstall.ps1"
# Also remove pairing state and exports
powershell -NoProfile -ExecutionPolicy Bypass -File "$env:LOCALAPPDATA\PS_MCP\app\tools\Uninstall.ps1" -RemoveUserDataSafe usage sequence
photoshop_host_describephotoshop_capability_listphotoshop_state_getphotoshop_command_search/photoshop_command_describephotoshop_command_executephotoshop_preview_getafter visual changes
Destructive, validation, credit-consuming, and allowlisted advanced commands are approved automatically by the local server, so no Photoshop-panel approval click is needed. photoshop_approval_request remains as a compatibility API and immediately returns a completed scope-bound job. Set PS_MCP_APPROVAL_MODE=panel only if you intentionally want the former click-to-approve workflow. Path sandboxing, capability status gates, replay protection, and raw descriptor allowlists are not bypassed.
For local host validation, launch a temporary server with PS_MCP_VALIDATION=confirm. This exposes photoshop_validation_request and photoshop_command_validate. They accept only catalogued unverified UXP DOM commands, are automatically approved by default, and operate only on documents named PS_MCP_VALIDATION_*. Validation execution never promotes a capability automatically.
Inventory and live evidence audit
npm run check includes a machine audit of every command and feature entry. The audit reports handler presence, live-fixture provenance, catalog-contract digest drift, and status/engine/route consistency. A supported command or feature fails the check unless a matching transaction-bound fixture exists under evidence/live, so an implementation or documentation string alone cannot promote support.
Generate the full read-only report with:
npm run audit:inventory:jsonPromotion review additionally requires a freshly captured photoshop_host_describe result whose bridge is currently connected. The live fixture itself must also carry a valid local evidence signature:
npm run audit:promotion -- --promotion-command selection.ellipse --host-report .\host-describe.jsonThe command fails with LIVE_HOST_DISCONNECTED when the UXP bridge is not live, even if an older fixture exists. Evidence is no longer accepted from caller-authored host, result, or assertion JSON. The recorder starts a validation-profile MCP session itself, verifies the connected Photoshop identity, receives automatic scope-bound approval, executes the command in a PS_MCP_VALIDATION_* document, checks state and pixel-preview hashes, performs the undo round trip when required, closes the temporary document, and signs the transaction receipt:
Set-Content .\validation-args.json '{"left":0,"top":0,"right":64,"bottom":64}'
npm run evidence:record -- --command selection.ellipse --args .\validation-args.jsonThe private evidence-signing key is stored under %LOCALAPPDATA%\PS_MCP with a user-only ACL; only the public verification key is stored in the repository. The recorder writes hashes and whitelisted host/verification metadata only. It does not copy pixels, document contents or names, prompts, bridge tokens, request arguments, or raw Photoshop results. Recording evidence does not edit catalog/commands.json; status promotion remains a separate reviewed change.
Verification
npm run check
npm test
npm --prefix apps\uxp-plugin run check
npm run build
npm run test:contractLive generative tests are intentionally excluded. They must be explicitly approved because they may consume credits and depend on the signed-in Adobe account.
If a validation run is interrupted, inspect the active document before cleanup. The maintenance command is dry-run by default and stops as soon as the active title is not an owned PS_MCP_* validation title:
npm run cleanup:owned-documents
npm run cleanup:owned-documents -- --applyAdding recorded ActionJSON
Capture a command with Photoshop's developer Action Recorder, then generate an unverified catalog entry:
node .\scripts\import-action-recording.mjs --id filters.example --category filter --en "Example Filter" --ko "예제 필터" --file .\recording.jsonThe importer prints a catalog definition and a SHA-256 evidence digest. It never promotes the command to supported; promotion requires an isolated-document integration fixture.
Data locations
Pairing secret and endpoint metadata:
%LOCALAPPDATA%\PS_MCPDefault exports:
%LOCALAPPDATA%\PS_MCP\exportsUXP token: Photoshop UXP secure storage
Secrets and preview image data are never written to logs.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceA professional MCP server that lets AI assistants directly control Adobe Photoshop for document creation, layer management, filters, adjustments, shapes, text, and design intelligence like palette generation and font pairing.322MIT
- AlicenseNot gradedqualityCmaintenanceEnables automation of Photoshop tasks such as PSD editing, layer toggling, text insertion, and exporting through MCP clients like Claude or Cursor.MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to control Adobe Photoshop programmatically, supporting recipe workflows, state awareness, and generative AI features through natural language commands.3,735292MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to control Adobe Photoshop programmatically through natural language, with state awareness, recipe tools, and a standalone UI.3,735MIT
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
MCP server for NanoBanana AI image generation and editing
The Figma MCP server brings Figma design context directly into your AI workflow.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/muhwagwa0112/photoshop-full-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server