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 (12 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 →
run_comp_command Run Comp Command ~197
Composition and work-area commands: Trim Comp to Work Area, Crop Comp to Region of Interest (needs a region drawn in the Composition panel), Set Poster Time, Lift Work Area and Extract Work Area (on the given layers, or all), set the work area to the layers' span, Composition Flowchart, and Reveal Composition in Project. The menu commands make the composition active
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | The command |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| layers | object | – | lift_work_area, extract_work_area and work_area_to_layers: the layers (default all; for work_area_to_layers the selection, else the whole composition). Which layers. Give indexes (1-based, from list_… |
| time | number | – | set_poster_time: seconds; default the current time |
No output schema declared.
No examples provided.
run_edit_command Run Edit Command ~135
Run an Edit menu command: Undo or Redo (several steps back or forward through Edit > History), Cut, Copy, Paste, Select All, Deselect All, or Select Label Group. They act on the focused panel and its selection; give comp to focus that composition first. Copied layers can be pasted into Premiere Pro
| Name | Type | Req | Description |
|---|---|---|---|
| command | string | yes | The Edit menu command |
| comp | object | – | Focus this composition's viewer first (item id or name). Omit to act on whatever panel has focus |
| times | integer | – | Undo or Redo: how many steps. Default 1 |
No output schema declared.
No examples provided.
run_menu_command Run Menu Command ~110
Run an After Effects menu command by its English menu name (found with app.findMenuCommandId) or its numeric id, such as an extension panel under Window > Extensions or a custom workspace. Commands act on the current selection; one that opens a dialog waits for the user, so prefer the specific tools
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | – | Command id instead of a name |
| name | string | – | Menu item name, e.g. "Sequence Layers..." or "Center Anchor Point in Layer Content" |
No output schema declared.
No examples provided.
run_project_command Run Project Command ~112
Project file commands: close the project (File > Close Project), revert to the last saved version (File > Revert), open the most recent project (File > Open Recent), or save a numbered copy and continue in it (File > Increment and Save). Close, revert and open_most_recent can lose unsaved work
| Name | Type | Req | Description |
|---|---|---|---|
| command | string | yes | The command |
| unsaved | string | – | close, open_most_recent: what to do with unsaved changes. Required when there are any |
No output schema declared.
No examples provided.
run_view_command Run View Command ~125
Run a View menu or viewer command on a viewer: Zoom In, Zoom Out, Show Grid, Snap to Grid, Show Layer Controls (these toggle), the view layout (1, 2 or 4 views), Share View Options, New Viewer, or close the viewer (File > Close). Give comp to use its Composition panel; otherwise the focused viewer
| Name | Type | Req | Description |
|---|---|---|---|
| command | string | yes | The command |
| 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 |
No output schema declared.
No examples provided.
save_frame Save Frame ~72
Save one frame of a composition as a PNG file (Composition > Save Frame As)
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| outputFile | string | yes | Absolute .png path |
| time | number | yes | Seconds |
No output schema declared.
No examples provided.
save_project Save Project ~50
Save the project in place, or as a new .aep file (the project then refers to it)
| Name | Type | Req | Description |
|---|---|---|---|
| filePath | string | – | Absolute .aep path. Omit to save in place |
No output schema declared.
No examples provided.
save_project_copy Save Project Copy ~116
Save a copy of the project while it keeps its own file (File > Save As > Save a Copy), or a copy in the text-based XML format (Save a Copy As XML, .aepx). The project must have been saved; saveFirst saves it in place first
| Name | Type | Req | Description |
|---|---|---|---|
| filePath | string | yes | Absolute path of the copy: .aep, or .aepx for XML |
| saveFirst | boolean | – | Save unsaved changes in place first, so the copy includes them. Default false |
No output schema declared.
No examples provided.
select_drawing_tool Select Drawing Tool ~137
Choose the active tool in the Tools panel (shape and mask tools: Rectangle, Rounded Rectangle, Ellipse, Polygon, Star; Pen, Add Vertex, Delete Vertex, Convert Vertex, Mask Feather; Brush, Clone Stamp, Eraser; Roto Brush, Refine Edge; or Selection), and/or open the Paint, Brushes or Content-Aware Fill panel (Window menu, which toggles a panel that is already open). Drawing with the tool is then done by hand in the Composition or Layer panel
| Name | Type | Req | Description |
|---|---|---|---|
| panel | string | – | Panel to open from the Window menu |
| tool | string | – | Tool to make active |
No output schema declared.
No examples provided.
select_keyframes Select Keyframes ~283
Select or deselect keyframes of a property in the Timeline panel, or deselect every keyframe, property and property group (Edit > Deselect All in the Timeline). Selected keyframes are what run_animation_command's keyframe commands act on
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| deselectAll | boolean | – | First deselect every keyframe, property and property group on the layers |
| 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 |
| layers | object | – | Which layers. Give indexes (1-based, from list_layers), names, or selected: true. With deselectAll and no layers, every layer |
| mode | string | – | replace (default): only these keyframes of the property are selected; add; remove |
| property | – | – | 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… |
No output schema declared.
No examples provided.
select_layers Select Layers ~171
Change which layers are selected in the Timeline: select given layers (by number, as typing it on the keypad), add or remove them, invert the selection, select children of parents, move the selection to the next or previous layer or extend it, select all or none
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | set, add, remove (toggle with layers); children (of layers, or of the selection); invert; next, previous, extend_next, extend_previous (from the selection); all; none |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| layers | object | – | For set, add, remove and children. Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
No output schema declared.
No examples provided.
select_project_items Select Project Items ~95
Select items in the Project panel: replace the selection, add to it (extend the selection), remove from it, or clear it; optionally show the Project panel. Menu commands act on this selection
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | – | Item ids. Omit or leave empty with mode replace to clear the selection |
| mode | string | – | Default replace |
| showPanel | boolean | – | Show the Project panel. Default false |
No output schema declared.
No examples provided.
separate_dimensions Separate Dimensions ~181
Separate a Position property into X, Y (and Z) Position so each can be keyframed alone, or join them again (Animation > Separate Dimensions)
| 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 | – | – | 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… |
| separate | boolean | – | true separates, false joins. Default true |
No output schema declared.
No examples provided.
sequence_layers Sequence Layers ~164
Arrange layers one after another in time, in the order given, optionally overlapping with an opacity dissolve (Animation > Keyframe Assistant > Sequence Layers)
| 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. The first plays first |
| overlap | number | – | Seconds each layer overlaps the one before. Default 0 |
| start | number | – | When the first layer starts (seconds). Default its current in point |
| transition | string | – | With an overlap: off (default), dissolve_front (the upper layer fades), or cross_dissolve (both fade) |
No output schema declared.
No examples provided.
set_3d_view Set 3d View ~188
Change the 3D view of a composition's Composition panel (View menu): switch to the active camera, front, left, top, back, right, bottom or a custom view (View > Switch 3D View) or the last view, reset the view, look at the selected or all layers, or create a camera from the current view. Opens the composition in the viewer first
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | Instead of a view: View > Reset 3D View, Look at Selected Layers, Look at All Layers, or Create Camera from 3D View |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| view | string | – | The view to switch to (View > Switch 3D View; last = View > Switch to Last 3D View) |
No output schema declared.
No examples provided.
set_application_settings Set Application Settings ~189
Change application and project performance settings: memory limits (Preferences > Memory & Performance), the project's Mercury GPU acceleration (File > Project Settings), whether preferences are saved on quit, and the preferences the scripting guide documents (expand flowchart compositions, JavaScript debugger)
| Name | Type | Req | Description |
|---|---|---|---|
| expandFlowchartComps | boolean | – | Flowchart: expand compositions by default |
| gpuAcceleration | string | – | Project GPU acceleration; must be one the computer offers (see get_aftereffects_info) |
| imageCachePercent | number | – | Image cache size as a percent of memory; give with maximumMemoryPercent |
| javascriptDebugger | boolean | – | Scripting & Expressions: enable the JavaScript debugger |
| maximumMemoryPercent | number | – | Maximum memory After Effects may use, as a percent of installed RAM; the rest stays reserved for other applications |
| savePreferencesOnQuit | boolean | – | Save preferences when After Effects quits |
No output schema declared.
No examples provided.
set_audio_levels Set Audio Levels ~144
Set layers' Audio Levels (the Audio group, L in the Timeline) in decibels: a static value, or keyframes at times (Animation > Add Audio Levels Keyframe)
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| keyframes | array | – | Instead of levels: keyframes, each a time and levels |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| levels | – | – | Decibels for both channels, or [left, right]; 0 leaves the audio unchanged |
No output schema declared.
No examples provided.
set_bezier_path Set Bezier Path ~467
Edit a mask path or a shape layer's Path property: replace its vertices and tangents, make another vertex the first (Layer > Mask and Shape Path > Set First Vertex), reverse its direction, move, scale and rotate all its points about an anchor (as Free Transform Points does), or set variable-width feather points on a mask (Mask Feather tool: extent, tension, Hold, inner or outer). Points are in the layer's own pixels; tangents are relative to their vertex; vertex and segment numbers start at 0
| Name | Type | Req | Description |
|---|---|---|---|
| allKeyframes | boolean | – | Apply firstVertex, reverse, transform or featherPoints to every keyframe of an animated path |
| closed | boolean | – | With vertices: closed path. Default true |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| featherPoints | array | – | Masks: replace the variable-width feather points ([] removes them) |
| firstVertex | integer | – | Make this vertex (0-based) the first one of a closed path |
| inTangents | array | – | With vertices: in tangents relative to each vertex; default none |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| mask | string|integer | – | The mask, by name or 1-based index |
| outTangents | array | – | With vertices: out tangents relative to each vertex; default none |
| property | – | – | Instead of mask: a shape layer Path property, a path of match names or names from the layer, e.g. ["ADBE Root Vectors Group", "Shape 1", "ADBE Vectors Group", "Path 1", "ADBE Vector Shape"] |
| reverse | boolean | – | Reverse the order of the vertices (the path direction) |
| time | number | – | Seconds: set a keyframe at this time. Default: the static value, or a keyframe at the current time when the path is animated |
| transform | object | – | Transform every point together about an anchor, as Free Transform Points does |
| vertices | array | – | Replace the path: vertices [[x, y], ...] |
No output schema declared.
No examples provided.
set_camera_options Set Camera Options ~425
Set camera layer options (Layer > Camera Settings, and Camera Options in the Timeline): zoom, F-Stop, depth of field, focus distance, aperture, blur level, iris shape, rotation, roundness, aspect ratio and diffraction fringe, highlight gain, threshold and saturation, and Point of Interest. Values are keyframed when the property is animated or a time is given
| Name | Type | Req | Description |
|---|---|---|---|
| aperture | number | – | Aperture in pixels; larger blurs more |
| blurLevel | number | – | Blur Level, percent |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| depthOfField | boolean | – | Depth of Field on or off; the Advanced 3D renderer renders it in-engine |
| fStop | number | – | F-Stop (Camera Settings): sets Aperture to Zoom divided by the F-Stop. Not with aperture |
| focusDistance | number | – | Focus Distance in pixels |
| highlightGain | number | – | Highlight Gain |
| highlightSaturation | number | – | Highlight Saturation |
| highlightThreshold | number | – | Highlight Threshold, percent |
| irisAspectRatio | number | – | Iris Aspect Ratio |
| irisDiffractionFringe | number | – | Iris Diffraction Fringe |
| irisRotation | number | – | Iris Rotation, degrees |
| irisRoundness | number | – | Iris Roundness, percent |
| irisShape | string | – | Iris Shape |
| layers | object | yes | Which camera layers. Give indexes (1-based, from list_layers), names, or selected: true |
| pointOfInterest | array | – | Point of Interest [x, y, z] in pixels, for two-node cameras and lights |
| time | number | – | Seconds: set keyframes at this time. Omit to set the static value, or a keyframe at the current time when the property is already animated |
| zoom | number | – | Zoom: pixels from the camera to the image plane (sets the angle of view and focal length) |
No output schema declared.
No examples provided.
set_camera_tool Set Camera Tool ~83
Choose a camera navigation tool in the Tools panel: the Unified Camera tool, Orbit (around the cursor, the scene or the camera's Point of Interest), Pan (Track XY) or Dolly (Track Z). Navigating with the tool in a viewer is done by hand
| Name | Type | Req | Description |
|---|---|---|---|
| tool | string | yes | orbit, pan and dolly are the camera-centred variants |
No output schema declared.
No examples provided.
set_color_management Set Color Management ~208
Change the project's colour settings (File > Project Settings > Color): bit depth (8, 16 or 32 bpc, where 32 is high dynamic range float), working colour space (a profile from get_color_management, or "" for None), working gamma, Linearize Working Color Space, Blend Colors Using 1.0 Gamma and Compensate for Scene-referred Profiles
| Name | Type | Req | Description |
|---|---|---|---|
| bitsPerChannel | integer | – | Bit depth: 8, 16 or 32 (floating point, high dynamic range) |
| compensateForSceneReferredProfiles | boolean | – | Compensate for Scene-referred Profiles |
| linearBlending | boolean | – | Blend Colors Using 1.0 Gamma |
| linearizeWorkingSpace | boolean | – | Linearize Working Color Space |
| workingGamma | number | – | Working gamma when the working space is None |
| workingSpace | string | – | Working colour space: a profile description from get_color_management listProfiles, or "" for None |
No output schema declared.
No examples provided.
set_comp_3d_settings Set Comp 3d Settings ~162
Choose a composition's 3D renderer (Composition Settings > 3D Renderer: Classic 3D, Advanced 3D or Cinema 4D) and turn Draft 3D on or off (Composition panel). With no settings it reports the renderer, the installed renderers, Draft 3D and the active camera
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| draft3d | boolean | – | Draft 3D: preview the scene in real time at draft quality |
| renderer | string | – | classic_3d, advanced_3d, cinema_4d, or a renderer id from this tool's renderers list |
No output schema declared.
No examples provided.
set_comp_settings Set Comp Settings ~448
Change a composition's settings (Composition > Composition Settings): name, size, pixel aspect, duration, frame rate, resolution, start timecode or frame, drop-frame timecode, background, motion blur (shutter angle and phase, samples), nesting options and work area; and its Timeline switches Enable Frame Blending and Hide Shy Layers
| Name | Type | Req | Description |
|---|---|---|---|
| adaptiveSampleLimit | integer | – | Motion blur Adaptive Sample Limit |
| backgroundColor | 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 |
| dropFrame | boolean | – | Drop Frame timecode (29.97 and 59.94 fps); false is Non-Drop Frame |
| duration | number | – | Seconds |
| frameBlending | boolean | – | Timeline switch: Enable Frame Blending for the composition |
| frameRate | number | – | Frames per second |
| height | integer | – | Pixels |
| hideShyLayers | boolean | – | Timeline switch: Hide Shy Layers |
| motionBlur | boolean | – | Enable motion blur for the composition |
| name | string | – | – |
| 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 | – | Pixels |
| workAreaDuration | number | – | Seconds |
| workAreaStart | number | – | Seconds |
No output schema declared.
No examples provided.
set_current_tool Set Current Tool ~104
Choose the active tool in the Tools panel (selection, hand, zoom, rotation, camera orbit, pan and dolly modes, shapes, pen, type, paint, Roto Brush, puppet pins), or cycle to the next tool in a group as clicking a tool button repeatedly does. Camera tools need a camera layer
| Name | Type | Req | Description |
|---|---|---|---|
| cycle | string | – | Instead of tool: move to the next tool in this group |
| tool | string | – | The tool to choose |
No output schema declared.
No examples provided.
set_display_color Set Display Color ~132
Display colour in the Composition panel (View menu): turn Use Display Color Management on or off (the command toggles it; scripts cannot read its state), choose a Simulate Output preset (display colour management must be on), or open the Lumetri Scopes panel. Applies to the composition opened in the viewer
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | toggle_display_color_management, simulate_output or lumetri_scopes |
| comp | object | – | Open this composition in the viewer first. Omit to use the active viewer |
| output | string | – | simulate_output: the output to simulate (none turns simulation off) |
No output schema declared.
No examples provided.
set_effect_controls Set Effect Controls ~348
Apply an effect from the Effect menu to layers by display name or match name and set any of its controls by name in the same call, or set the controls of an effect already on the layers (Effect Controls panel). Values: numbers, true/false for checkboxes, [x, y] pixels for points, "#RRGGBB" for colours, a menu choice's text or number, a layer's name or index for layer controls, a mask's name for mask controls, an object for the controls inside a group, and a list of strings to replace a Dropdown Menu Control's items. With time, each value is a keyframe
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| controls | object | – | Control names (as in the Effect Controls panel, or match names) to values, e.g. { "Blurriness": 20, "Repeat Edge Pixels": true } |
| effect | string | – | The effect to apply: its display name (e.g. "Fractal Noise") or match name (e.g. "ADBE Fractal Noise"); find_effects lists them |
| existing | – | – | 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) |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| name | string | – | Rename the effect |
| time | number | – | Seconds: set each control as a keyframe at this time |
No output schema declared.
No examples provided.
set_essential_graphics Set Essential Graphics ~124
Open a composition in the Essential Graphics panel as its primary composition (Composition > Open in Essential Graphics), set the template name, rename controls, and list the controls
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| open | boolean | – | Open the composition in the Essential Graphics panel. Default true |
| renameControls | array | – | Controls to rename |
| templateName | string | – | Template name shown in the panel and in Premiere Pro; also the exported file name |
No output schema declared.
No examples provided.
set_expression Set Expression ~328
Write an expression on a property, as typed in the expression editor (or clear it with an empty string), and report any expression error After Effects finds. The expression can use the whole expression language: global objects (thisComp, thisLayer, time, value), time conversion, vector math, random numbers, interpolation (linear, ease), colour conversion and other math; comp, footage, layer (sub-objects, general, properties, 3D, space transforms), camera, light, effect, mask, property, project, key, marker and path attributes and methods; dropdown menu attributes; text style objects for per-character and paragraph styling and for linking styles across text layers on Source Text; and, on the Amount of a text animator's Expression selector, textIndex, textTotal and selectorValue. Text style methods need the JavaScript engine (set_expression_engine)
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| enabled | boolean | – | Default true |
| expression | string | yes | Expression source; "" removes it |
| 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… |
No output schema declared.
No examples provided.
set_expression_engine Set Expression Engine ~58
Choose the engine that evaluates the project's expressions (File > Project Settings > Expressions): javascript (the default, faster, modern syntax) or extendscript (Legacy ExtendScript, for old expressions)
| Name | Type | Req | Description |
|---|---|---|---|
| engine | string | yes | javascript or extendscript |
No output schema declared.
No examples provided.
set_font_options Set Font Options ~80
Set the favourite font families shown in the Character panel font menu, or have After Effects rescan font folders outside the system ones (such as the Adobe local Fonts folder) for added or removed fonts
| Name | Type | Req | Description |
|---|---|---|---|
| favorites | array | – | Font family names: replaces the favourites list |
| rescanFontFolders | boolean | – | Rescan non-system font folders |
No output schema declared.
No examples provided.
set_frame_blending Set Frame Blending ~157
Frame blending (Layer > Frame Blending): set layers to Off, Frame Mix or Pixel Motion (the layer's Frame Blending switch), and turn the composition's Enable Frame Blending switch on or off, without which layer frame blending is not previewed
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| compSwitch | boolean | – | The composition's Enable Frame Blending switch |
| layers | object | – | Layers based on motion footage or compositions. Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| mode | string | – | For the layers: off, frame_mix or pixel_motion |
No output schema declared.
No examples provided.
set_geometry_options Set Geometry Options ~305
Set a 3D layer's Geometry Options: extrude and bevel text and shape layers (bevel style, bevel depth, hole bevel depth, extrusion depth) or bend footage and precomposition layers (curvature, segments). Extrusion needs the Advanced 3D or Cinema 4D renderer (set_comp_3d_settings). Values are keyframed when the property is animated or a time is given
| Name | Type | Req | Description |
|---|---|---|---|
| bevelDepth | number | – | Bevel Depth in pixels (text and shape layers) |
| bevelStyle | string | – | Bevel Style (text and shape layers) |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| curvature | number | – | Curvature, percent (footage and precomposition layers) |
| extrusionDepth | number | – | Extrusion Depth in pixels (text and shape layers) |
| holeBevelDepth | number | – | Hole Bevel Depth, percent of Bevel Depth (text and shape layers) |
| layers | object | yes | Which 3D layers. Give indexes (1-based, from list_layers), names, or selected: true |
| segments | number | – | Segments, the facets of a curved layer (footage and precomposition layers) |
| time | number | – | Seconds: set keyframes at this time. Omit to set the static value, or a keyframe at the current time when the property is already animated |
No output schema declared.
No examples provided.
set_item_comment Set Item Comment ~42
Set the Comment column text of project items; an empty comment clears it
| Name | Type | Req | Description |
|---|---|---|---|
| comment | string | yes | Comment text |
| items | array | yes | Item ids |
No output schema declared.
No examples provided.
set_keyframes Set Keyframes ~178
Add keyframes to a property at several times, with their values, and optionally the interpolation (linear, bezier, hold) and easing (Easy Ease influence and speed) for each
| Name | Type | Req | Description |
|---|---|---|---|
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| keyframes | array | yes | – |
| 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… |
No output schema declared.
No examples provided.
set_layer_properties Set Layer Properties ~441
Set layer switches and timing: name, comment, enabled (video), audio, solo, shy, lock, 3D, motion blur, adjustment layer, effects (Effect switch), Collapse Transformations / Continuously Rasterize, Preserve Underlying Transparency, quality and sampling (Bilinear, Bicubic), blending mode (or step to the next or previous one), Auto-Orient, label, in and out points, start time, stretch
| Name | Type | Req | Description |
|---|---|---|---|
| adjustmentLayer | boolean | – | – |
| audioEnabled | boolean | – | – |
| autoOrient | string | – | Layer > Transform > Auto-Orient: off, along_path, towards_camera (3D layers; cameras and lights toward their point of interest), characters_toward_camera (3D text) |
| blendingMode | string | – | – |
| collapseTransformation | boolean | – | Collapse Transformations (pre-compositions) or Continuously Rasterize (vector layers) |
| comment | string | – | Text for the Comments column |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| cycleBlendingMode | string | – | Step to the next or previous blending mode in the menu (Shift+= and Shift+-) |
| effectsActive | boolean | – | Effect switch: render the layer's effects |
| enabled | boolean | – | – |
| guideLayer | boolean | – | – |
| inPoint | number | – | Seconds |
| label | integer | – | – |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| locked | boolean | – | – |
| motionBlur | boolean | – | – |
| name | string | – | – |
| outPoint | number | – | Seconds |
| preserveTransparency | boolean | – | Preserve Underlying Transparency |
| quality | string | – | – |
| sampling | string | – | Layer > Quality sampling at Best quality |
| shy | boolean | – | – |
| solo | boolean | – | – |
| startTime | number | – | Seconds |
| stretch | number | – | Time stretch percent; negative reverses |
| threeD | boolean | – | – |
No output schema declared.
No examples provided.
set_layer_styles Set Layer Styles ~227
Add Photoshop-style layer styles (Layer > Layer Styles: Drop Shadow, Inner Shadow, Outer Glow, Inner Glow, Bevel and Emboss, Satin, Color Overlay, Gradient Overlay, Stroke), Remove All, Convert to Editable Styles, and set Blending Options (Global Light, Fill Opacity, channels, Blend Interior Styles as Group, Use Blend Ranges from Source). The style commands select the layers and make their composition active; set each style's own values with set_property
| Name | Type | Req | Description |
|---|---|---|---|
| add | array | – | Styles to add |
| blending | object | – | Blending Options (present once a layer has a style) |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| convertToEditable | boolean | – | Turn styles merged from a Photoshop layer into editable styles (Convert to Editable Styles) |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| removeAll | boolean | – | First remove every layer style (Remove All) |
No output schema declared.
No examples provided.
set_light_options Set Light Options ~421
Set light layer options (Layer > Light Settings, and Light Options in the Timeline): light type, intensity, colour, cone angle and feather, falloff type, radius and falloff distance, casts shadows, shadow darkness and diffusion, Point of Interest, and an environment light's source layer. Values are keyframed when the property is animated or a time is given
| Name | Type | Req | Description |
|---|---|---|---|
| castsShadows | boolean | – | Casts Shadows (spot, parallel and environment lights). Layers also need Material Options > Casts Shadows on |
| color | string | – | Light colour: "#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 |
| coneAngle | number | – | Cone Angle in degrees (spot lights) |
| coneFeather | number | – | Cone Feather, percent (spot lights) |
| falloff | string | – | Falloff type |
| falloffDistance | number | – | Falloff Distance in pixels |
| intensity | number | – | Intensity, percent; negative removes light |
| layers | object | yes | Which light layers. Give indexes (1-based, from list_layers), names, or selected: true |
| lightSource | integer | – | Environment lights: index of the 2D layer in the same composition to light the scene with (Light Options > Source) |
| lightType | string | – | Light Type |
| pointOfInterest | array | – | Point of Interest [x, y, z] in pixels, for two-node cameras and lights |
| radius | number | – | Radius in pixels, where light is at full intensity before falloff |
| shadowDarkness | number | – | Shadow Darkness, percent |
| shadowDiffusion | number | – | Shadow Diffusion in pixels |
| time | number | – | Seconds: set keyframes at this time. Omit to set the static value, or a keyframe at the current time when the property is already animated |
No output schema declared.
No examples provided.
set_masks Set Masks ~369
Change masks on layers (Layer > Mask): mode, inversion, lock (or lock every other mask: Lock Other Masks; unlock them all: Unlock All Masks), outline colour, RotoBezier, Motion Blur (same as layer, on, off), Feather Falloff (smooth, linear), feather, opacity, expansion, name and selection
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | Mask outline colour in the viewers and Timeline, "#RRGGBB" or "rgb(r,g,b)" |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| expansion | number | – | Mask expansion in pixels |
| feather | number | – | Feather in pixels, both directions |
| featherFalloff | string | – | Feather falloff curve (Layer > Mask > Feather Falloff) |
| inverted | boolean | – | Invert the mask |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| lockOthers | boolean | – | Lock every other mask on the layer (Lock Other Masks) |
| locked | boolean | – | Lock or unlock the masks (false with masks omitted: Unlock All Masks) |
| masks | object | – | Which masks on each layer: indexes (1-based, as in the Timeline) or names. Omit for every mask |
| mode | string | – | Mask mode |
| motionBlur | string | – | Mask motion blur (Layer > Mask > Motion Blur) |
| name | string | – | Rename the mask (one mask per layer only) |
| opacity | number | – | Mask opacity, percent |
| rotoBezier | boolean | – | RotoBezier: curves calculated through the vertices |
| selected | boolean | – | Select or deselect the masks |
No output schema declared.
No examples provided.
set_material_options Set Material Options ~508
Set a 3D layer's Material Options: casts shadows (off, on, only), light transmission, accepts shadows (off, on, only: a shadow catcher), accepts lights, ambient, diffuse, specular intensity and shininess, metal, appears in reflections, reflection intensity, sharpness and rolloff, transparency and its rolloff, and index of refraction. Also turns a layer into an environment layer (Layer > Environment Layer). Values are keyframed when the property is animated or a time is given
| Name | Type | Req | Description |
|---|---|---|---|
| acceptsLights | boolean | – | Accepts Lights: off leaves the layer unlit |
| acceptsShadows | string | – | Accepts Shadows: off, on, or only (shadows alone, for a shadow catcher) |
| ambient | number | – | Ambient, percent |
| appearsInReflections | string | – | Appears in Reflections: off, on, or only |
| castsShadows | string | – | Casts Shadows: off, on, or only (the shadow without the layer) |
| comp | object | – | Which composition. Give its item id (from list_items) or name; omit for the active composition |
| diffuse | number | – | Diffuse, percent |
| environmentLayer | boolean | – | Layer > Environment Layer: use this footage or precomposition layer as the spherical environment for reflections (Cinema 4D renderer; Advanced 3D uses environment lights instead) |
| indexOfRefraction | number | – | Index of Refraction |
| layers | object | yes | Which 3D layers. Give indexes (1-based, from list_layers), names, or selected: true |
| lightTransmission | number | – | Light Transmission, percent |
| metal | number | – | Metal, percent |
| reflectionIntensity | number | – | Reflection Intensity, percent |
| reflectionRolloff | number | – | Reflection Rolloff, percent |
| reflectionSharpness | number | – | Reflection Sharpness, percent |
| specularIntensity | number | – | Specular Intensity, percent |
| specularShininess | number | – | Specular Shininess, percent |
| time | number | – | Seconds: set keyframes at this time. Omit to set the static value, or a keyframe at the current time when the property is already animated |
| transparency | number | – | Transparency, percent (separate from layer Opacity) |
| transparencyRolloff | number | – | Transparency Rolloff, percent |
No output schema declared.
No examples provided.
set_output_module Set Output Module ~638
Change, add or remove a Render Queue item's output module (Output Module Settings dialog, Composition > Add Output Module): template or output format (QuickTime, AVI, H.264, image sequences such as PNG, TIFF, JPEG, OpenEXR, DPX, Targa, Photoshop, SGI, IFF, Radiance, or audio as AIFF, MP3, WAV), output file and file name template, channels, depth, colour, starting frame number, resize, crop, audio output, project link, source XMP metadata and post-render action, and optionally save it as a template. Codecs such as GoPro CineForm are chosen through a template made in Edit > Templates > Output Module
| Name | Type | Req | Description |
|---|---|---|---|
| add | boolean | – | Add a new output module to the item and change that one (Composition > Add Output Module). Default false |
| audio | object | – | Audio output |
| channels | string | – | "Channels": RGB, Alpha or RGB + Alpha |
| color | string | – | "Color": Premultiplied (Matted) or Straight (Unmatted) |
| crop | object | – | Crop pixels from the edges (negative values add pixels) |
| depth | string | – | "Depth", e.g. Millions of Colors, Millions of Colors+, Trillions of Colors, Floating Point |
| fileTemplate | string | – | File name template from the Output To menu, e.g. "[compName]_[#####].[fileExtension]" |
| format | string | – | Output format: applies the first output module template that writes it |
| includeProjectLink | boolean | – | Embed a link back to the After Effects project |
| includeSourceXmp | boolean | – | Copy XMP metadata from the source footage into the output |
| item | integer | yes | 1-based Render Queue index |
| outputFile | string | – | Absolute output path. For image sequences include frame-number signs, e.g. frame_[#####].png |
| outputModule | integer | – | 1-based output module of the item. Default 1 |
| postRenderAction | string | – | After rendering: nothing, import the file, import it and replace the composition's uses, or set it as the composition's proxy |
| remove | boolean | – | Remove the output module (the item keeps at least one). Default false |
| resize | object | – | Resize the output |
| saveAsTemplate | string | – | Save the resulting output module as a template with this name |
| settings | object | – | Any other settings by the English name After Effects gives them (get_render_item shows the settable names and current values), e.g. { "Quality": "Best" } |
| startingNumber | integer | – | First frame number of an image sequence ("Starting #"); turns off Use Comp Frame Number |
| template | string | – | Output module template, e.g. "High Quality", "Lossless", "H.264 - Match Render Settings - 15 Mbps" (list_render_templates lists them) |
| useCompFrameNumber | boolean | – | Number sequence frames from the composition's frame numbers |
No output schema declared.
No examples provided.
set_paint_strokes Set Paint Strokes ~516
Change or keyframe existing paint strokes (Paint effect, Timeline panel): Start and End (write-on), colour, diameter, hardness, opacity, flow and the other brush settings, a clone stroke's Clone Position, Clone Time and Clone Time Shift, the stroke's Transform, and the effect's Paint on Transparent. Strokes themselves are drawn by hand with the Brush, Clone Stamp or Eraser tool
| Name | Type | Req | Description |
|---|---|---|---|
| anchorPoint | array | – | Stroke Transform: Anchor Point [x, y] |
| angle | number | – | Brush angle, degrees |
| clonePosition | array | – | Clone strokes: Clone Position [x, y], where the stroke samples from |
| cloneTime | number | – | Clone strokes: Clone Time, seconds |
| cloneTimeShift | number | – | Clone strokes: Clone Time Shift, seconds |
| color | string | – | Brush 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 |
| diameter | number | – | Diameter, pixels |
| 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 |
| end | number | – | End, percent (animate it to write the stroke on) |
| flow | number | – | Flow, percent |
| hardness | number | – | Hardness, percent |
| layers | object | yes | Which layers. Give indexes (1-based, from list_layers), names, or selected: true |
| opacity | number | – | Opacity, percent |
| paintOnTransparent | boolean | – | The Paint effect's Paint on Transparent switch |
| position | array | – | Stroke Transform: Position [x, y] |
| rotation | number | – | Stroke Transform: Rotation, degrees |
| roundness | number | – | Roundness, percent |
| scale | array | – | Stroke Transform: Scale [x, y] percent |
| spacing | number | – | Spacing, percent |
| start | number | – | Start, percent of the stroke drawn from |
| strokes | array | – | Strokes by name (e.g. "Brush 1", "Clone 2") or 1-based index; omit for every stroke |
| time | number | – | Seconds: set keyframes at this time (animates the strokes). Default: static values, or keyframes at the current time on animated properties |
No output schema declared.
No examples provided.
set_project_settings Set Project Settings ~188
Read or change project settings (File > Project Settings): time display style (timecode or frames), footage start time, feet + frames and film type, frame count start, colour depth, expression engine, and the transparency grid in Project panel thumbnails. With no changes it returns the current settings
| Name | Type | Req | Description |
|---|---|---|---|
| bitsPerChannel | integer | – | Colour depth in bits per channel |
| expressionEngine | string | – | Expressions engine |
| feetAndFrames | boolean | – | Frames: Use Feet + Frames |
| filmType | string | – | Feet + Frames film |
| footageStart | string | – | Timecode: Footage Start Time from the source media or 00:00:00:00 |
| frameCount | string | – | Frames: Frame Count |
| timeDisplay | string | – | Time Display Style |
| transparencyGridThumbnails | boolean | – | Thumbnail Transparency Grid in the Project panel |
No output schema declared.
No examples provided.
set_property Set Property ~225
Set a property's value, as in the Timeline or Properties panel (layer Transform, shape, camera and light options, effect properties): with no time and no keyframes the static value, otherwise a keyframe at the time (or the current time). Text layers' Source Text takes a string
| 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 | – | Seconds: set a keyframe at this time |
| value | – | yes | A number, an array of numbers, text, or true/false |
No output schema declared.
No examples provided.
set_proxy Set Proxy ~283
Give footage items or compositions a proxy (File > Set Proxy): a file or image sequence, a solid or a placeholder, or remove it (None). useProxy switches between the proxy and the original (the proxy indicator in the Project panel)
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | solid: colour, "#RRGGBB" or "rgb(r,g,b)" |
| duration | number | – | placeholder: seconds. Default the item's duration, or 10 |
| file | string | – | file, sequence: absolute path (one item only) |
| forceAlphabetical | boolean | – | sequence: Force alphabetical order. Default false |
| frameRate | number | – | placeholder: frames per second. Default the item's rate, or 30 |
| height | integer | – | solid, placeholder: pixels. Default the item's height |
| items | array | yes | Footage or composition item ids |
| name | string | – | solid, placeholder: name. Default the item's name |
| pixelAspect | number | – | solid: pixel aspect ratio. Default the item's |
| proxy | string | – | What becomes the proxy; none removes it. Omit to only switch useProxy |
| useProxy | boolean | – | Use the proxy (true) or the original (false) everywhere in the project |
| width | integer | – | solid, placeholder: pixels. Default the item's width |
No output schema declared.
No examples provided.
set_render_settings Set Render Settings ~664
Change Render Queue items' render settings (Render Settings dialog): apply a template (Best Settings, Draft Settings, DV Settings, Multi-Machine Settings or your own), set quality, resolution, disk cache, proxies, effects, solo switches, guide layers, colour depth, frame blending, field rendering, 3:2 pulldown, motion blur, time span, frame rate and Skip Existing Files, the log level and the completion notification, and optionally save the result as a template
| Name | Type | Req | Description |
|---|---|---|---|
| colorDepth | string | – | "Color Depth": Current Settings, 8 bits per channel, 16 bits per channel or 32 bits per channel |
| diskCache | string | – | "Disk Cache": Read Only or Current Settings |
| duration | number | – | Custom time span duration, seconds |
| effects | string | – | "Effects": Current Settings, All On or All Off |
| fieldRender | string | – | "Field Render": Off, Upper Field First or Lower Field First |
| frameBlending | string | – | "Frame Blending": Current Settings, On for Checked Layers or Off for All Layers |
| frameRate | – | – | Frame rate: a number of frames per second, or "comp" for the composition's rate |
| guideLayers | string | – | "Guide Layers": Current Settings (render guide layers in the top composition) or All Off |
| items | array | yes | 1-based queue indexes |
| logType | string | – | Log: errors only, plus settings, or plus per-frame information |
| motionBlur | string | – | "Motion Blur": Current Settings, On for Checked Layers or Off for All Layers |
| notify | boolean | – | Send a Creative Cloud notification when this item finishes (the Notify checkbox) |
| proxyUse | string | – | "Proxy Use": Current Settings, Use All Proxies, Use Comp Proxies Only or Use No Proxies |
| pulldown | string | – | "3:2 Pulldown": Off or a phase such as WSSWW |
| quality | string | – | "Quality": Current Settings, Best, Draft or Wireframe |
| resolution | string | – | "Resolution": Current Settings, Full, Half, Third, Quarter or Custom |
| saveAsTemplate | string | – | Save the first item's resulting render settings as a template with this name |
| settings | object | – | Any other settings by the English name After Effects gives them (get_render_item shows the settable names and current values), e.g. { "Quality": "Best" } |
| skipExistingFiles | boolean | – | Skip frames already in the output folder, so several computers can render one image sequence |
| skipFrames | integer | – | Frames to skip between rendered frames for quick tests; 1 renders on twos |
| soloSwitches | string | – | "Solo Switches": Current Settings or All Off |
| start | number | – | Custom time span start, seconds |
| template | string | – | Render settings template applied first, e.g. "Best Settings", "Draft Settings", "DV Settings", "Multi-Machine Settings" (list_render_templates lists them) |
| timeSpan | string | – | "Time Span": Length of Comp, Work Area Only or Custom |
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.