Atlas / MCP servers / mikechambers / Adobe Agent

Adobe AgentBLOCK

mcp/mikechambers/adobe-agent

None

Verdict
BLOCK
Grade
D
Trust score
63 /100
Exposed tools
93 44r · 42w · 7d
Transport
—
License
MIT
Stars
715
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

adb-mcp is a proof of concept project to enabled AI control of Adobe tools (Adobe Photoshop and Adobe Premiere) by providing an interface to LLMs via the MCP protocol.

The project is not endorsed by nor supported by Adobe.

It has been tested with Claude desktop (Mac and Windows) from Anthropic, as well as the OpenAI Agent SDK, and allows AI clients to control Adobe Photoshop and Adobe Premiere. Theoretically, it should work with any AI App / LLM that supports the MCP protocol, and is built in a way to support multiple Adobe applications.

Example use cases include:

  • Giving Claude step by step instruction on what to do in Photoshop, providing a conversational based interface (particularly useful if you are new to Photoshop).
  • Giving Claude a task (create an instagram post that looks like a Polariod image, create a double exposure) and letting it create it from start to finish to use as a template.
  • Asking Claude to generate custom Photoshop tutorials for you, by creating an example file, then step by step instructions on how to recreate.
  • As a Photoshop utility tool (have Claude rename all of your layers into a consistent format)
  • Have Claude create new Premiere projects pre-populations with clips, transitions, effects and Audio

View Video Examples

The Premiere agent is a bit more limited in functionality compared to the Photoshop agent, due to current limitations of the Premiere plugin API.

How it works

The proof of concept works by providing:

  • A MCP Server that provides an interface to functionality within Adobe Photoshop to the AI / LLM
  • A Node based command proxy server that sits between the MCP server and Adobe app plugins
  • An Adobe app (Photoshop and Premiere) plugin that listens for commands, and drives the programs

AI MCP Server Command Proxy Server Photoshop / Premiere UXP Plugin Photoshop / Premiere

Read from source at commit 5511d4beb1f9OBSERVED · 2026-09-28
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add uxp-template-ps-starter -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "uxp-template-ps-starter": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ]
    }
  }
}
03

Exposed tools (93)

44 read · 42 write · 7 destructive. Blast radius: 7 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
add_black_and_white_adjustment_layerwriteAdds a Black & White adjustment layer to the specified layer.
add_black_and_white_effectwrite
add_brightness_contrast_adjustment_layerwriteAdds an adjustment layer to the layer with the specified ID to adjust brightness and contrast
add_color_balance_adjustment_layerwriteAdds an adjustment layer to the layer with the specified ID to adjust color balance
add_drop_shadow_layer_styledestructiveAdds a drop shadow layer style to the layer with the specified ID
add_gaussian_blur_effectwrite
add_layer_mask_from_selectionwriteCreates a layer mask on the specified layer defined by the active selection.
add_marker_to_sequencewrite
add_media_to_sequencewrite
add_motion_blur_effectwrite
add_stroke_layer_stylewriteAdds a stroke layer style to the layer with the specified ID.
add_tint_effectwrite
add_vibrance_adjustment_layerwriteAdds an adjustment layer to layer with the specified ID to adjust vibrance and saturation
align_contentread
append_video_transitionread
apply_gaussian_blurwriteApplies a Gaussian Blur to the layer with the specified ID
apply_motion_blurwriteApplies a Motion Blur to the layer with the specified ID
call_batch_play_commandread
clear_selectiondestructiveClears / deselects the current selection
close_gaps_on_sequenceread
copy_merged_selection_to_clipboardreadCopies the selected pixels from all visible layers to the system clipboard.
copy_selection_to_clipboardreadCopies the selected pixels from the specified layer to the system clipboard.
create_bin_in_active_projectwrite
create_documentwrite
create_gradient_layer_stylewrite
create_multi_line_text_layerwrite
create_pixel_layerwriteCreates a new pixel layer with the specified ID
create_projectwrite
create_sequence_from_mediawrite
create_single_line_text_layerwrite
crop_documentreadCrops the document to the active selection.
cut_selection_to_clipboardreadCopies and removes (cuts) the selected pixels from the specified layer to the system clipboard.
delete_layerdestructiveDeletes the layer with the specified ID
delete_selectiondestructiveRemoves the pixels within the selection on the pixel layer with the specified ID
duplicate_documentreadDuplicates the current Photoshop Document into a new file
duplicate_layerread
edit_text_layerwrite
execute_extend_scriptwrite
export_framereadCaptures a specific frame from the sequence at the given timestamp
export_layers_as_pngreadExports multiple layers from the Photoshop document as PNG files.
export_pngread
export_sequenceread
fill_selectionreadFills the selection on the pixel layer with the specified ID
flatten_all_layersread
flip_layerreadFlips the layer with the specified ID on the specified axis.
generate_imagereadUses Adobe Firefly Generative AI to generate an image on a new layer with the specified layer name.
generative_fillreadUses Adobe Firefly Generative AI to perform generative fill within the current selection.
get_active_document_inforead
get_document_imagereadReturns a jpeg of the current visible Photoshop document as an MCP Image object that can be displayed.
get_document_inforeadRetrieves information about the currently active document.
get_documentsread
get_layer_boundsreadReturns the pixel bounds for the layer with the specified ID
get_layer_imagereadReturns a jpeg of the specified layer
get_layerswriteReturns a nested list of dicts that contain layer info and the order they are arranged in.
get_project_inforead
get_sequence_frame_imagereadReturns a jpeg of the specified timestamp in the specified sequence in Premiere pro as an MCP Image object that can be displayed.
group_layersread
harmonize_layerreadHarmonizes (matches lighting and other settings) the selected layer with the background layers.
import_mediawrite
invert_selectionreadInverts the current selection in the Photoshop document
move_layerwriteMoves the layer within the layer stack based on the specified position
move_project_items_to_binwrite
open_fileread
open_photoshop_filereadOpens the specified Photoshop-compatible file within Photoshop.
open_projectreadOpens the Premiere project at the specified path.
paste_from_clipboardreadPastes the current clipboard contents onto the specified layer.
place_imagereadPlaces the image at the specified path on the existing pixel layer with the specified id.
rasterize_layerreadConverts the specified layer into a rasterized (flat) image.
remove_backgrounddestructiveAutomatically removes the background of the image in the layer with the specified ID and keeps the main subject
remove_item_from_sequencedestructive
remove_layer_maskdestructiveRemoves the layer mask from the specified layer.
rename_layerswriteRenames one or more layers
rotate_layerreadRotates the layer with the specified ID.
save_documentwriteSaves the current Photoshop Document
save_document_aswriteSaves the current Photoshop document to the specified location and format.
save_document_image_as_pngwrite
save_projectwrite
save_project_aswriteSaves the current Premiere project to the specified location.
scale_layerreadScales the layer with the specified ID.
select_ellipsereadCreates an elliptical selection and selects the specified layer
select_polygonreadCreates an n-sided polygon selection and selects the specified layer
select_rectanglereadCreates a rectangular selection and selects the specified layer
select_skyreadAutomatically selects the sky in the specified layer.
select_subjectreadAutomatically selects the subject in the specified layer.
set_active_documentwrite
set_active_sequencewrite
set_audio_track_mutewrite
set_clip_disabledwrite
set_clip_start_end_timeswrite
set_layer_propertieswriteSets the blend mode and opacity properties on the layer with the specified ID
set_layer_visibilitywriteSets the visibility of the layer with the specified ID
set_video_clip_propertieswrite
translate_layerread
04

