Adobe Studio MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ADOBE_MCP_MODE | No | Controls community tool exposure: compact (via adobe_catalog_*), full (all tools listed flat), or off (native only). | compact |
| PIXABAY_API_KEY | No | Pixabay API key for Pixabay search/download tools. | |
| ADOBE_MCP_AE_EXE | No | Custom After Effects executable path. | |
| ADOBE_MCP_AI_EXE | No | Custom Illustrator executable path. | |
| ADOBE_MCP_PR_EXE | No | Custom Premiere Pro executable path. | |
| ADOBE_MCP_PS_EXE | No | Custom Photoshop executable path. | |
| ADOBE_MCP_TOOLSETS | No | Limits native toolsets, e.g. ae,pr,xapp. | all |
| ADOBE_MCP_MEDIA_DIR | No | Directory where downloaded media files are stored. | ~/.adobe-studio-mcp/media |
| ADOBE_MCP_TIMEOUT_MS | No | Default per-call timeout in milliseconds. | 120000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| adobe_statusA | Which Adobe apps are installed (versions, paths), running, and scriptable right now (transport: hub|com|afterfx|osascript), hub panel heartbeats, and next steps. Call first in a session. |
| adobe_launchAppA | Open an Adobe app by command — After Effects, Premiere Pro, Photoshop, Illustrator or Media Encoder — optionally with files (projects/images) and a specific version year; waits until it accepts scripts (wait:false to return immediately). No computer-use needed. |
| adobe_quitAppA | Quit an Adobe app by command. mode: "safe" (default — refuses if anything is unsaved), "save" (saves open work first), "discard" (closes without saving), "force" (kills the process — unsaved work is lost). |
| adobe_openFileA | Open any file in the right Adobe app (.aep→AE, .prproj→Premiere, .psd/.jpg/.png/RAW→Photoshop, .ai/.svg/.eps/.pdf→Illustrator) — launches the app first if needed. app overrides the choice. |
| adobe_runScriptA | Run raw ExtendScript inside an app — full scripting-DOM access to EVERYTHING the app exposes (AE app.project, Premiere app.project + QE (app.enableQE(); qe.project), Photoshop DOM + Action Manager, Illustrator DOM, BridgeTalk). The code is a function body: |
| adobe_batchA | Run many tool calls (any native tool: ae_*, pr_*, ps_*, ai_*, xapp_*, media_*, pixabay_*) in one go, in order — fewer round trips. steps:[{tool, input}]. stopOnError default true. |
| adobe_setupA | One-time setup / repair: installs the Adobe Studio MCP Hub CEP extension (for all 4 apps), enables unsigned CEP extensions (PlayerDebugMode), and turns on After Effects "Allow Scripts to Write Files and Access Network". Restart the apps afterwards. |
| adobe_configB | Read or set Adobe Studio MCP settings stored on this computer: pixabayKey (Pixabay API key), mediaDir (default download folder), ytdlpArgs (extra yt-dlp args). |
| media_youtubeDownloadA | Download video or audio from YouTube (videos, Shorts, playlists) — and 1000+ other sites — with yt-dlp. Formats: mp4 (default, edit-friendly H.264+AAC for AE/Premiere), mov, mkv, webm, mp3, wav, m4a, aac, flac, opus, ogg. quality: best|2160|1440|1080|720|480|360. Clip only a section with start/end. Subtitles (.srt), thumbnail, playlist. Optionally import straight into an Adobe app. Only download content you own or have permission/licence to use. |
| media_infoA | Inspect a YouTube (or other) URL without downloading — title, channel, duration, available resolutions/formats, chapters, subtitles, playlist entries. |
| media_toolsB | Manage the media helper tools: status (yt-dlp/ffmpeg paths & versions), install, update (yt-dlp -U — fixes most YouTube errors), or convert a local file with ffmpeg (to mp4 H.264 / mov ProRes / mp3 / wav / gif / extract audio). |
| pixabay_searchA | Search Pixabay (free licence stock) through the official developer API — photos, illustrations, vectors, videos (film/animation). Filters: orientation, category, colors, min size, editors choice, order popular|latest, safesearch, page/perPage, lang. Returns ids, tags, sizes, previews. (The public API has no music or sound effects.) |
| pixabay_downloadA | Download Pixabay assets by id (from pixabay_search) to disk — images at the best size your key allows (large 1280px, or full-res / vector SVG/AI with full API access), videos at large (4K/1080p) | medium | small | tiny — then optionally import them into AE / Premiere / Photoshop / Illustrator. |
| media_importA | Import downloaded/local media into an Adobe app in one call: ae (project + optional add to comp), pr (bin + optional place on track at time, one after another), ps (place as smart objects in the active doc, or open), ai (place into the active doc, or open). |
| ae_getCompStateA | After Effects: read the active (or named) comp — size, fps, duration, current time, work area and every layer (index, name, type, enabled, in/out, parent, 3D, blend, matte). Call this first. |
| ae_getLayerB | After Effects: full detail of one layer — transform values, keyframe counts, expressions, effects, masks, text. |
| ae_createCompB | After Effects: create a composition (defaults 1920x1080, 30 fps, 10 s) and open it in the viewer. |
| ae_addTextLayerB | After Effects: add a text layer (point text, or paragraph text when boxSize is given) with font, size, color, stroke, tracking, leading, justification and position (default comp center). |
| ae_styleTextA | After Effects: restyle an existing text layer — font, size, color, tracking, leading, justification, caps, faux bold/italic, real text stroke (strokeColor/strokeWidth/strokeOverFill), optionally new text. |
| ae_addTextAnimatorA | After Effects: per-character text animator with a range-selector reveal — typewriter, fadeInChars, scaleInChars, slideInChars, tracking — over |
| ae_addSolidB | After Effects: add a solid layer (default comp size, full duration). |
| ae_addNullA | After Effects: add a null object (for parenting / rigs), optionally 3D and positioned. |
| ae_addAdjustmentB | After Effects: add an adjustment layer (optionally with effects by name/matchName) affecting everything below it. |
| ae_addShapeLayerB | After Effects: add a vector shape layer — rect, roundedRect, ellipse, polygon, star or custom path (points [[x,y],...] relative to the layer center) — with hex fill/stroke. position = layer center (default comp center). |
| ae_addMaskB | After Effects: add a mask to a layer — rect [x,y,w,h], ellipse [x,y,w,h] or path points (layer space) — with mode, feather, expansion, opacity, inverted. |
| ae_addEffectA | After Effects: add ANY effect (built-in or third-party plugin) by display name or matchName, optionally setting parameters {paramName: value} (colors as hex). Use ae_listEffects to discover installed effects. |
| ae_setEffectPropertiesB | After Effects: set parameters of an effect already on a layer: properties {paramNameOrIndex: value}. With time, sets keyframes. |
| ae_setEffectKeyframeB | After Effects: keyframe one effect parameter at a time (optional ease influence %, interpolation linear|bezier|hold). |
| ae_setEffectExpressionB | After Effects: set (or clear with "") an expression on an effect parameter. |
| ae_addExpressionControlB | After Effects: add an expression control (slider/angle/checkbox/color/point/point3d/layer/dropdown) to rig expressions against. |
| ae_setExpressionA | After Effects: set (or clear with "") an expression on any property — aliases (position, scale, rotation, opacity, anchorPoint...) or a path like "Effects>Gaussian Blur>Blurriness" / "Contents>Rectangle 1>...". Returns the expression error if any. |
| ae_applyExpressionTemplateA | After Effects: apply a ready-made expression — wiggle, wiggleSmooth, loopCycle, loopPingpong, loopOffset, loopContinue, bounce, inertia, overshoot, time. params tune it (freq/amp/decay/rate/elasticity/gravity/bounces). bounce/inertia/overshoot ride after your keyframes. |
| ae_linkPropertiesB | After Effects: drive targetLayer.targetProperty from sourceLayer.sourceProperty with an expression (pick-whip), optionally from another comp, scaled by multiplier and offset. |
| ae_setKeyframeB | After Effects: set one keyframe on any property (aliases or path) at time with value; optional ease influence %, interpolation, easeIn/easeOut. |
| ae_setKeyframesB | After Effects: bulk-set many keyframes in one call (cheapest way to build motion). keys: [{layer, property, time, value, ease?, easeIn?, easeOut?, interpolation?}]. |
| ae_getKeyframesB | After Effects: list keyframes of a property — time, value, interpolation and temporal ease. |
| ae_setKeyframeEaseB | After Effects: directional/asymmetric temporal ease on an existing keyframe (by time, keyIndex, or all:true): influenceIn/Out 0-100, speedIn/Out. |
| ae_setInterpolationA | After Effects: set keyframe interpolation (linear|bezier|hold, in/out separately), plus roving / auto-bezier / continuous for spatial props. keyIndex, time, or all keys. |
| ae_setTransformA | After Effects: set transform — position, scale (number or [x,y]), rotation, opacity, anchorPoint, xRotation, yRotation, orientation. With time, sets keyframes instead. |
| ae_setBlendingModeA | After Effects: set a layer blending mode (normal, add, screen, multiply, overlay, softLight, hardLight, colorDodge, colorBurn, difference, luminosity, color, hue, ... any AE mode name). |
| ae_setMotionBlurC | After Effects: toggle motion blur on layers (or all) and the comp switch; shutterAngle/phase/samples. |
| ae_setTrackMatteA | After Effects: use matteLayer as track matte for layer (alpha|alphaInverted|luma|lumaInverted|none). Image on top, shape as alpha matte = clip image into shape. |
| ae_trimLayerB | After Effects: set a layer inPoint/outPoint (or duration) and/or startTime (slides the layer). |
| ae_parentLayerB | After Effects: parent layer(s) to a parent layer (or unparent with parent null). |
| ae_reorderLayerB | After Effects: move a layer to index, or to top/bottom, or above/below another layer. |
| ae_duplicateLayerA | After Effects: duplicate a layer (count copies), optionally rename and offset each copy in time. |
| ae_deleteLayerB | After Effects: delete one or more layers (undoable with Ctrl+Z). |
| ae_precomposeB | After Effects: precompose layers into a new comp (moveAllAttributes default true), optionally open it. |
| ae_importImageA | After Effects: import an image/video/audio/PSD/AI file into the project and (default) add it to the comp — fit contain|cover|width|height|none, position, scale, name. asGuide:true makes a locked 50% guide layer for tracing a reference. PSD/AI with asComp:true import as a layered comp. |
| ae_exportFrameA | After Effects: render one frame of the comp to PNG (default current time) and return it as an image so you can check your work. |
| ae_applyGradientB | After Effects: apply a reliable gradient (Gradient Ramp) with real colors. stops [{color:hex}, ...] (first + last used), type linear|radial, angleDeg (linear direction). |
| ae_getProjectStateB | After Effects: project overview — file path, dirty flag, bit depth, every item (comps/footage/folders with ids, sizes, durations, folder), render queue count, AE version. |
| ae_openProjectA | After Effects: open an .aep/.aepx project (current one must be saved, or pass discardChanges:true). |
| ae_newProjectA | After Effects: start a new empty project (refuses if the current one is unsaved unless discardChanges:true). |
| ae_saveProjectA | After Effects: save the project (Ctrl+S), or Save As when path is given. backup:true also writes a timestamped copy into a "Backups" folder next to the project. |
| ae_importFileB | After Effects: import files (footage, audio, image sequences, PSD/AI as comp or footage, .aep projects, .prproj Premiere projects) into a project folder without adding to a comp. |
| ae_manageItemsC | After Effects: project item ops — rename, move to folder, delete, replace footage source (relink), set label, create folder, consolidate/reduce/remove unused. |
| ae_setCompSettingsC | After Effects: change comp settings — name, width, height, duration, frameRate, pixelAspect, bgColor, work area, render 3D renderer, preserve resolution, shy/frame-blending switches. |
| ae_openCompA | After Effects: open a comp in the viewer/timeline and optionally move the playhead (time) — makes it the active comp. |
| ae_setCurrentTimeC | After Effects: move the comp playhead (current time indicator). |
| ae_addCameraA | After Effects: add a 3D camera (preset focal length mm, e.g. 35/50/85), with optional position/pointOfInterest, one-node (no POI), depth of field (focusDistance, aperture, blurLevel). |
| ae_addLightB | After Effects: add a light — point, spot, parallel, ambient — color, intensity %, position, cone angle/feather, casts shadows. |
| ae_set3DA | After Effects: make layers 3D (or 2D) and optionally set z position (depth) for parallax, plus material options (castsShadows, acceptsLights, acceptsShadows). |
| ae_cameraMoveB | After Effects: animate a camera with a cinematic preset — pushIn, pullOut, truckLeft, truckRight, pedestalUp, pedestalDown, orbit — from startTime over duration, distance px, with smooth ease. Creates a camera if none. |
| ae_setLayerSwitchesC | After Effects: set layer switches — enabled, audioEnabled, solo, shy, locked, guide, collapseTransformation, adjustment, effectsActive, motionBlur, frameBlending, quality (best|draft|wireframe), label (0-16), name, comment, autoOrient, timeRemap. |
| ae_setPropertyA | After Effects: set ANY property by path (any group, effect, shape content, text animator, layer style, material, camera option...) e.g. "Contents>Rectangle 1>Contents>Fill 1>Color", "Effects>CC Light Rays>Intensity", "Layer Styles>Drop Shadow>Opacity". Optional time = keyframe. |
| ae_getPropertiesA | After Effects: dump the property tree of a layer (or a sub-group path) — names, matchNames, values, keys, expressions — to discover exact paths for ae_setProperty / ae_setKeyframe. |
| ae_selectLayersA | After Effects: select layers (and deselect others) — needed before menu commands that act on the selection (ae_executeCommand). |
| ae_addMarkersC | After Effects: add comp or layer markers [{time, comment?, duration?, chapter?, url?, label?}] — e.g. VO word/sync markers. |
| ae_getMarkersA | After Effects: list comp markers (or a layer's markers). |
| ae_deleteMarkersA | After Effects: delete comp/layer markers — all, by index list, or within a time range. |
| ae_timeRemapB | After Effects: enable time remapping on a footage/precomp layer and set remap keys [{time, sourceTime}] (freeze frames, speed ramps), or freezeAt a single time. |
| ae_timeStretchA | After Effects: time-stretch a layer (stretch % — 200 = half speed, -100 = reverse) or set playback speed %. |
| ae_sequenceLayersA | After Effects: arrange layers one after another (like Keyframe Assistant > Sequence Layers) with overlap seconds, or stagger start times by offset. |
| ae_alignLayersA | After Effects: align layers to the comp — left, hCenter, right, top, vCenter, bottom, center — with margin px (uses visual bounds, respects anchor point). |
| ae_listEffectsA | After Effects: list every installed effect — built-in AND third-party plugins (Red Giant, Sapphire, BorisFX, Video Copilot...) — displayName, matchName, category. Filter by text/category. |
| ae_applyPresetC | After Effects: apply an animation preset (.ffx — including third-party preset packs) to layers. |
| ae_executeCommandB | After Effects: run ANY menu command by name ("Create Shapes from Vector Layer", "Convert Audio to Keyframes", "Drop Shadow" layer style, "Scene Edit Detection", script/panel names under Window...) or numeric command id. Acts on the current selection — use ae_selectLayers first. |
| ae_runScriptFileA | After Effects: run a .jsx/.jsxbin script file (any installed script, ScriptUI panel or tool) and return its last value. Scripts in Scripts/ScriptUI Panels can be found with adobe_listPlugins. |
| ae_addToRenderQueueB | After Effects: add a comp to the Render Queue with output path, output-module template (e.g. "H.264 - Match Render Settings - 15 Mbps", "Lossless", "High Quality with Alpha") and render-settings template; work area or custom range. |
| ae_renderQueueB | After Effects: Render Queue — list items/status, clear (remove all), remove index, or render now (blocking, AE internal renderer). |
| ae_queueInAMEA | After Effects: send queued Render Queue items to Adobe Media Encoder (preferred render path), optionally adding a comp first and starting the AME queue immediately. |
| ae_essentialGraphicsB | After Effects: add properties to the Essential Graphics panel ({layer, property, name?}[]), set template name, and/or export the comp as a .mogrt for Premiere. |
| ae_purgeMemoryA | After Effects: purge caches (all memory & disk cache / undo / image cache) to free RAM on heavy projects. |
| ae_shapesFromVectorA | After Effects: convert an Illustrator/vector footage layer into native editable shape layers (Create Shapes from Vector Layer). |
| ae_audioToKeyframesA | After Effects: Convert Audio to Keyframes on an audio layer (creates "Audio Amplitude" null with sliders) — for audio-reactive animation. |
| pr_newProjectA | Premiere Pro: create a new project at path (.prproj) and make it current (save the open project first). |
| pr_getProjectStateB | Premiere Pro: project name/path, sequences (name, id, active) and every project item (bins, clips, sequences, media paths). Call before referencing items. |
| pr_getSequenceStateA | Premiere Pro: active (or named) sequence — frame size, fps, duration, playhead, in/out, every video/audio track (mute/lock) with its clips (1-based index, name, start/end, source in/out, enabled, speed, media path) and markers. Clip numbers change after edits: re-read. |
| pr_openSequenceB | Premiere Pro: open a sequence in the timeline and make it active. |
| pr_createSequenceA | Premiere Pro: create a sequence — from clips (settings match the first clip), from a .sqpreset, or a default preset then width/height/fps applied (e.g. 3840x2160 @ 25). |
| pr_duplicateSequenceA | Premiere Pro: duplicate a sequence (safe copy before big/destructive edits) and optionally rename the copy / open it. |
| pr_importFilesA | Premiere Pro: import media files (video, audio, images, PSD, AI, .aep comps, .mogrt, .srt) into a bin (created if missing). numberedStills imports an image sequence. |
| pr_createBinA | Premiere Pro: create a bin (nested paths like "Footage/Day 1" supported). |
| pr_moveItemsB | Premiere Pro: move project items (names/paths) into a bin; also rename or set a color label. |
| pr_placeClipA | Premiere Pro: place a project item (name/path/media path — or a file path, imported automatically) on a track at a time — overwrite (default) or insert (ripples) — optionally trimmed to source inPoint/outPoint seconds. |
| pr_removeClipsA | Premiere Pro: remove clips from the timeline (media stays in the project). ripple:true closes the gap. |
| pr_razorB | Premiere Pro: razor (cut) at one or more times across all tracks or the listed tracks. |
| pr_removeRangeA | Premiere Pro: cut a time range out of the timeline (razor at start & end, remove what is inside) on all or listed tracks; ripple (default true) shifts later clips left to close the gap. Duplicate the sequence first for safety. |
| pr_trimClipB | Premiere Pro: trim a timeline clip — new timeline start/end (seconds) and/or source inPoint/outPoint. |
| pr_moveClipA | Premiere Pro: move a clip in time (toTime or by offset seconds) and/or to another track of the same type (toTrack, re-placed with the same source in/out). |
| pr_setClipEnabledA | Premiere Pro: enable/disable clips (disabled clips stay on the timeline but do not render). |
| pr_setClipPropertiesA | Premiere Pro: set Motion/Opacity on video clips (scale %, position [x,y] px 0,0 top-left, rotation deg, anchorPoint px, opacity 0-100) or volume dB on audio clips. keyframes:[{time (timeline s), scale?, position?, rotation?, opacity?, volume?, interpolation?}] are ADDED. A static value on a keyframed parameter is refused unless replaceKeyframes:true. |
| pr_getClipPropertiesB | Premiere Pro: every effect component on a clip with its parameters, values and keyframes (Motion, Opacity, Volume, Lumetri, plugins...). |
| pr_findEffectsB | Premiere Pro: search installed video/audio effects and transitions — built-in AND third-party plugins — by name. |
| pr_applyEffectA | Premiere Pro: apply a video or audio effect (built-in or plugin, by exact name from pr_findEffects) to clips, optionally setting its parameters {paramName: value}. |
| pr_setEffectPropertiesA | Premiere Pro: set parameters of any effect component on a clip (by component displayName, e.g. "Lumetri Color", "Gaussian Blur", "Motion") — static values or keyframes [{time, value}] (timeline s). Colors as hex. |
| pr_applyTransitionA | Premiere Pro: add a transition (video: "Cross Dissolve", "Dip to Black", "Film Dissolve"...; audio: "Constant Power"...) at the start, end or both of clips, duration seconds. |
| pr_addGraphicA | Premiere Pro: place a Motion Graphics template — built-in by name (e.g. "Basic Title", "Basic Lower Third") or a .mogrt path (also AE-exported) — on a video track at time; set its text (or texts {paramName: text}) and duration. Returns editable parameter names. |
| pr_importCaptionsB | Premiere Pro: import an .srt (or other caption file) onto a new caption track starting at time (default 0). |
| pr_addCaptionsA | Premiere Pro: add text captions/subtitles from cues [{start, end, text}] (seconds) — builds an .srt and creates a caption track on the sequence. Reliable editable on-screen text. |
| pr_addMarkersA | Premiere Pro: add sequence markers [{time, name?, comment?, duration?, color 0-7?, type comment|chapter|segmentation|weblink, url?}] — e.g. review points before cuts. |
| pr_deleteMarkersA | Premiere Pro: delete sequence markers — all, by name, or in a time range. |
| pr_getSelectionA | Premiere Pro: clips currently selected in the timeline (track + 1-based index usable as clip refs). |
| pr_setInOutB | Premiere Pro: set (or clear) sequence in/out points — or a project item's source in/out with item. |
| pr_setPlayheadB | Premiere Pro: move the timeline playhead to a time. |
| pr_saveProjectA | Premiere Pro: save the project (or Save As path); backup:true also writes a timestamped copy into a "Backups" folder next to it. |
| pr_exportFrameA | Premiere Pro: export the frame at a time (default playhead) as PNG and return it as an image to check the edit. |
| pr_exportA | Premiere Pro: export a sequence with an .epr preset — via Adobe Media Encoder queue (default, starts batch) or directly inside Premiere (direct:true, blocking). range entire|inToOut|workArea. Default preset: "Match Source - Adaptive High Bitrate". |
| pr_exportProjectFileB | Premiere Pro: export the sequence as Final Cut Pro XML (interchange with AE/DaVinci/others), as an AAF, or as a standalone trimmed .prproj (exportAsProject). |
| pr_setClipSpeedB | Premiere Pro: change clip speed (percent, 200 = 2x), reverse, maintain audio pitch, ripple. |
| pr_tracksA | Premiere Pro: track operations — add video/audio tracks, mute/unmute, lock/unlock, target/untarget tracks (for inserts/pastes). |
| pr_clipOpsB | Premiere Pro: clip operations — select/deselect, link/unlink (selection), rename, set color label, replace footage (changeMediaPath on the project item), set name of item. |
| pr_sequenceOpsB | Premiere Pro: sequence-level AI/automation — autoReframe (new aspect sequence, e.g. 9:16 for Shorts), sceneEditDetection (markers or cuts on selected clips), createSubsequence (from in/out), rename, close. |
| pr_applyEditPlanA | Premiere Pro: run many pr_* steps in ONE call, in order: steps:[{tool:"pr_addMarkers", input:{...}}, ...]. Stops at the first error unless stopOnError:false. (Works for any native tool, so ae_/ps_/ai_/xapp_ steps can be mixed in.) |
| ps_getStateA | Photoshop: open documents and the active document — size, resolution, mode, bit depth, path, saved flag, full layer tree (type/kind, visibility, opacity, blend, bounds, text), active layer. |
| ps_newDocumentB | Photoshop: create a new document (px) — width, height, resolution, name, mode rgb|cmyk|gray|lab, fill white|black|transparent|background, bits 8|16|32. |
| ps_openFileA | Photoshop: open image/PSD/PDF/RAW files (asSmartObject opens as smart object). |
| ps_saveDocumentA | Photoshop: save the document — in place (Ctrl+S) or as psd|psb|png|jpg|tif|pdf|webp to path (asCopy default true for non-PSD), jpg quality 0-12, then optionally close. |
| ps_closeDocumentA | Photoshop: close a document — save:true saves first, otherwise changes are discarded. |
| ps_layerOpsC | Photoshop: layer operations — select, rename, show, hide, opacity, fillOpacity, blend, delete, duplicate, moveTop, moveBottom, moveUp, moveDown, lock, unlock, rasterize, mergeDown, translate [dx,dy], resize % [x,y], rotate deg, newLayer, newGroup, groupLayers (names), fillColor. |
| ps_addTextLayerA | Photoshop: add a text layer — text, font (PostScript name), size pt, color, position [x,y] px, justification, paragraph box [w,h], tracking, leading, allCaps, fauxBold. |
| ps_placeFileA | Photoshop: place a file (image, PSD, AI, PDF, video) as an embedded or linked smart object, optionally scaled % and moved so its center is at position [x,y]. |
| ps_adjustmentLayerB | Photoshop: add an adjustment layer — brightnessContrast {brightness, contrast}, hueSaturation {hue, saturation, lightness, colorize}, vibrance {vibrance, saturation}, exposure {exposure, offset, gamma}, levels, curves, colorBalance, blackAndWhite, photoFilter, channelMixer, invert, posterize {levels}, threshold {level}, gradientMap, selectiveColor. clip:true clips it to the layer below. |
| ps_applyFilterA | Photoshop: apply a filter to a layer (converts smart objects? no — on smart objects use ps_actionManager for smart filters) — gaussianBlur {radius}, motionBlur {angle, distance}, unsharpMask {amount, radius, threshold}, addNoise {amount, mono}, highPass {radius}, median {radius}, dustAndScratches {radius, threshold}, clouds, lensFlare? (use ps_actionManager for any other / third-party filter). |
| ps_selectionA | Photoshop: selections — all, none, invert, rect [x,y,w,h], ellipse [x,y,w,h], subject (AI Select Subject), sky, layerTransparency, feather {value}, expand {value}, contract {value}, smooth {value}; then optional fill hex, delete, or mask (adds a layer mask from the selection). |
| ps_removeBackgroundA | Photoshop: AI Remove Background on a layer (adds a layer mask around the subject; smart objects/backgrounds are converted as needed). |
| ps_contentAwareFillA | Photoshop: content-aware fill the current selection (or rect [x,y,w,h]) on the active/named layer — removes objects. |
| ps_layerStyleC | Photoshop: add layer effects — stroke {size, color, position outside|inside|center, opacity}, dropShadow {distance, size, angle, opacity, color, spread}, outerGlow {size, opacity, color, spread}. clear:true removes all effects. |
| ps_resizeB | Photoshop: image size (width/height px, resample), canvas size (anchor), crop [left,top,right,bottom], rotate canvas deg, trim transparent pixels, flatten, flip horizontal/vertical. |
| ps_smartObjectB | Photoshop: smart objects — convert layer to smart object, edit contents (opens it), replace contents with a file, export contents to a file, rasterize. |
| ps_runActionA | Photoshop: play a recorded action from the Actions panel (action name + set name) — including third-party action packs. loadAtn loads an .atn file first. |
| ps_actionManagerA | Photoshop: run ANY Photoshop command (full feature access incl. every filter, neural/AI command, third-party plugin filter, menu item) with batchPlay-style JSON: commands:[{"_obj":"gaussianBlur","radius":{"_unit":"pixelsUnit","_value":4}}, {"_obj":"set","_target":[{"_ref":"layer","_enum":"ordinal","_value":"targetEnum"}],"to":{"_obj":"layer","opacity":{"_unit":"percentUnit","_value":50}}}]. IDs are stringIDs; prefix "$" for a charID ("$Lyr "). Returns result descriptors. dialogs:true shows the plugin dialog. |
| ps_getDescriptorA | Photoshop: read Action Manager properties (application, document, layer, channel...) as JSON — e.g. target [{"_ref":"layer","_enum":"ordinal","_value":"targetEnum"}], optional property "layerEffects". Discover what ps_actionManager can set. |
| ps_runMenuCommandB | Photoshop: run a menu item by its stringID (e.g. "flattenImage", "newPlacedLayer", "copyMerged", "selectAllLayers", "toggleRulers") via app.runMenuItem. |
| ps_exportLayersA | Photoshop: export each top-level layer (or the listed ones) as its own PNG (trimmed or full canvas) into a folder — e.g. cut-outs for After Effects parallax. |
| ps_previewA | Photoshop: render the current document (merged, downscaled to maxSize px) and return it as an image to check your work. |
| ai_getStateB | Illustrator: open documents and the active one — size, color mode, artboards (rects), layers (visible/locked/item counts), selection, item counts by type. |
| ai_newDocumentB | Illustrator: new document — width/height px (pt), color mode rgb|cmyk, number of artboards, name. |
| ai_openFileC | Illustrator: open .ai/.pdf/.eps/.svg files. |
| ai_saveDocumentA | Illustrator: save in place, or save as .ai (PDF-compatible, best for After Effects import) / .pdf / .eps / .svg to path; optionally close. |
| ai_closeDocumentA | Illustrator: close a document (save:true saves first, else discards changes). |
| ai_exportA | Illustrator: export artboard(s) or the document — png (scale %, transparent), jpg, svg, pdf, psd (layered, for Photoshop/AE). Returns the PNG inline when preview:true. |
| ai_addShapeA | Illustrator: draw rect, roundedRect, ellipse, polygon, star, line or path (points [[x,y],...]) at position [x,y] (top-left of the shape, artboard coords) with size [w,h], fill/stroke hex (or "none"), strokeWidth, opacity, name, layer. |
| ai_addTextA | Illustrator: add point text (or area text with box [w,h]) at position [x,y] — font (PostScript name), size, color, justification, tracking, leading, name, layer; outline:true converts to outlines. |
| ai_modifyItemsC | Illustrator: modify items (by name or selection) — fill, stroke, strokeWidth, opacity, moveBy [dx,dy], position [x,y], resize % [x,y], rotate deg, rename, hide/show, lock/unlock, zOrder (front|back|forward|backward), group, ungroup, delete, duplicate, blendMode. |
| ai_layersC | Illustrator: layer ops — list, add, rename, delete, show, hide, lock, unlock, moveToTop, moveToBottom, setActive; moveItems moves named items into the layer. |
| ai_selectB | Illustrator: select items — all, none, by names, by type (PathItem/TextFrame/PlacedItem/GroupItem...), by layer, or by fill color hex. |
| ai_executeMenuCommandA | Illustrator: run ANY menu command by its command string on the current selection — e.g. "group", "ungroup", "outline" (create outlines), "expandStyle", "Live Pathfinder Add", "Live Pathfinder Subtract", "makeMask", "OffsetPath v22", "Make Envelope", "Expand3", "selectall", "deselectall", "fitin", "Live Blend". Third-party plugin menu items work too. |
| ai_runActionB | Illustrator: play a recorded action (action + set), optionally loading an .aia action file first. |
| ai_placeFileA | Illustrator: place an image/PDF/PSD/SVG file at position [x,y] with optional width (keeps ratio); embed:true embeds it; trace:true runs Image Trace (preset e.g. "High Fidelity Photo", "Black and White Logo", "6 Colors") and expands to vectors. |
| ai_applyEffectA | Illustrator: apply a Live Effect via its XML definition to items/selection — e.g. , "Adobe Gaussian Blur", "Adobe Round Corners", "Adobe Offset Path", plugin effects. |
| ai_artboardsC | Illustrator: artboards — list, add [x,y,w,h], remove index, rename, resize rect, setActive, fitToArtwork, rearrange (columns, spacing). |
| xapp_bridgeTalkA | BridgeTalk: from one running Adobe app, send ExtendScript to another (targets: aftereffects, premierepro, photoshop, illustrator, ame, bridge, indesign... optionally versioned "photoshop-27.0") and wait for its result — Adobe's native inter-app messaging. Useful when the target has no direct connection. |
| xapp_aeCompToPremiereA | Dynamic Link: bring After Effects comps into Premiere Pro WITHOUT rendering (live-linked; edits in AE update in Premiere). Uses the saved .aep (saves the open AE project first if aepPath omitted). Optionally places the first comp on a track at time. |
| xapp_premiereToAEA | Send a Premiere Pro sequence to After Effects: saves the Premiere project (or exports a trimmed project with just that sequence), then imports it into AE — sequences become AE comps with the clips as layers (like "Replace with After Effects Composition", but scriptable). |
| xapp_photoshopToAEA | Photoshop → After Effects: save the active (or named) PSD, import it into AE as a layered composition (each PS layer = AE layer, layer styles editable), optionally adding it into a target comp — ideal for parallax / paper-cut animations. |
| xapp_illustratorToAEB | Illustrator → After Effects: save the active AI document (PDF-compatible), import it into AE as a layered comp, and (shapes:true, default) convert every vector layer to native editable AE shape layers. |
| xapp_frameToPhotoshopB | Grab a frame from After Effects (comp) or Premiere (sequence) at a time and open it in Photoshop (new document or as a layer in the active one) — thumbnails, retouching, matte painting. |
| xapp_toPremiereA | Photoshop / Illustrator → Premiere Pro: save the active PS document (PSD or PNG) or export the active AI artboard (PNG), import into a Premiere bin and optionally place on a track at time with a duration. |
| xapp_mogrtToPremiereB | After Effects → Premiere via Motion Graphics template: publish chosen AE properties to Essential Graphics, export the comp as .mogrt, and place it in Premiere with text overrides — editable titles/lower-thirds in the edit. |
| xapp_renderAEToPremiereA | Render an After Effects comp to a file (AE render queue, blocking; e.g. ProRes 4444 / "High Quality with Alpha" / H.264) and import + place the result in Premiere — when Dynamic Link playback is too heavy. |
| xapp_previewA | Look at what any app currently shows: AE comp frame, Premiere frame at playhead, Photoshop document, or Illustrator artboard — returned as an image for a quick visual self-check. |
| adobe_listPluginsA | Discover everything installed for the Adobe apps: effect/filter plugins (.aex/.prm/.8bf/.aip), CEP extensions (panels, with bundle ids/hosts/menus), UXP plugins, ExtendScript scripts & ScriptUI panels, AE presets (.ffx), MOGRTs, Photoshop actions. Filter by app, kind, text. For live in-app effect lists also use ae_listEffects / pr_findEffects. |
| adobe_pluginFileA | Read or edit the files of an installed extension / script / preset (manifest.xml, panel HTML/JS, host .jsx, UXP manifest.json, scripts...). Actions: list (folder), read, write (makes a .mcpbak backup first), restore (from .mcpbak). Restricted to Adobe plugin/extension/script folders. |
| adobe_togglePluginA | Enable or disable an installed plugin / extension / script by path (renames to/from ".disabled" so the app skips it on next launch). Program Files locations may need the MCP to run as administrator. |
| adobe_installPluginA | Install an extension/plugin/script/preset from a file or folder: .zxp/.zip/folder CEP extension → user CEP folder; .ccx UXP plugin → Adobe UPIA installer; .jsx/.jsxbin → AE Scripts (or ScriptUI Panels with panel:true); .ffx → AE User Presets; .mogrt → Premiere Essential Graphics; .atn → loaded into Photoshop; .aex/.8bf/.aip/.prm → the app Plug-ins folder (admin may be needed). |
| adobe_extensionsB | Talk to CEP extensions/panels LIVE inside a running app (through the Adobe Studio MCP Hub): list loaded extensions, open or close a panel by extension id, dispatch a CSEvent to extensions (many panels listen for events), listen for events and read them back, get host environment. Call a panel's ExtendScript functions with adobe_runScript. |
| adobe_catalog_searchA | Search ~550 extra tools from the bundled community Adobe MCPs (ae1/ae2 After Effects, pr1 Premiere 280 tools, ps1 Photoshop 128 tools incl. Firefly generative AI, ai1 Illustrator 66 tools). Use when no native tool fits; then adobe_catalog_describe → adobe_catalog_call. |
| adobe_catalog_describeB | Full description and input JSON schema of a catalog tool (name like "ps1__photoshop_generative_fill"). |
| adobe_catalog_callB | Call a catalog tool from a bundled community MCP with its arguments: {tool:"pr1__add_transition", arguments:{...}}. |
| adobe_catalog_librariesB | Status of the bundled community MCP libraries (installed/built, tool counts, setup notes); refresh:true reconnects and rebuilds the catalog. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 182 tools
The app prefixes (ps_, ai_, ae_, pr_, xapp_) make broad selection manageable, and most tools have distinct actions. However, there are many overlapping escape-hatch tools such as adobe_runScript, xapp_bridgeTalk, ps_actionManager, ps_runMenuCommand, ae_executeCommand, and catalog tools, plus generic property setters versus specific transform/keyframe setters. These overlaps will cause misselection despite detailed descriptions.
Tool names consistently use an app or domain prefix followed by a camelCase action or noun, which makes them predictable across Photoshop, Illustrator, After Effects, Premiere, cross-app, media, and Adobe-level groups. Minor deviations exist in noun-only and multi-operation names like ps_layerOps, ai_layers, pr_tracks, adobe_status, and adobe_batch, so the pattern is not perfectly uniform.
At 182 tools, the surface is far beyond a well-scoped set and creates a severe selection burden for an agent. Although the server spans four Adobe apps plus media and plugin management, the sheer volume is an extreme mismatch for practical tool coherence.
The tool surface is extremely comprehensive across Photoshop, Illustrator, After Effects, and Premiere, covering documents, layers, effects, keyframes, rendering, captions, cross-app workflows, media handling, and plugin management. Generic scripting and catalog tools provide escape hatches for gaps, so there are no obvious dead ends for the stated Adobe automation domain.