After Effects MCP Server
NPM · ADOBE-MCP-AFTEREFFECTS
Drive Adobe After Effects from any MCP client: compositions, layers, animation and rendering.
Available components
Last scanned (6 hours ago)
Scores higher than 38% of npm servers
Category Design and Media
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 3 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability60
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 32116 tokens (~195/item across 164 items; 164 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage99
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 96% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 8 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 165 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 21 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 20 Oct 26 53
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 23 Oct 2026 · Analysed npm/adobe-mcp-aftereffects@0.1.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 95 packages
| Packages resolved | 95 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_comp_marker Add Comp Marker ~92
Add a composition marker at a time, with a comment, duration, chapter and web link
| Name | Type | Req | Description |
|---|---|---|---|
| chapter | string | – | – |
| comment | string | – | – |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| duration | number | – | Seconds |
| time | number | yes | Seconds |
| url | string | – | – |
No output schema declared.
No examples provided.
add_essential_graphics_controls Add Essential Graphics Controls ~130
Add controls to a composition's Essential Graphics panel (Animation > Add Property to Essential Graphics): properties such as Source Text, colours, sliders, checkboxes, angles, 2D points and scale, Dropdown Menu Controls (optionally setting their menu items) and 3D shadow colour, or footage and precomposition layers as media replacement. A nested composition then shows them as Essential Properties
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| controls | array | yes | Controls to add, in order |
No output schema declared.
No examples provided.
add_layer Add Layer ~181
Add a layer (Layer > New): solid, null, adjustment, text, shape, camera or light, or a project item (footage or composition) as a layer, at the top of the composition
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | Solid and adjustment colour. Default white |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| duration | number | – | Seconds; default the composition duration |
| height | integer | – | – |
| item | integer | – | type item: the project item id to add |
| lightType | string | – | type light. Default point |
| name | string | – | – |
| text | string | – | type text: the text |
| type | string | yes | – |
| width | integer | – | Solid size; default the composition size |
No output schema declared.
No examples provided.
add_mask Add Mask ~195
Add a mask to layers: a rectangle or ellipse from bounds, or a path from points, all in the layer's own pixel coordinates; with its mode, feather, opacity, expansion and inversion
| Name | Type | Req | Description |
|---|---|---|---|
| bounds | object | – | Rectangle or ellipse bounds |
| closed | boolean | – | Path: closed. Default true |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| expansion | number | – | Pixels |
| feather | number | – | Pixels |
| inverted | boolean | – | – |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| mode | string | – | Default add |
| name | string | – | – |
| opacity | number | – | – |
| points | array | – | Path points [[x, y], ...] |
| shape | string | – | Default rectangle |
No output schema declared.
No examples provided.
add_protected_region Add Protected Region ~160
Protect part of a composition's timing so it keeps its length when the composition is nested or the template is stretched (Composition > Responsive Design - Time > Create Intro, Create Outro or Create Protected Region from Work Area), or protect a custom span: a composition marker with Protected Region on
| Name | Type | Req | Description |
|---|---|---|---|
| comment | string | – | Marker comment |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| duration | number | – | custom: duration, seconds |
| region | string | yes | intro: the first 15% of the duration; outro: the last 15%; work_area; custom: start and duration |
| start | number | – | custom: start, seconds |
No output schema declared.
No examples provided.
add_shape_content Add Shape Content ~276
Add shapes to shape layers (the Timeline panel's Add menu), or to a new shape layer: groups (which can hold items of their own), rectangle, ellipse, polystar and free paths, fill, stroke, gradient fill and gradient stroke, and the path operations Merge Paths, Offset Paths, Pucker & Bloat, Repeater, Round Corners, Trim Paths, Twist, Wiggle Paths, Wiggle Transform and Zig Zag, each with its settings. Items are added in order at the end of the group. Gradient colours are set in the Gradient Editor
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| group | array | – | The group to work in: names or 1-based indexes of nested groups from the layer's Contents, e.g. ["Shape 1"]. Omit for Contents itself |
| items | array | yes | Items to add, in order (paint and operations act on the paths above them in the same group) |
| layerName | string | – | Name of the new shape layer when layers is omitted |
| layers | object | – | Shape layers to add to; omit to create a new shape layer |
| time | number | – | Seconds: set the values as keyframes at this time |
No output schema declared.
No examples provided.
add_text_layer Add Text Layer ~180
Add a text layer (Layer > New > Text, or the Horizontal and Vertical Type tools): point text, or paragraph text in a box, horizontal or vertical, optionally named and placed
| Name | Type | Req | Description |
|---|---|---|---|
| boxSize | array | – | Paragraph text: [width, height] of the box in pixels. Default half the composition size |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| kind | string | – | point text (default) or paragraph text in a box |
| name | string | – | Layer name |
| orientation | string | – | Horizontal Type tool (default) or Vertical Type tool |
| position | array | – | [x, y] in pixels from the composition's top-left |
| text | string | yes | The text; line breaks start new lines |
No output schema declared.
No examples provided.
aftereffects_status After Effects Status ~71
Check that After Effects is reachable: platform, how the server addresses After Effects, whether it is running, its version and project. Use this first when a call fails to connect
| Name | Type | Req | Description |
|---|---|---|---|
| probe | boolean | – | Ask After Effects for its version and project (starts it if it is not running). Default true |
No output schema declared.
No examples provided.
align_video_to_data Align Video To Data ~132
Align Video to Data (Layer > Time): offset video layers in time by the frame counts their names have in a data layer's mgJSON videoSyncTimeList. Selects the data layer and the video layers and makes the composition active
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| dataLayer | integer | yes | Index of the mgJSON data layer |
| layers | object | yes | The video layers to align. Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
No output schema declared.
No examples provided.
apply_camera_tracker Apply Camera Tracker ~223
Track the camera of footage layers (Animation > Track Camera): apply the 3D Camera Tracker effect, or change the one already applied, and set Solve Method, Detailed Analysis, Auto-delete Points Across Time and Hide Warning Banner. After Effects analyses the layer in the background; creating a camera or content from the solved points is done in the Composition panel
| Name | Type | Req | Description |
|---|---|---|---|
| addNew | boolean | – | Add another instance even when the layer already has 3D Camera Tracker. Default false: change the existing one |
| autoDeletePoints | boolean | – | Advanced > Auto-delete Points Across Time |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| detailedAnalysis | boolean | – | Advanced > Detailed Analysis |
| hideWarningBanner | boolean | – | Advanced > Hide Warning Banner |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| solveMethod | string | – | Advanced > Solve Method: a hint about the scene |
No output schema declared.
No examples provided.
apply_color_effect Apply Color Effect ~297
Apply a colour effect (Effect > Color Correction or Utility) to layers, or to a new adjustment layer at the top of the composition so it affects everything below and final renders: Lumetri Color, Curves, Levels, Hue/Saturation, Exposure and other grading effects; Broadcast Colors to keep output broadcast-safe; Color Profile Converter to simulate an output type in renders. Set controls by display name with properties
| Name | Type | Req | Description |
|---|---|---|---|
| adjustmentLayer | boolean | – | Apply to a new adjustment layer spanning the composition, at the top |
| broadcastLocale | string | – | broadcast_colors: Broadcast Locale |
| broadcastMethod | string | – | broadcast_colors: How To Make Color Safe |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| effect | string | yes | The colour effect |
| layerName | string | – | Name of the new adjustment layer. Default: the effect name |
| layers | object | – | Apply to these layers. Which layers. Give indexes (1-based, from list_layers), names, or selected: true. Omit with adjustmentLayer: true |
| maxSignalIre | number | – | broadcast_colors: Maximum Signal Amplitude (IRE) |
| properties | object | – | Control display names to values (numbers, arrays, booleans; menus take their 1-based item number), e.g. { "Exposure": 0.5 } |
No output schema declared.
No examples provided.
apply_effect Apply Effect ~151
Apply an effect to layers (Effect menu) by match name (e.g. "ADBE Gaussian Blur 2") or display name, optionally setting its properties by name, e.g. { "Blurriness": 20 }
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| effect | string | yes | Match name or display name |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| name | string | – | Rename the applied effect |
| properties | object | – | Property display names to values (numbers, arrays, booleans) |
No output schema declared.
No examples provided.
apply_preset Apply Preset ~93
Apply an animation preset (.ffx) to layers (Animation > Apply Animation Preset)
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| presetFile | string | yes | Absolute .ffx path |
No output schema declared.
No examples provided.
apply_warp_stabilizer Apply Warp Stabilizer ~493
Apply Warp Stabilizer VFX to layers (Animation > Warp Stabilizer VFX), or change the one already applied, and set its controls: Result, Smoothness, Method, Preserve Scale, Framing, Auto-scale, Additional Scale, Detailed Analysis, Rolling Shutter Ripple, Crop Less <-> Smooth More, synthesis options, Objective, Target Layer, Track Point Size, Auto-delete Points and Hide Warning Banner. After Effects analyses the layer in the background after the effect is added or its analysis settings change
| Name | Type | Req | Description |
|---|---|---|---|
| actionSafeMargin | number | – | Auto-scale > Action-Safe Margin percent |
| addNew | boolean | – | Add another instance even when the layer already has Warp Stabilizer. Default false: change the existing one |
| additionalScale | number | – | Additional Scale percent |
| autoDeletePoints | boolean | – | Advanced > Auto-delete Points Across Time |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| cropLessSmoothMore | number | – | Advanced > Crop Less <-> Smooth More percent |
| detailedAnalysis | boolean | – | Advanced > Detailed Analysis |
| framing | string | – | Framing: how moving edges are handled |
| hideWarningBanner | boolean | – | Advanced > Hide Warning Banner |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| maximumScale | number | – | Auto-scale > Maximum Scale percent |
| method | string | – | Method: the most complex stabilization allowed |
| objective | string | – | Objective: stabilize, reverse, or apply the motion to a target layer |
| preserveScale | boolean | – | Preserve Scale |
| result | string | – | Result: smooth the camera move or remove it |
| rollingShutterRipple | string | – | Advanced > Rolling Shutter Ripple |
| smoothness | number | – | Smoothness percent (Smooth Motion) |
| synthesisEdgeCropping | object | – | Advanced > Synthesis Edge Cropping, pixels trimmed from each edge |
| synthesisEdgeFeather | number | – | Advanced > Synthesis Edge Feather |
| synthesisInputRange | number | – | Advanced > Synthesis Input Range, seconds |
| targetLayer | integer | – | Target Layer index for the apply_motion_to_target objectives |
| trackPointSize | number | – | Advanced > Track Point Size percent |
No output schema declared.
No examples provided.
arrange_layers Arrange Layers ~105
Change the stacking order: move layers to the top, to the bottom, or before or after another layer
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| order | string | yes | – |
| relativeTo | integer | – | Layer index, for before and after |
No output schema declared.
No examples provided.
arrange_shape_content Arrange Shape Content ~233
Rearrange shape items in a group: delete, duplicate, move to a position, Group Shapes (wrap the items in a new group), Ungroup Shapes (dissolve groups) or Convert To Bezier Path (turn a rectangle, ellipse or polystar into a free path). Grouping, ungrouping and converting open the composition and run the Layer > Mask and Shape Path command on the items
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | What to do with the items |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| group | array | – | The group to work in: names or 1-based indexes of nested groups from the layer's Contents, e.g. ["Shape 1"]. Omit for Contents itself |
| items | array | yes | Items in the group, by name or 1-based index |
| layers | object | yes | Which shape layers: indexes (1-based), names, or selected: true |
| toIndex | integer | – | move: the new 1-based position in the group |
No output schema declared.
No examples provided.
choose_layer_tool Choose Layer Tool ~67
Choose a layer tool in the Tools panel: Rotation, Pan Behind (Anchor Point) or Selection, for the user's next drag in the Composition panel. To rotate or move an anchor point from here, use set_transform
| Name | Type | Req | Description |
|---|---|---|---|
| tool | string | yes | rotation, pan_behind or selection |
No output schema declared.
No examples provided.
configure_render_engine Configure Render Engine ~136
Turn Multi-Frame Rendering on or off with a CPU limit for the next render, start, pause, continue or end Watch Folder mode (File > Watch Folder: After Effects then renders projects saved into the folder and stops taking other work), and report whether this After Effects is a render-only engine
| Name | Type | Req | Description |
|---|---|---|---|
| folder | string | – | start: absolute path of the folder to watch |
| maxCpuPercent | integer | – | Most CPU Multi-Frame Rendering may use, 1-100. Default 100 |
| multiFrameRendering | boolean | – | Use Multi-Frame Rendering |
| watchFolder | string | – | Watch Folder mode |
No output schema declared.
No examples provided.
control_render_queue Control Render Queue ~95
Show or hide the Render Queue panel (Window > Render Queue), pause, continue or stop a render in progress, turn the whole-queue completion notification on or off, and read progress: each item's status, start time and elapsed time
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | Default status. pause, continue and stop act on the render in progress |
| notify | boolean | – | Send a Creative Cloud notification when the whole queue finishes |
No output schema declared.
No examples provided.
convert_expression_to_keyframes Convert Expression To Keyframes ~210
Bake a property's expression into a keyframe on every frame and switch the expression off, keeping its text (Animation > Keyframe Assistant > Convert Expression to Keyframes). Keyframes already in the span are replaced
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| from | number | – | Start (seconds). Default the layer's in point |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| property | – | yes | A property: a shortcut (anchor_point, position, scale, rotation, opacity, x_rotation, y_rotation, orientation, source_text, time_remap, audio_levels) or a path of match names or display names from th… |
| to | number | – | End (seconds). Default the layer's out point |
No output schema declared.
No examples provided.
convert_text_layers Convert Text Layers ~149
Convert layers with a Layer menu command: Create Shapes from Text (new shape layers with the outlines), Create Masks from Text (a solid with a mask per character), or Convert to Editable Text (Photoshop text layers to After Effects text). Selects the layers and runs the command in their composition
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | shapes: Create Shapes from Text; masks: Create Masks from Text; editable: Convert to Editable Text |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
No output schema declared.
No examples provided.
copy_animation Copy Animation ~221
Copy from one layer's property to properties on other layers: its keyframes (Edit > Copy and Paste, or Paste Reverse Keyframes with reverse), its expression only (Edit > Copy Expression Only), or a link: an expression on each target that follows the source, as Edit > Copy With Property Links then Paste, or dragging the expression pick whip, would write
| Name | Type | Req | Description |
|---|---|---|---|
| from | object | yes | The source |
| keys | object | – | With what: keyframes, which source keyframes. Which keyframes of the property: those matching any of indexes, the from/to time range, times or selected. Omit for all of them |
| reverse | boolean | – | With what: keyframes, paste them in reverse time order (Paste Reverse Keyframes) |
| time | number | – | With what: keyframes, where the first pasted keyframe lands (seconds). Default the source times |
| to | object | yes | The targets |
| what | string | yes | keyframes, expression (the expression only), or link (a property link expression) |
No output schema declared.
No examples provided.
create_comp Create Comp ~393
Create a composition (Composition > New Composition) with a size, pixel aspect, duration, frame rate and background colour, optionally in a folder, and open it
| Name | Type | Req | Description |
|---|---|---|---|
| adaptiveSampleLimit | integer | – | Motion blur Adaptive Sample Limit |
| backgroundColor | string | – | "#RRGGBB" or "rgb(r,g,b)" (0-255) |
| dropFrame | boolean | – | Drop Frame timecode (29.97 and 59.94 fps); false is Non-Drop Frame |
| duration | number | yes | Seconds |
| folder | integer | – | Folder id |
| frameBlending | boolean | – | Timeline switch: Enable Frame Blending for the composition |
| frameRate | number | yes | Frames per second |
| height | integer | yes | Pixels |
| hideShyLayers | boolean | – | Timeline switch: Hide Shy Layers |
| motionBlur | boolean | – | Enable motion blur for the composition |
| name | string | yes | – |
| pixelAspect | number | – | Default 1 |
| preserveNestedFrameRate | boolean | – | Preserve frame rate when nested or in render queue |
| preserveNestedResolution | boolean | – | Preserve resolution when nested |
| resolution | string | – | Resolution: full, half, third or quarter |
| resolutionFactor | array | – | Custom resolution: render every [x, y]th pixel |
| samplesPerFrame | integer | – | Motion blur Samples Per Frame |
| shutterAngle | number | – | – |
| shutterPhase | number | – | Motion blur Shutter Phase, degrees |
| startFrame | integer | – | Start Frame: the number shown for the first frame, when the project counts frames |
| startTimecode | number | – | Start Timecode: the time shown for the first frame, in seconds |
| width | integer | yes | Pixels |
| workAreaDuration | number | – | Seconds |
| workAreaStart | number | – | Seconds |
No output schema declared.
No examples provided.
create_comp_from_items Create Comp From Items ~218
Make compositions from footage or compositions in the Project panel (File > New Comp from Selection): one per item, or one holding them all, sized and timed from an item, optionally with the layers in sequence and added to the Render Queue
| Name | Type | Req | Description |
|---|---|---|---|
| addToRenderQueue | boolean | – | Add each new composition to the Render Queue |
| items | array | yes | Project item ids (from list_items) |
| mode | string | – | each: one composition per item (the default); single: one composition with every item as a layer, the first on top |
| name | string | – | single: the composition name; default the first item's name |
| overlap | number | – | sequenceLayers: seconds each layer overlaps the one before |
| sequenceLayers | boolean | – | single: place the layers one after another in time |
| stillDuration | number | – | Seconds for still images. Default 5 |
| useDimensionsFrom | integer | – | single: the item id whose size and frame rate the composition takes; default the first item |
No output schema declared.
No examples provided.
create_folder Create Folder ~59
Add a folder to the Project panel, optionally inside another folder, and move items into it
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | – | Item ids to move into the new folder |
| name | string | yes | – |
| parent | integer | – | Parent folder id |
No output schema declared.
No examples provided.
create_footage_item Create Footage Item ~184
Add a footage item without adding a layer: a colour-bar placeholder for footage that is not available yet (File > Import > Placeholder) or a solid (File > Import > Solid), optionally into a folder
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | solid: colour, "#RRGGBB" or "rgb(r,g,b)" |
| duration | number | – | placeholder: seconds. Default 10 |
| folder | integer | – | Put the item in this folder (id) |
| frameRate | number | – | placeholder: frames per second. Default 30 |
| height | integer | – | Pixels. Default 1080 |
| kind | string | yes | What to add |
| name | string | yes | Item name |
| pixelAspect | number | – | solid: pixel aspect ratio. Default 1 |
| width | integer | – | Pixels. Default 1920 |
No output schema declared.
No examples provided.
create_proxy Create Proxy ~177
Queue a composition to render as its own proxy (File > Create Proxy > Still or Movie): adds a Render Queue item whose post-render action is Set Proxy. Render it with render_queue
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| kind | string | yes | still: one frame; movie: the whole composition |
| outputFile | string | yes | Absolute path of the proxy file; the extension should match the output module |
| outputModule | string | – | Output module template. Default "Photoshop" for a still when it exists, otherwise the default template |
| renderSettings | string | – | Render settings template, e.g. "Draft Settings" |
| time | number | – | still: the frame, in seconds. Default the current time |
No output schema declared.
No examples provided.
create_shapes_from_vector_layer Create Shapes From Vector Layer ~97
Convert Illustrator, PDF or SVG footage layers to shape layers (Layer > Create > Create Shapes from Vector Layer). Each new shape layer is placed above its source, which is turned off
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| layers | object | yes | Vector footage layers: indexes (1-based), names, or selected: true |
No output schema declared.
No examples provided.
delete_layers Delete Layers ~67
Delete layers from a composition
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
No output schema declared.
No examples provided.
detect_scene_edits Detect Scene Edits ~146
Find the cuts in video footage layers (Layer > Scene Edit Detection) and add a marker at each, split the layer at each cut, or split and pre-compose each scene; none only returns the cut times
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| mode | string | – | markers: Create Layer Markers; split: Split Layer; split_precomp: Split Layer and Create Pre-comps; none: report the cuts only. Default markers |
No output schema declared.
No examples provided.
duplicate_comp Duplicate Comp ~56
Duplicate a composition (Edit > Duplicate), optionally renaming the copy
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| name | string | – | – |
No output schema declared.
No examples provided.
duplicate_layers Duplicate Layers ~91
Duplicate layers (Edit > Duplicate), or copy them into another composition
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| toComp | integer | – | Copy into this composition (id) instead |
No output schema declared.
No examples provided.
edit_comp_guides Edit Comp Guides ~159
Add, move, remove or clear a composition's ruler guides (View > Add Guide, Edit Guide, Clear Guides). Positions are pixels from the left (vertical guides) or top (horizontal guides); guides are numbered from 1 in the order they were added
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | add a guide, move or remove guide n, or clear all guides |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| guide | integer | – | move, remove: the guide number (1 = first added; add returns it) |
| orientation | string | – | add: the guide's direction |
| position | number | – | add, move: pixels |
No output schema declared.
No examples provided.
edit_keyframes Edit Keyframes ~625
Change existing keyframes of a property (Animation > Keyframe Interpolation, Keyframe Velocity, Keyframe Assistant, the Graph Editor buttons and the keyframe context menu): interpolation presets such as Easy Ease, Easy Ease In/Out, Auto Bezier, Continuous Bezier, Linear and Toggle Hold Keyframe; incoming and outgoing interpolation and ease (speed and influence of the Bezier handles); Rove Across Time; motion path tangents; keyframe colour label; the value of every chosen keyframe (Edit Value); and Time-Reverse Keyframes. keys.times adds a keyframe where none exists, holding the value there, as the keyframe navigator or the Pen tool on a motion path does
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| easeIn | object | – | Incoming temporal ease (Keyframe Velocity dialog, Graph Editor handle): speed and influence for every dimension |
| easeOut | object | – | Outgoing temporal ease: speed and influence for every dimension |
| inInterpolation | string | – | Incoming interpolation |
| keys | object | – | Which keyframes of the property: those matching any of indexes, the from/to time range, times or selected. Omit for all of them |
| label | integer | – | Keyframe colour label, 0 (none) to 16 |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| outInterpolation | string | – | Outgoing interpolation |
| preset | string | – | linear, bezier, auto_bezier, continuous_bezier, hold (both sides), toggle_hold (outgoing Hold, or back to Auto Bezier), easy_ease, easy_ease_in, easy_ease_out |
| property | – | yes | A property: a shortcut (anchor_point, position, scale, rotation, opacity, x_rotation, y_rotation, orientation, source_text, time_remap, audio_levels) or a path of match names or display names from th… |
| roving | boolean | – | Rove Across Time (spatial properties; the first and last keyframes never rove) |
| spatialAutoBezier | boolean | – | Auto Bezier on the motion path (spatial properties only) |
| spatialContinuous | boolean | – | Continuous Bezier on the motion path (spatial properties only) |
| spatialTangents | object | – | Motion path direction handles, relative to the keyframe, in pixels (spatial properties only) |
| temporalAutoBezier | boolean | – | Auto Bezier in time |
| temporalContinuous | boolean | – | Continuous Bezier in time |
| timeReverse | boolean | – | Time-Reverse Keyframes: mirror the chosen keyframes in time within their span (done before the other changes) |
| value | – | – | New value for every chosen keyframe: a number, an array of numbers, text or true/false |
No output schema declared.
No examples provided.
edit_markers Edit Markers ~401
Composition and layer markers (Layer > Add Marker, the Marker dialog): list, add (or set a numbered composition marker 0-9), edit comment, duration, chapter, web link, cue point, label and protected region, remove one or all, move the current time to a marker, or Update Markers From Source. Give layers for layer markers; omit them for composition markers
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | list, add, update, remove, remove_all, go_to, update_from_source (layers whose source has markers) |
| at | – | – | add: where to put the marker; update, remove, go_to: the marker at this time. Seconds, or "current_time" (the default), "comp_start" or "comp_end" |
| chapter | string | – | – |
| comment | string | – | – |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| cuePointName | string | – | – |
| duration | number | – | Seconds |
| eventCuePoint | boolean | – | Cue point type: true event, false navigation |
| frameTarget | string | – | Web link frame target |
| label | integer | – | Label colour (0 none) |
| layers | object | – | Layer markers on these layers; omit for composition markers. Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| marker | integer | – | update, remove, go_to: the marker's number in time order (1 = first), instead of at |
| number | integer | – | Composition markers: the numbered marker 0-9 (add moves it if it exists; update, remove, go_to find it) |
| parameters | object | – | Cue point parameters, name to value |
| protectedRegion | boolean | – | Protected region (composition markers with a duration) |
| url | string | – | Web link |
No output schema declared.
No examples provided.
edit_project_metadata Edit Project Metadata ~80
Read or replace the project's XMP metadata (shown in the Metadata panel and in Adobe Bridge). showPanel toggles Window > Metadata
| Name | Type | Req | Description |
|---|---|---|---|
| showPanel | boolean | – | Toggle the Metadata panel. Default false |
| xmp | string | – | A complete XMP packet (x:xmpmeta) that replaces the project's. Omit to read it |
No output schema declared.
No examples provided.
execute_aftereffects_code Execute After Effects Code ~79
Run your own ExtendScript in After Effects and return its last expression. It runs unrestricted: it can change or delete anything, read or write files, and run system commands (system.callSystem, which needs Allow Scripts to Write Files and Access Network). Prefer the specific tools
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | ExtendScript (ES3) source |
No output schema declared.
No examples provided.
export_motion_graphics_template Export Motion Graphics Template ~154
Export a composition as a Motion Graphics template (.mogrt) (File > Export > Export As Motion Graphics Template) to the Local Templates Folder or a folder on a local drive. The file is named after the template name
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| folder | string | – | Absolute folder to save into. Omit for the Local Templates Folder (Essential Graphics templates) |
| overwrite | boolean | – | Replace a file of the same name. Default false |
| templateName | string | – | Set the template name (and file name) first. Default: the current template name, or the composition name |
No output schema declared.
No examples provided.
find_effects Find Effects ~134
Browse the effects on the Effect menu by category (Blur & Sharpen, Distort, Generate, Expression Controls, ...) or by name, from the built-in effect catalog: display name, match name, category, the controls After Effects documents for each, and whether this After Effects has it installed (Effect menu; Effects & Presets panel)
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Only effects in this Effect menu category |
| controls | boolean | – | Include each effect's documented controls |
| limit | integer | – | Most effects to return |
| query | string | – | Only effects whose display name or match name contains this text |
No output schema declared.
No examples provided.
find_fonts Find Fonts ~133
Search the fonts After Effects can use (Character panel font menu, app.fonts) by name, or list only variable fonts or missing and substituted fonts. Returns PostScript names for set_text, families and styles, variable font axes, and the favourite and recent font lists
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Most fonts to return. Default 200 |
| missing | boolean | – | List the project's missing or substituted fonts instead |
| query | string | – | Text to find in the family, style, full or PostScript name; omit for all |
| variableOnly | boolean | – | Only variable fonts (with design axes) |
No output schema declared.
No examples provided.
find_missing_dependencies Find Missing Dependencies ~98
Find missing footage, effects or fonts (File > Dependencies > Find Missing Footage, Find Missing Effects, Find Missing Fonts). Footage and fonts are listed; reveal also runs the menu command, which shows them in the Project or Timeline panel. Missing effects can only be revealed
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | yes | What to look for |
| reveal | boolean | – | Run the Find Missing menu command too. Default false; always true for effects |
No output schema declared.
No examples provided.
find_project_items Find Project Items ~96
Search the project like the Project panel search field (File > Find): items whose name or comment contains text, and items that are missing, unused or used, optionally of one type
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | – | missing: footage whose file cannot be found; unused or used in any composition |
| text | string | – | Text to find in names and comments (case-insensitive) |
| type | string | – | Only this type |
No output schema declared.
No examples provided.
get_aftereffects_info Get After Effects Info ~84
Describe the running After Effects and the computer: version, build, language, memory in use, render-engine and watch-folder modes, operating system, the project's GPU acceleration (File > Project Settings) and the types available, whether viewer updates are paused, and the values of preference keys you name
| Name | Type | Req | Description |
|---|---|---|---|
| preferences | array | – | Preference keys to read from the preferences files |
No output schema declared.
No examples provided.
get_color_management Get Color Management ~104
Read the project's colour settings (File > Project Settings > Color): bit depth, working colour space, working gamma, Linearize Working Color Space, Blend Colors Using 1.0 Gamma and Compensate for Scene-referred Profiles, and optionally the ICC colour profiles that can be the working space
| Name | Type | Req | Description |
|---|---|---|---|
| listProfiles | boolean | – | Also list the colour profiles available as working spaces |
| query | string | – | Only profiles whose description contains this text (case-insensitive) |
No output schema declared.
No examples provided.
get_effect_controls Get Effect Controls ~201
Read the controls of effects on layers (Effect Controls panel): each control's name, match name, type (number, menu, point, point3d, color, layer, mask, topic, group or custom; checkboxes are numbers 0 or 1), current value, menu choices, range, units, keyframe count and expression
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| effect | – | – | An effect already on the layer: its name in the Effect Controls panel (e.g. "Gaussian Blur 2"), its match name, or its position (1 = top). Omit for every effect on the layers |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| time | number | – | Read values at this time (seconds) instead of the current time |
No output schema declared.
No examples provided.
get_footage_info Get Footage Info ~97
Describe footage items (Project panel, Interpret Footage): source kind (file, solid, placeholder), file and missing path, alpha, frame rates, fields and pulldown, pixel aspect, loop, proxy and the compositions that use each item
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | – | Footage item ids. Omit for every footage item |
| missingOnly | boolean | – | Only items whose source file is missing. Default false |
No output schema declared.
No examples provided.
get_project_info Get Project Info ~43
Describe the open project: file, unsaved changes, bit depth, working colour space, expression engine, item counts by type, the active item and the render queue
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_property Get Property ~193
Read a layer property: its value, keyframes (time, value, interpolation) and expression. Properties are named by a shortcut or a path of match names or names; this includes the Data group of a data-driven layer
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| property | – | yes | A property: a shortcut (anchor_point, position, scale, rotation, opacity, x_rotation, y_rotation, orientation, source_text, time_remap, audio_levels) or a path of match names or display names from th… |
| time | number | – | Also read the value at this time (seconds) |
No output schema declared.
No examples provided.
get_render_item Get Render Item ~87
Read Render Queue items in full (Render Queue panel): status, start and elapsed render time, log level, notification, time span, every render setting and every output module's format, file, file name template, post-render action and settings, by the names set_render_settings and set_output_module accept
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | – | 1-based queue indexes; omit for every item |
No output schema declared.
No examples provided.
get_text Get Text ~109
Read text layers' Source Text: text, font (with its PostScript name, family, style and variable axes), character and paragraph formatting, point or paragraph text and box size, and where each paragraph and composed line starts and ends
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
No output schema declared.
No examples provided.
How do I install the After Effects MCP Server server?
After Effects MCP Server runs locally as an npm package, launched with npx -y adobe-mcp-aftereffects. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · adobe-mcp-aftereffects
claude mcp add zachshallbetter-adobe-mcp-aftereffects -- npx -y adobe-mcp-aftereffects
What is the After Effects MCP Server server?
After Effects MCP Server is listed in the public MCP registry as io.github.zachshallbetter/adobe-mcp-aftereffects. Drive Adobe After Effects from any MCP client: compositions, layers, animation and rendering. This page covers its npm package (adobe-mcp-aftereffects).
Is the After Effects MCP Server server safe to use?
After Effects MCP Server scores 68 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 23 October 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the After Effects MCP Server server expose?
After Effects MCP Server exposes 164 tools: get_project_info, list_items, import_files, create_folder, manage_items, and 159 more. Their descriptions and schemas cost roughly 31,764 tokens of context every time the server is loaded.
Is the After Effects MCP Server server still maintained?
After Effects MCP Server is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the After Effects MCP Server server under?
After Effects MCP Server declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.