Drive Adobe CC (AE, Photoshop, Illustrator, Premiere, Character Animator) from any MCP client
Adobe MCP server is a locally run integration for AI assistants that speak the Model Context Protocol. Drive Adobe CC (AE, Photoshop, Illustrator, Premiere, Character Animator) from any MCP client.
Drives After Effects, Photoshop, Illustrator, Premiere Pro (and Character Animator puppet authoring) from Claude. See ROADMAP.md for the full tool matrix and what is next. Bridge: MCP client → this server → AppleScript DoScript → AE → temp result file → back.
The server ships on npm as @ajsmonty/adobe-mcp, so your MCP client can launch it on demand — there is no separate build step. Add the server block to your client's configuration, restart it, and the tools register themselves.
Once Adobe is connected, these are the calls the assistant has available:
run_extendscript — Run arbitrary JSX; return comes back as JSON. Auto undo-groupedget_project_state — Project item tree, or one comp's layers in detail (comp_name)save_frame — Render a comp frame to PNG, returned inline so Claude can see its worklist_ae_scripts — List .jsx/.jsxbin tools in scripts/ with descriptions from header commentsrun_ae_script — Execute a library script, like File → Scripts → Run Script FileCursor — Settings → MCP → Add server, or edit ~/.cursor/mcp.json (global) / .cursor/mcp.json (per-project):Windsurf — ~/.codeium/windsurf/mcp_config.json — same mcpServers shape as Claude Desktop/Cursor aboveYou will need one environment variable: AE_APP_NAME. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
Plenty of developer tooling servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Adobe's toolset — run_extendscript, get_project_state, save_frame and 4 more — is a fair guide to whether it matches your workflow. It is maintained by AJSMonty; worth a glance at recent repository activity before you build anything load-bearing on it.
We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.
| Tool | What it does |
|---|---|
| run_extendscript | Run arbitrary JSX; return <value> comes back as JSON. Auto undo-grouped. |
| get_project_state | Project item tree, or one comp's layers in detail (comp_name). |
| save_frame | Render a comp frame to PNG, returned inline so Claude can *see* its work. |
| list_ae_scripts | List .jsx/.jsxbin tools in scripts/ with descriptions from header comments. |
| run_ae_script | Execute a library script, like File → Scripts → Run Script File. |
| Cursor | Settings → MCP → Add server, or edit ~/.cursor/mcp.json (global) / .cursor/mcp.json (per-project): |
| Windsurf | ~/.codeium/windsurf/mcp_config.json — same mcpServers shape as Claude Desktop/Cursor above. |
{
"mcpServers": {
"adobe": {
"command": "npx",
"args": ["-y", "@ajsmonty/adobe-mcp"],
"env": {
"AE_APP_NAME": "your-value"
}
}
}
}Add to claude_desktop_config.json, then restart Claude Desktop.
| Variable | Description | Required |
|---|---|---|
| AE_APP_NAME | Configuration value read at startup. | Optional |
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
GitHub's official server — repos, issues, pull requests, Actions and code security, straight from your assistant.
Issue tracking at the speed of conversation — Linear's official hosted server with OAuth and zero install.
Local repository surgery — status, diffs, commits, branches and history for any repo on disk.
Timezone sanity for AI — current time anywhere and correct conversions, without the model doing date math.