Local MCP server enabling AI agents to automate Adobe Creative Cloud desktop apps. Works with Claude Desktop, Claude Code, and any MCP-compatible agent.
| App | Status | Tools |
|---|---|---|
| Photoshop | Full automation (UXP plugin) | 34 tools + arbitrary script execution |
| Illustrator | Full automation (macOS only) | 7 tools (AppleScript + ExtendScript) |
| InDesign | Discovery only | 2 tools (status + capability reporting) |
| Acrobat | Discovery only | 2 tools (status + capability reporting) |
| After Effects | Discovery only | 2 tools (status + capability reporting) |
| Premiere Pro | Discovery only | 2 tools (status + capability reporting) |
Plus 4 core tools for health checks, app status, and capability discovery across all apps.
- Node.js v20.11.0 or later
- Photoshop 25.0+ (for Photoshop automation)
- macOS (for Illustrator automation — Windows not yet supported)
git clone https://github.com/digibranders/adobe-mcp.git
cd adobe-mcp
npm install && npm run buildAdd to your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"adobe-desktop-mcp": {
"command": "node",
"args": ["/absolute/path/to/adobe-mcp/dist/index.js"],
"env": {
"ADOBE_MCP_LOG_LEVEL": "info"
}
}
}
}Add to your Claude Code settings (.claude/settings.json or global config):
{
"mcpServers": {
"adobe-desktop-mcp": {
"command": "node",
"args": ["/absolute/path/to/adobe-mcp/dist/index.js"],
"env": {
"ADOBE_MCP_LOG_LEVEL": "info"
}
}
}
}Replace
/absolute/path/to/adobe-mcpwith the actual path where you cloned the repo.
Requires Photoshop 25.0+.
# macOS
chmod +x scripts/install-photoshop-plugin.sh
./scripts/install-photoshop-plugin.sh
# Windows — double-click or run from Command Prompt
scripts\install-photoshop-plugin.bat- Restart Photoshop (if it was already running)
- Go to Plugins > Adobe MCP to open the panel
- The panel auto-connects to the MCP server and auto-reconnects on disconnection
If the plugin doesn't appear in the Plugins menu after installation:
- Download and open UXP Developer Tool
- Click Add Plugin and select the
plugins/photoshop-uxpdirectory - Click Load to activate it in Photoshop
- After the first load, it persists across restarts
AI Agent (Claude) ←→ MCP Server (Node.js, stdio) ←→ HTTP Bridge (localhost:47123) ←→ UXP Plugin (inside Photoshop)
- The MCP server runs as a Node.js process and communicates with the AI agent over stdio
- For Photoshop, a local HTTP bridge listens on
localhost:47123 - The UXP plugin (running inside Photoshop) polls the bridge for pending commands
- Commands execute via Photoshop's batchPlay API, and results flow back to the agent
- For Illustrator, the bridge uses macOS AppleScript to run ExtendScript inside Illustrator
The Photoshop plugin must have its panel open for the bridge to work. It auto-reconnects with exponential backoff if the connection drops.
| Tool | Description |
|---|---|
adobe_desktop_health |
Get MCP server health info (version, config) |
adobe_desktop_get_app_status |
Get runtime status for a specific Adobe app |
adobe_desktop_list_apps |
List all Adobe apps with their current status |
adobe_desktop_get_capability_matrix |
Full capability matrix for all apps (bridge strategies, feasibility scores) |
| Category | Tools |
|---|---|
| Status | get_status, list_supported_operations, bridge_status |
| Documents | create_document, open_document, save_document, close_document, list_documents, inspect_active_document, set_active_document, export_active_document, canvas_snapshot |
| Layers | add_text_layer, add_shape_layer, duplicate_layer, delete_layer, get_layer_info, set_layer_properties, transform_layer (move/scale/rotate), copy_layer_to_document, flatten_image, merge_visible |
| Editing | resize_image, crop_document, fill_color, apply_adjustment (brightness/contrast, hue/sat, curves, levels), apply_filter (gaussian blur, motion blur, sharpen, unsharp mask, noise) |
| Selections | select_all, deselect, select_color_range |
| History | undo (multi-step), redo (multi-step) |
| Automation | run_action (run Photoshop Actions), run_script (arbitrary UXP JavaScript) |
All tool names are prefixed with
photoshop_(e.g.photoshop_create_document).
photoshop_run_script accepts arbitrary UXP JavaScript, giving access to the full Photoshop API beyond the built-in tools.
photoshop_canvas_snapshot exports a scaled PNG so the AI can visually inspect the current canvas state.
| Tool | Description |
|---|---|
illustrator_get_status |
Check availability, version, and bridge config |
illustrator_list_supported_operations |
List all supported operations |
illustrator_create_document |
Create new document (dimensions, artboards, color space) |
illustrator_open_document |
Open document from file path |
illustrator_inspect_document |
Get metadata (dimensions, artboards, layers, page items) |
illustrator_export_document |
Export to PNG, JPEG, SVG, PDF, AI, EPS |
illustrator_run_script |
Execute custom ExtendScript with full Illustrator DOM access |
Illustrator bridge is macOS only (uses AppleScript + ExtendScript).
InDesign, Acrobat, After Effects, and Premiere Pro each expose:
<app>_get_status— check if the app is running and its version<app>_list_supported_operations— list what operations the bridge supports
These apps have adapter stubs ready for future plugin development but do not yet support automation commands.
| Variable | Default | Description |
|---|---|---|
ADOBE_MCP_LOG_LEVEL |
info |
Log level (debug, info, warn, error) |
ADOBE_MCP_TEMP_ROOT |
~/.adobe-desktop-mcp |
Temp directory for bridge IPC files |
ADOBE_MCP_PROBE_CACHE_TTL_MS |
15000 |
How long to cache app status probes (ms) |
ADOBE_MCP_PHOTOSHOP_PLUGIN_PORT |
47123 |
HTTP bridge port for Photoshop UXP plugin |
ADOBE_MCP_PHOTOSHOP_PLUGIN_TOKEN |
adobe-mcp-dev-token |
Auth token for bridge communication |
ADOBE_MCP_ILLUSTRATOR_PATH |
auto-detect | Path to Illustrator.app (macOS) |
Each app supports ADOBE_MCP_<APP>_ENABLED, _PATH, _MIN_VERSION, _PLUGIN_PORT, and _PLUGIN_TOKEN where <APP> is one of: PHOTOSHOP, ILLUSTRATOR, INDESIGN, ACROBAT, AFTEREFFECTS, PREMIERE.
Example: ADOBE_MCP_PHOTOSHOP_ENABLED=false disables the Photoshop adapter entirely.
- Do keep the Photoshop plugin panel open while using Photoshop tools — the bridge only works when the panel is active
- Do use
photoshop_bridge_statusto check the connection before running a batch of commands - Do use
photoshop_canvas_snapshotto visually verify the result after making changes - Do use
photoshop_run_scriptfor complex operations not covered by built-in tools — it has full Photoshop API access - Do use
photoshop_inspect_active_documentbefore manipulating layers to get accurate layer IDs - Do use
adobe_desktop_get_app_statusto check if an app is running before sending commands - Do save your document before running destructive operations (flatten, merge, crop)
- Do use
photoshop_undoif a command produces unexpected results — it supports multi-step undo - Do use
illustrator_run_scriptfor Illustrator operations beyond the built-in 7 tools
- Don't close the Photoshop plugin panel while automation is running — the bridge will disconnect
- Don't send commands to Photoshop while a modal dialog is open (e.g. Save As, Print) — commands will time out
- Don't assume layer IDs persist across sessions — always re-inspect the document to get current IDs
- Don't try to use Generative Fill/Expand via
run_script— these are cloud-gated and have no API access - Don't use Illustrator tools on Windows — the AppleScript bridge is macOS only
- Don't expect real-time canvas previews —
canvas_snapshotcaptures a static PNG at the moment of the call - Don't run multiple MCP server instances on the same port — they will conflict on port 47123
- Don't change the bridge token in the environment without also updating it in the plugin panel's Advanced settings
- Don't rely on discovery-only app tools (InDesign, Acrobat, etc.) for automation — they only report status
- Make sure you ran the install script and restarted Photoshop afterward
- Check that your Photoshop version is 25.0 or later (
Help > About Photoshop) - Try loading manually via UXP Developer Tool → Add Plugin → select
plugins/photoshop-uxp
- Make sure the MCP server is running (it starts the HTTP bridge automatically)
- Check that nothing else is using port 47123 (
lsof -i :47123on macOS) - Verify the bridge URL in the plugin's Advanced section matches
http://127.0.0.1:47123 - Click Reconnect in the plugin panel
- Check that Photoshop doesn't have a modal dialog open (Save As, alerts, etc.)
- Verify the plugin panel shows Connected status
- For long operations, some tools accept an optional
timeoutparameter (up to 300,000ms)
- Confirm you are on macOS — the Illustrator bridge uses AppleScript
- Ensure Illustrator is running and has granted automation permissions (
System Settings > Privacy & Security > Automation) - Check the
ADOBE_MCP_ILLUSTRATOR_PATHenv var if auto-detect fails
- Verify Node.js version:
node --version(must be v20.11.0+) - Ensure you ran
npm install && npm run buildfirst - Check the
dist/index.jsfile exists
- Generative Fill/Expand: Cloud-gated features with no API access
- 3D layers / Video timeline: Not exposed via batchPlay
- Canvas snapshots are static: Not real-time previews, captured at the moment of the call
- Photoshop panel must be open: The UXP plugin bridge only works when the panel is visible
- Illustrator is macOS-only: The AppleScript bridge does not work on Windows
- Discovery-only apps: InDesign, Acrobat, After Effects, and Premiere have status reporting only — automation plugins are not yet implemented
npm run dev # Run server locally with tsx (no build needed)
npm run typecheck # Type check without emitting
npm test # Run tests (vitest)
npm run build # Production build to dist/MIT