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 (13 hours ago)
Scores higher than 39% 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 →
set_roto_brush Set Roto Brush ~302
Set the Roto Brush & Refine Edge effect's settings on layers (Effect Controls panel): propagation (Search Radius, View Search Radius, Motion Threshold, Motion Damping, Edge Detection, Enable Classic Controls, Use Alternate Color Estimation), matte (Feather, Contrast, Shift Edge, Reduce Chatter, Smooth) for the Roto Brush or Refine Edge matte, and refinement (Fine-tune Refine Edge Matte, Extend Where Smoothed, Increase Radius, View Map). Settings are found by their English names. Segmentation strokes and propagation are done by hand with the Roto Brush and Refine Edge tools
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| effect | string|integer | – | Which effect, by name or 1-based index in the Effect Controls panel; omit for every one of its kind on the layer |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| matte | string | – | Which matte group feather, contrast, shiftEdges, reduceChatter and smooth apply to. Default roto |
| properties | object | – | Any other setting of the effect by name or match name, to a number or true/false |
| settings | object | – | Settings to change |
| time | number | – | Seconds: set keyframes at this time |
No output schema declared.
No examples provided.
set_shape_content Set Shape Content ~1,314
Change settings of existing shape items: group Transform and Blend Mode; rectangle, ellipse, polystar and path geometry and Reverse Path Direction; fill and stroke colour, opacity, Stroke Width, Line Cap, Line Join, Dashes, Taper, Wave, Fill Rule and Composite; gradient type, Start and End Point and Highlight; and the path operations' settings (Merge Paths Mode, Repeater copies, offset and composite, Trim Multiple Shapes, Offset Paths copies, Zig Zag points, Wiggle Paths correlation, ...). Each option must apply to every item named
| Name | Type | Req | Description |
|---|---|---|---|
| amount | number | – | Offset Paths: Amount (pixels); Pucker & Bloat: Amount (percent); Wiggle Paths, Zig Zag: Size (pixels) |
| anchor | array | – | Group, repeater: Transform Anchor Point |
| angle | number | – | Twist: Angle, degrees |
| blendMode | integer | – | Group, fill, stroke, gradients: Blend Mode, as numbered in its menu (1 = Normal) |
| center | array | – | Twist: Center |
| color | string | – | Fill, stroke: colour, "#RRGGBB" or "rgb(r,g,b)" |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| composite | string | – | Fill, stroke, gradients: Composite (below or above previous in same group); repeater: copies stack below or above |
| copies | number | – | Offset Paths, repeater: Copies |
| copyOffset | number | – | Offset Paths: Copy Offset |
| correlation | number | – | Wiggle Paths, Wiggle Transform: Correlation, percent |
| dashOffset | number | – | Stroke, gradient stroke: dash Offset, pixels |
| dashes | array | – | Stroke, gradient stroke: Dashes as [dash, gap, dash, gap, dash, gap], up to three pairs |
| detail | number | – | Wiggle Paths: Detail; Zig Zag: Ridges per segment |
| enabled | boolean | – | Turn the items on or off (eye switch) |
| end | number | – | Trim Paths: End, percent |
| endOpacity | number | – | Repeater: Transform End Opacity, percent |
| endPoint | array | – | Gradients: End Point |
| fillRule | string | – | Fill, gradient fill: Fill Rule |
| gradientType | string | – | Gradients: linear or radial |
| 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 |
| highlightAngle | number | – | Gradients (radial): Highlight Angle, degrees |
| highlightLength | number | – | Gradients (radial): Highlight Length, percent |
| innerRadius | number | – | Polystar (star): inner radius, pixels |
| innerRoundness | number | – | Polystar (star): inner roundness, percent |
| 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 |
| lineCap | string | – | Stroke, gradient stroke: Line Cap |
| lineJoin | string | – | Stroke, gradient stroke, offset paths: Line Join |
| mergeMode | string | – | Merge Paths: Mode |
| miterLimit | number | – | Stroke, gradient stroke, offset paths: Miter Limit |
| name | string | – | Rename the item (one item only) |
| offset | number | – | Repeater: Offset (copies); Trim Paths: Offset (degrees) |
| opacity | number | – | Group: Transform Opacity; fill, stroke, gradients: Opacity, percent |
| outerRadius | number | – | Polystar: outer radius, pixels |
| outerRoundness | number | – | Polystar: outer roundness, percent |
| path | object | – | Path: { vertices: [[x, y], ...], inTangents, outTangents (relative to each vertex), closed (default true) } |
| pointType | string | – | Wiggle Paths, Zig Zag: Points |
| position | array | – | Rectangle, ellipse, polystar: centre; group, repeater: Transform Position |
| properties | object | – | Any other property of the item by match name or name (a nested one as "Group > Property"), to a number, array, text or true/false |
| radius | number | – | Round Corners: Radius, pixels |
| randomSeed | number | – | Wiggle Paths, Wiggle Transform: Random Seed |
| reversed | boolean | – | Rectangle, ellipse, polystar, path: Reverse Path Direction |
| rotation | number | – | Polystar: rotation; group, repeater: Transform Rotation, degrees |
| roundness | number | – | Rectangle: corner roundness, pixels |
| scale | array | – | Group, repeater: Transform Scale [x, y] percent |
| size | array | – | Rectangle, ellipse: [width, height] pixels |
| skew | number | – | Group: Transform Skew |
| skewAxis | number | – | Group: Transform Skew Axis, degrees |
| spatialPhase | number | – | Wiggle Paths, Wiggle Transform: Spatial Phase, degrees |
| starPoints | number | – | Polystar: number of points |
| starType | string | – | Polystar: star or polygon |
| start | number | – | Trim Paths: Start, percent |
| startOpacity | number | – | Repeater: Transform Start Opacity, percent |
| startPoint | array | – | Gradients: Start Point |
| taper | object | – | Stroke, gradient stroke: Taper |
| temporalPhase | number | – | Wiggle Paths, Wiggle Transform: Temporal Phase, degrees |
| time | number | – | Seconds: set keyframes at this time. Default: static values, or keyframes at the current time on animated properties |
| trimMultiple | string | – | Trim Paths: Trim Multiple Shapes |
| wave | object | – | Stroke, gradient stroke: Wave |
| width | number | – | Stroke, gradient stroke: Stroke Width, pixels |
| wigglesPerSecond | number | – | Wiggle Paths, Wiggle Transform: Wiggles/Second |
No output schema declared.
No examples provided.
set_solid_settings Set Solid Settings ~190
Change a solid layer's solid (Layer > Solid Settings): name, colour and size, either for every layer that uses the solid (Affect All Layers That Use This Solid) or for these layers only, through a new solid
| Name | Type | Req | Description |
|---|---|---|---|
| affectAllLayers | boolean | – | Change the solid itself, so every layer using it changes (default true); false gives these layers a new solid |
| color | string | – | "#RRGGBB" or "rgb(r,g,b)" (0-255) |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| height | integer | – | Pixels |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| name | string | – | Solid name |
| width | integer | – | Pixels |
No output schema declared.
No examples provided.
set_text Set Text ~865
Set a text layer's Source Text and formatting (Character and Paragraph panels) for the whole layer or a range of characters or paragraphs: font (by PostScript name, or family and style), size, fill and stroke, tracking, kerning, leading, scale, baseline shift and super/subscript, caps, ligatures, tsume, digits, indents, spacing, justification, composer, direction and orientation, step changes, and Reset Character/Paragraph. Applies at the current time if Source Text is animated
| Name | Type | Req | Description |
|---|---|---|---|
| adjust | object | – | Step changes added to the current values, as the Character panel shortcuts do (negative to decrease) |
| allCaps | boolean | – | All Caps |
| applyFill | boolean | – | false: No Fill Color |
| applyStroke | boolean | – | false: No Stroke Color |
| autoKerning | string | – | Metrics or Optical kerning, or none |
| baselineDirection | string | – | Vertical text: standard, rotated, or tate_chuu_yoko (Tate-Chuu-Yoko) |
| baselineOption | string | – | Superscript, Subscript or normal |
| baselineShift | number | – | Pixels |
| boxSize | array | – | Paragraph text: [width, height] of the box in pixels |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| composer | string | – | Adobe Every-line or Single-line Composer |
| digits | string | – | Digit set, e.g. hindi for Hindi Digits |
| direction | string | – | Paragraph text direction |
| endIndent | number | – | Indent Right Margin, pixels |
| fauxBold | boolean | – | Faux Bold |
| fauxItalic | boolean | – | Faux Italic |
| fillColor | string | – | Fill colour; turns fill on |
| firstLineIndent | number | – | Indent First Line, pixels |
| font | string | – | PostScript font name (find_fonts lists them) |
| fontFamily | string | – | Font family, with fontStyle, chosen through the font list (app.fonts) |
| fontSize | number | – | Pixels |
| fontStyle | string | – | Font style with fontFamily, e.g. "Bold" |
| hangingRoman | boolean | – | Roman Hanging Punctuation |
| horizontalScale | number | – | Percent; 100 resets |
| justification | string | – | Paragraph alignment |
| kerning | number | – | Manual kerning, thousandths of an em |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| leading | number | – | Pixels; turns auto leading off |
| leadingType | string | – | Top-To-Top or Bottom-To-Bottom Leading |
| ligatures | boolean | – | Ligatures |
| lineJoin | string | – | Stroke line join |
| lineOrientation | string | – | Horizontal or vertical text |
| noBreak | boolean | – | No Break |
| range | object | – | Format only part of the text. Character options on a paragraph range apply to its characters; paragraph options apply to whole paragraphs. Omit for the whole layer |
| resetCharacter | boolean | – | Reset Character first (Character panel menu) |
| resetParagraph | boolean | – | Reset Paragraph first (Paragraph panel menu) |
| smallCaps | boolean | – | Small Caps |
| spaceAfter | number | – | Space After Paragraph, pixels |
| spaceBefore | number | – | Space Before Paragraph, pixels |
| startIndent | number | – | Indent Left Margin, pixels |
| strokeColor | string | – | Stroke colour; turns stroke on |
| strokeOverFill | boolean | – | true: Stroke Over Fill; false: Fill Over Stroke |
| strokeWidth | number | – | Pixels |
| text | string | – | New text (with range: replaces the range); line breaks start new lines |
| tracking | number | – | Thousandths of an em; 0 resets tracking |
| tsume | number | – | Percent |
| universalTextEngine | boolean | – | true: switch the layer to the Universal Text Engine (cannot be switched back by script) |
| verticalScale | number | – | Percent; 100 resets |
No output schema declared.
No examples provided.
set_text_animator Set Text Animator ~377
Add a text animator (Animation > Animate Text) with its properties (position, scale, rotation, opacity, fill colour, tracking, blur, character value, variable font axes, All Transform Properties...) and selectors (Animation > Add Text Selector: Range, Wiggly, Expression) with their settings; or add properties and selectors to an existing animator, or change an existing selector. A new animator without selectors gets a Range selector, as in the Animate menu
| Name | Type | Req | Description |
|---|---|---|---|
| animator | – | – | An existing animator to change: its 1-based index or name (list_text_animators). Omit to add a new animator |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| fontAxes | array | – | Variable font axes to animate (Animate Text > Variable Font Axes) |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| name | string | – | Name for the animator |
| properties | object | – | Animator properties to add (or set, when already there), each to a value or true for its default. Numbers or [x, y, z] arrays; *_color take "#RRGGBB". Keys: anchor_point, position, scale, skew, skew_… |
| selectors | array | – | Selectors to add, or with selector: n, to change |
No output schema declared.
No examples provided.
set_text_options Set Text Options ~417
Set a text layer's Path Options (text on a mask path: Reverse Path, Perpendicular To Path, Force Alignment, First and Last Margin), More Options (Anchor Point Grouping, Grouping Alignment, Fill & Stroke, Inter-Character Blending, Variable Font Spacing), Enable Per-character 3D (Animation menu) and Orient Each Character Independently (Layer > Transform > Auto-Orient)
| Name | Type | Req | Description |
|---|---|---|---|
| anchorPointGrouping | string | – | More Options > Anchor Point Grouping |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| fillAndStroke | string | – | More Options > Fill & Stroke (needs per-character 3D off) |
| firstMargin | number | – | Path Options > First Margin, pixels |
| forceAlignment | boolean | – | Path Options > Force Alignment |
| groupingAlignment | array | – | More Options > Grouping Alignment, [x, y] percent |
| interCharacterBlending | integer | – | More Options > Inter-Character Blending: 1-based position in its blending mode menu (1 = Normal) |
| lastMargin | number | – | Path Options > Last Margin, pixels |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| orientCharacters | boolean | – | true: Orient Each Character Independently toward the camera (turns on per-character 3D); false: turn it off |
| path | integer | – | Path Options > Path: the index of a mask on the same layer; 0 for none |
| perCharacter3D | boolean | – | Enable Per-character 3D |
| perpendicularToPath | boolean | – | Path Options > Perpendicular To Path |
| reversePath | boolean | – | Path Options > Reverse Path |
| variableFontSpacing | integer | – | More Options > Variable Font Spacing: 1-based position in its menu; present only when a variable font axis is animated |
No output schema declared.
No examples provided.
set_track_matte Set Track Matte ~115
Use another layer as a layer's track matte (alpha, alpha inverted, luma, luma inverted), or remove the matte
| 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 |
| matteLayer | integer | – | Matte layer index |
| type | string | – | Default alpha; none removes the matte |
No output schema declared.
No examples provided.
set_track_point Set Track Point ~289
Edit a track point on a layer's tracker (created by start_tracking track_motion): Feature Center, Feature Size, Search Offset, Search Size, Attach Point and Attach Point Offset, in pixels. With a time, or when the property is already keyframed, it sets a keyframe; otherwise the static value
| Name | Type | Req | Description |
|---|---|---|---|
| attachPoint | array | – | Attach Point [x, y] |
| attachPointOffset | array | – | Attach Point Offset [x, y] from the feature centre |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| featureCenter | array | – | Feature Center [x, y] |
| featureSize | array | – | Feature Size [width, height] |
| layers | object | yes | The layer: one index (1-based, from list_layers), name, or selected: true |
| point | – | – | Track point index (1-based) or name, e.g. "Track Point 1". Default 1 |
| searchOffset | array | – | Search Offset [x, y] from the feature centre |
| searchSize | array | – | Search Size [width, height] |
| time | number | – | Set keyframes at this time in seconds |
| tracker | – | – | Tracker index (1-based) or name, e.g. "Tracker 1". Default 1 |
No output schema declared.
No examples provided.
set_transform Set Transform ~174
Set layer transform values without keyframes: anchor point, position, scale (percent), rotation (degrees), opacity (percent), and 3D orientation and rotations. Animated properties are set at the current time
| Name | Type | Req | Description |
|---|---|---|---|
| anchorPoint | array | – | – |
| 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 |
| opacity | number | – | – |
| orientation | array | – | 3D layers |
| position | array | – | Pixels from the top-left |
| rotation | number | – | – |
| scale | array | – | Percent per axis |
| xRotation | number | – | – |
| yRotation | number | – | – |
No output schema declared.
No examples provided.
set_view_options Set View Options ~424
Change a viewer's view options: magnification (zoom percent, 100 for actual size), the Show Channel menu (RGB, red, green, blue, alpha, colorized, straight RGB; alpha boundary and overlay in the Layer panel), exposure, the transparency grid, Fast Previews (Off, Adaptive Resolution, Draft, Fast Draft, Wireframe), rulers, guides (show, snap, lock), which view is active, and maximizing the panel. Also the composition's resolution (Full, Half, Third, Quarter, Custom) and pausing viewer updates (Caps Lock)
| Name | Type | Req | Description |
|---|---|---|---|
| channel | string | – | Show Channel. alpha_boundary and alpha_overlay are Layer panel only |
| comp | object | – | Open this composition in the Composition panel and use that viewer (item id or name). Omit both comp and layer for the focused viewer |
| customResolution | object | – | Custom resolution: render every Nth pixel across and down |
| exposure | number | – | Adjust Exposure, in stops; 0 resets |
| fastPreview | string | – | Fast Previews mode (Composition panel only) |
| guidesLocked | boolean | – | View > Lock Guides |
| guidesSnap | boolean | – | View > Snap to Guides |
| guidesVisible | boolean | – | View > Show Guides |
| layer | integer | – | Open this layer (1-based, in comp or the active composition) in the Layer panel and use that viewer |
| maximized | boolean | – | Maximize the viewer panel, or restore it |
| pauseViewerUpdates | boolean | – | Stop viewers redrawing, as Caps Lock does |
| resolution | string | – | Composition resolution (down-sample factor); custom takes customResolution |
| rulers | boolean | – | View > Show Rulers |
| transparencyGrid | boolean | – | Show the transparency checkerboard |
| view | integer | – | Make this view (1-based, in a two- or four-view layout) active and change it. Default the active view |
| zoomPercent | number | – | Magnification percent; 100 is actual pixels |
No output schema declared.
No examples provided.
show_panel Show Panel ~44
Open or close a panel from the Window menu: Tools, Info, Audio or Preview. Choosing an open panel's command closes it
| Name | Type | Req | Description |
|---|---|---|---|
| panel | string | yes | The panel |
No output schema declared.
No examples provided.
show_text_panels Show Text Panels ~49
Show the Character or Paragraph panel (Window > Character, Window > Paragraph), or toggle both text panels
| Name | Type | Req | Description |
|---|---|---|---|
| panel | string | yes | character, paragraph, or toggle (show or hide both) |
No output schema declared.
No examples provided.
split_layers Split Layers ~121
Split layers at a time (Edit > Split Layer): each becomes two layers, the original ending at the time and a duplicate above it starting there, both keeping all keyframes
| Name | Type | Req | Description |
|---|---|---|---|
| at | – | – | Seconds, or "current_time" (the default), "comp_start" or "comp_end" |
| 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.
start_tracking Start Tracking ~326
Set up tracking from the Animation menu on one layer: Track Motion (adds a point tracker and opens the layer in the Layer panel), Track Mask (the mask tracker for the chosen masks), Track this Property (a track that drives the chosen property), Paste Mocha mask (Edit menu), Track in Boris FX Mocha; or open the Tracker panel or the Motion Tracking workspace (Window menu). The analysis itself runs from the Tracker panel; read and edit the resulting track points with get_tracking_data and set_track_point
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | track_motion, track_mask, track_property, paste_mocha_mask, track_in_mocha, tracker_panel (Window > Tracker) or workspace (Motion Tracking workspace) |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| layers | object | – | The layer: one index (1-based, from list_layers), name, or selected: true |
| masks | array | – | track_mask: mask indexes (1-based); omit for every mask on the layer |
| property | – | – | track_property: the property the track drives. A property: a shortcut (anchor_point, position, scale, rotation, opacity, x_rotation, y_rotation, orientation, source_text, time_remap, audio_levels) or… |
| time | number | – | Move the current time here first (tracking starts from the current time) |
No output schema declared.
No examples provided.
stretch_layers Stretch Layers ~315
Time-stretch layers (Layer > Time > Time Stretch, the Stretch column): to a percentage or a new length, holding the In point, the current time or the Out point in place; or stretch so the In or Out point lands on a time (Ctrl/Cmd+Shift+, and +.). Optionally keep keyframes at their original times, or conform the source footage's frame rate instead
| Name | Type | Req | Description |
|---|---|---|---|
| at | – | – | Seconds, or "current_time" (the default), "comp_start" or "comp_end" |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| conformFrameRate | number | – | Instead of stretching: conform the layers' source footage to this frame rate (Interpret Footage; 0 uses the file's rate). Affects every layer using that footage |
| duration | number | – | New length between In and Out points, seconds |
| edge | string | – | Stretch so this end lands on at, keeping the other end in place |
| holdInPlace | string | – | percent and duration: which point stays put. Default in_point |
| keepKeyframeTimes | boolean | – | Leave keyframes at their composition times instead of stretching them with the layer |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| percent | number | – | Stretch factor percent (100 is normal speed, 200 half speed, negative plays backwards) |
No output schema declared.
No examples provided.
switch_all_layers Switch All Layers ~129
Apply a switch to every layer in a composition (Layer > Switches): Unlock All Layers, Show All Video, or Hide Other Video (turn video off for every layer except the given ones)
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | unlock_all, show_all_video, or hide_other_video |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| layers | object | – | hide_other_video: the layers to keep visible. Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
No output schema declared.
No examples provided.
switch_workspace Switch Workspace ~73
Switch to a built-in workspace (Window > Workspace), or reset the current workspace to its saved layout. Custom workspaces can be chosen by name with run_menu_command
| Name | Type | Req | Description |
|---|---|---|---|
| reset | boolean | – | Reset the current (or chosen) workspace to its saved layout |
| workspace | string | – | The workspace to switch to |
No output schema declared.
No examples provided.
tidy_project Tidy Project ~54
Remove unused footage, consolidate duplicate footage, or reduce the project to the chosen compositions and what they use (File > Dependencies)
| Name | Type | Req | Description |
|---|---|---|---|
| keep | array | – | reduce_project: composition ids to keep |
| operation | string | yes | – |
No output schema declared.
No examples provided.
trim_layers Trim Layers ~188
Trim or extend layers' In or Out point to a time (Alt+[ and Alt+]: trim to the current time), or trim a set of layers together so the earliest In point or latest Out point lands there, keeping their offsets. Trimming never changes the source
| Name | Type | Req | Description |
|---|---|---|---|
| asSet | boolean | – | Trim the layers as a set: the earliest In (or latest Out) point goes to the time and the others keep their offsets. Default false |
| at | – | – | Seconds, or "current_time" (the default), "comp_start" or "comp_end" |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| edge | string | yes | Which end to trim |
| 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.