Trust audit

BLOCKgrade D · trust 63/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (2 observation(s))
Network
declared (6 observation(s))
Shell
declared (3 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (12)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
uxp/id/socket.io.js:679
return Function("return this")();
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
uxp/pr/socket.io.js:679
return Function("return this")();
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
uxp/ps/socket.io.js:679
return Function("return this")();
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
uxp/ps/main.js:149
let url = `http://127.0.0.1:3030/commands/get/${APPLICATION}/`;
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
add_drop_shadow_layer_style, clear_selection, delete_layer, delete_selection, remove_background, remove_item_from_sequence, remove_layer_mask
Why it matters. 7 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.hidden_file · CWE-1104
cep/com.mikechambers.ae/.debug
.debug
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
cep/com.mikechambers.ai/.debug
.debug
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
mcp/ps-mcp.py:268
jpeg_bytes = base64.b64decode(base64_data)
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
mcp/ps-mcp.py:288
jpeg_bytes = base64.b64decode(base64_data)
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
mcp/ps-mcp.py:311
raw_bytes = base64.b64decode(response['rawDataBase64'])
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
adb-proxy-socket/package.json
express, socket.io, socket.io-client
Why it matters. 3 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
mcp/requirements.txt
fonttools, python-socketio, mcp, requests, websocket-client
Why it matters. 5 requirement(s) not pinned with ==
Fix. pin exact versions

Gates applied: no_behavioural_pass.

Audited 2026-09-28 · audit v0.4.1 · source sha 5511d4beb1f9full audit observations/trust-audit/mcp-server/mikechambers__adobe-agent.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-09-285511d4beb1f9BLOCKD63first audit
06

Questions

What is the Adobe Agent MCP server?

None

What tools does Adobe Agent expose?

93 in total: 44 read-only, 42 that write, and 7 that can delete or overwrite (add_drop_shadow_layer_style, clear_selection, delete_layer, delete_selection, remove_background). Every one is listed on this page with its risk.

Is Adobe Agent safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (63/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 7 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does Adobe Agent need?

No credential environment variables were found in its source, so it appears to need none.

How current is this page?

The grade is for one exact copy of the source (5511d4beb1f9), read on 2026-09-28. The repository is watched and re-audited when it changes.

Advertisement