About a-y-ibrahim/after-effects-mcp
a-y-ibrahim/after-effects-mcp is an MCP server in the Content category: class Arabic/RTL & multilingual support (works on AE in any UI language). 47 tools.
Install
git clone https://github.com/a-y-ibrahim/after-effects-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (57)
add-any-effectAdd any After Effects effect to a layer by matchName or display name.
Parameters not published.
add-markerAdd a marker to a layer or composition at a specified time. Markers can include a comment, label color, chapter name, URL and duration.
Parameters not published.
add-markers-bulkAdd multiple layer or composition markers at once. Use this after analyze-audio-waveform to place markers at detected peaks, or to add any set of markers in a single call.
Parameters not published.
add-to-render-queueAdd a composition to the After Effects render queue and configure its output. Select the comp by compName (most reliable), compIndex (1-based among compositions), or leave both empty to use the active comp. Templates must already exist in this AE installation.
Parameters not published.
analyze-audio-waveformAnalyze an audio file to extract waveform amplitude data and detect peaks/transients. First call get-audio-info to retrieve the sourceFilePath, then pass it here. Returns normalized amplitude values (0-1) at evenly spaced time intervals plus an array of peak times where transients are detected. Uncompressed PCM WAV is read natively; any other format (mp3, m4a/aac, ogg, flac, a video file
Parameters not published.
animate-from-dataGenerate After Effects keyframes for a layer property directly from an arbitrary numeric data series - stock prices, sensor readings, scores, survey results, or any other time-ordered numbers (not audio; see animate-to-audio for that). Provide either `data` (explicit {time, value} points) or `values` + `interval` (an evenly-spaced series with an implied time step) - not both. Each raw value is normalized using [inputMin, inputMax] (auto-detected from the series when not given, so an unknown-range series still maps cleanly) and mapped to [outputMin, outputMax], with the same optional response curve and smoothing animate-to-audio uses. Targets a plain layer property (e.g.
Parameters not published.
animate-to-audioGenerate After Effects keyframes for a layer property directly from an audio file
Parameters not published.
apply-effectApply an effect to a layer in After Effects
Parameters not published.
apply-effect-templateApply a predefined effect template to a layer in After Effects
Parameters not published.
apply-presetApply an After Effects .ffx preset file to a layer.
Parameters not published.
Show all 57 tools
batch-set-layer-propertiesSet transform/visibility properties on MANY layers in one call. Each operation targets a layer by layerIndex or layerName and may set any of: threeDLayer, position, scale, rotation, opacity, blendMode, startTime, outPoint. Setting position clears its existing keyframes first.
Parameters not published.
center-layersCenter one layer, selected layers, or all layers in a composition.
Parameters not published.
check-bridgeHealth check: verify the After Effects MCP Bridge panel is open and responding, report its version, the AE version, the shared bridge folder, and the open project/active comp. Run this FIRST when anything times out or behaves oddly. If it reports a version mismatch, re-run `npm run install-bridge` and restart After Effects.
Parameters not published.
contact-sheetSee a composition
Parameters not published.
create-adjustment-layerCreate an adjustment layer in the specified composition (or active comp).
Parameters not published.
create-cameraCreate a camera layer in a composition. Select the comp by compName/compIndex (or active comp).
Parameters not published.
create-compositionCreate a new composition in After Effects with specified parameters
Parameters not published.
create-text-layerCreate a text layer with full Arabic / RTL support. Direction is auto-detected from the text by default (Arabic -> right-to-left, right-aligned), or force it with `direction`. Works on After Effects in any language.
Parameters not published.
delete-layerDelete a layer from a composition. Target the layer by layerIndex or layerName.
Parameters not published.
duplicate-layerDuplicate a layer in a composition, optionally renaming the copy. Target the layer by layerIndex or layerName.
Parameters not published.
execute-scriptRun ARBITRARY ExtendScript (the After Effects scripting DOM) inside After Effects and return the result. This is the most powerful tool: use it for anything the dedicated tools do not cover - masks, track mattes, parenting, 3D layers/cameras/lights, blending modes, precomposing, time remapping, layer styles, text animators, puppet pins, importing/replacing footage, batch edits across many layers, project-wide changes, etc. Your code runs as the body of a function, so use `return <value>;` to send data back, and return only JSON-serializable values (numbers, strings, arrays, plain objects). The whole script already runs inside one undo group, so do NOT call app.beginUndoGroup yourself. Use `app` and `app.project` to reach everything. On error you get back the message and line number. Example script:
Parameters not published.
get-audio-infoGet audio metadata, source file path, existing markers, and audio level keyframes for a layer in After Effects.
Parameters not published.
get-helpGet help on using the After Effects MCP integration
Parameters not published.
get-layer-clip-framesGet a layer
Parameters not published.
get-resultsGet results from the last script executed in After Effects
Parameters not published.
import-footageImport one or more files into the project as footage items, ready to use as a layer source or in populate-template
Parameters not published.
inspect-compMap a whole composition: its settings (size, fps, duration, work area) plus every layer with a useful summary - index, id, name, type, enabled/locked/shy/solo, 3D/adjustment/null flags, in/out/start, parent, blend mode, effect count, mask count, has-audio. Use this to navigate a comp and decide what to edit, then call inspect-layer for one layer
Parameters not published.
inspect-layerDeeply inspect ONE layer so you can SEE its exact state before making precise edits: type, enabled/locked/shy/solo, in/out points, parent, blend mode, 3D flag; the full Transform group (each property
Parameters not published.
list-available-effectsList all effects available in this After Effects installation, with optional text filter.
Parameters not published.
list-layer-effectsList effects on a layer, with optional recursive property details.
Parameters not published.
list-presetsList available After Effects .ffx presets from common or provided folders.
Parameters not published.
list-project-itemsList items in the project panel (compositions, footage, solids, folders), with each footage item
Parameters not published.
localize-compCreate a localized duplicate of a composition: swap in translated text for one or more text layers, auto-detecting Arabic and applying right-to-left direction/alignment (same logic as create-text-layer). Every other layer, effect, and animation is preserved unchanged because the whole composition is duplicated first. Text layers nested inside precompositions are reachable too via `path`: every precomposition on the path is safely duplicated the first time it
Parameters not published.
match-referenceCompare a composition against a reference image: renders the current frame, then returns a side-by-side (reference vs current) AND a difference map (bright where they differ) so you can see exactly WHERE the render deviates and converge on a match. Provide the reference as an on-disk image path. Select the comp by name or 1-based index, or leave empty for the active comp.
Parameters not published.
mcp_aftereffects_get_effects_helpGet help on using After Effects effects
Parameters not published.
populate-templateDuplicate a template composition once per row of a data table, populating each duplicate from that row
Parameters not published.
precompose-layersBundle one or more layers into a new nested composition (Layer > Precompose), replacing them in the source comp with a single layer referencing the new precomp.
Parameters not published.
relink-footageRelink a footage item
Parameters not published.
remove-effectRemove one specific effect (or all effects) from a layer.
Parameters not published.
render-aerenderRender a composition to a file in the BACKGROUND using aerender (a separate headless After Effects process). Unlike start-render, this does NOT freeze your After Effects UI - you can keep working. REQUIREMENT: the project must be saved to disk (aerender renders the saved .aep). By default it saves the open project first and renders it; pass projectPath to render a specific .aep instead. Returns immediately after starting unless you pass waitMs. Check progress with render-status.
Parameters not published.
render-queueInspect or manage the After Effects render queue: list items with their status and output path, clear the whole queue, or remove a single item by index.
Parameters not published.
render-statusCheck background aerender renders started with render-aerender: which are still running, which finished, and the tail of each render log.
Parameters not published.
reorder-layerChange a layer
Parameters not published.
run-bridge-testRun the bridge test effects script to verify communication and apply test effects
Parameters not published.
run-scriptRun a read-only script in After Effects
Parameters not published.
search-presetsSearch After Effects .ffx presets by name or path.
Parameters not published.
see-frameSEE what a composition actually looks like: render one or more frames to images and return them so you can visually verify and self-correct (make a change, look, fix). Use this after edits to catch problems the DOM does not reveal - clipped or empty text, blown-out glow, off-frame layers, wrong colors, or Arabic/RTL text that did not shape correctly. Select the comp by name or 1-based index, or leave empty for the active comp. Returns downscaled preview images by default (maxWidth 512) to keep it fast and cheap; pass maxWidth 0 for a native-resolution still. Note: a still is a still - time-based effects like motion blur may look different from playback.
Parameters not published.
set-audio-levelsSet the audio levels (in dB) for an audio or AV layer. Supports per-channel control and optional keyframing.
Parameters not published.
set-composition-propertiesChange a composition
Parameters not published.
set-effect-keyframeSet an effect property keyframe with optional graph interpolation and easy-ease controls.
Parameters not published.
set-effect-propertySet or keyframe any property on an existing layer effect using name/index/path.
Parameters not published.
set-layer-maskCreate or modify a mask on a layer. Provide the shape as maskRect (rectangle shorthand) OR maskPath (array of [x,y] vertices, >= 3). Omit maskIndex to add a new mask, or pass it to modify an existing one.
Parameters not published.
set-layer-parentSet (or clear) a layer
Parameters not published.
setLayerExpressionSet or remove an expression for a specific layer property.
Parameters not published.
setLayerKeyframeSet a keyframe for a specific layer property at a given time.
Parameters not published.
start-renderRender all QUEUED items in the After Effects render queue. IMPORTANT: this BLOCKS After Effects until the render finishes - the AE UI is unresponsive during the render. Add items first with add-to-render-queue. For long renders, raise timeoutMs; if the wait times out the render still continues in AE and you can check status later with render-queue.
Parameters not published.
test-animationTest animation functionality in After Effects
Parameters not published.
Ask AI
Ask AI about a-y-ibrahim/after-effects-mcp
Powered by Claude · Grounded in docs
Security checks
6 checks have not been run yet.