AE MCP Bridge
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ae_healthA | Check the After Effects bridge: server and runner versions, whether After Effects is running or shows a dialog, AE version, open project, active composition. Changes nothing. |
| ae_run_jsxA | Run arbitrary ExtendScript (ES3 JavaScript) inside After Effects. The value of the last expression is returned (AE objects come back as short summaries). Pass data through |
| ae_get_resultA | Fetch the result of a command that was still running when its tool call timed out. Never re-sends the command. |
| ae_list_projectA | List the open project: compositions with their layers (index, name, type, in/out points) and all other items (folders, footage, solids) with their folder and usedIn count (0 = unused). Changes nothing. |
| ae_guidelinesA | Read the full motion-design and workflow guidelines for this bridge (easing, bounce, text animators, stagger, track mattes, motion blur, review loop, ExtendScript pitfalls). Call it once before designing or animating. Does not contact After Effects. |
| ae_save_projectA | Save the open project. With no path saves to its current file; with an absolute .aep path saves there (Save As). |
| ae_open_projectA | Open an .aep project in After Effects (closing the current one). If the current project has unsaved changes you must choose save: true or discard: true. Use this instead of opening/closing projects in ae_run_jsx, which breaks AE's undo history. |
| ae_capture_frameA | Render one frame of a composition to PNG and return it as an image for visual inspection. Transparent areas are filled with the composition background color by default. Changes nothing. |
| ae_capture_framesA | Render several frames of a composition into ONE contact-sheet image (grid with time labels) to judge an animation: timing, easing, overlaps, elements appearing outside their containers. Give explicit times, or start/end with count (default 9 evenly spaced) or step. Changes nothing. |
| ae_get_selectionA | What the user selected in After Effects: project items, layers of the active comp, and selected properties with their paths, values, keyframes (time, value, interpolation, ease) and property trees for selected groups (e.g. a text animator). Use it when the user says 'this', 'the selected layer', 'look at what I selected'. Changes nothing. |
| ae_inspectA | Deep property tree of a layer or of one of its groups, with values, keyframes and easing, expressions. By default only modified properties are listed (modifiedOnly: false lists everything). Changes nothing. |
| ae_set_compA | Change composition settings: name, size, duration, frame rate, background color, motion blur switch and shutter angle, work area, current time; open: true opens it in the viewer. One undo step. |
| ae_copy_animationA | Copy a property or a whole property group with its keyframes, easing and expressions from one layer to other layers (like Ctrl+C / Ctrl+V), optionally staggered. Works for text animators ('Text/Animators/Animator 1'), effects ('Effects/Gaussian Blur'), masks and single properties ('Transform/Position'). Target n (1-based in the given order) is shifted by offset + n * stagger frames. One undo step. |
| ae_add_text_animatorA | Add a text animator reveal (the motion-design way, instead of animating Transform): offsets such as position [0, 40], opacity 0, blur 16 are applied through a Range Selector that is animated away. shape 'rampUp' (default for characters/words) slides a soft window over the text so letters overlap in a wave; 'square' (default for lines) animates Start 0 -> 100 with strong ease. mode 'out' mirrors the reveal (last units leave first). Several layers can be staggered. One undo step. |
| ae_render_previewA | Render a composition (or a time range) through the Render Queue to an H.264 MP4 or a PNG sequence for the user to watch. Other queued items are paused during the render and restored. Blocks After Effects while rendering; long renders return a commandId for ae_get_result. |
| ae_run_jsx_fileB | Run an ExtendScript .jsx/.js file from disk (a library of reusable scripts) with optional |
| ae_create_compA | Create a composition (and open it in the viewer unless open: false). One undo step. |
| ae_create_layerA | Create a text, shape, solid, adjustment or null layer. Text is center-justified by default; use ae_center_layers to center any layer visually. One undo step. |
| ae_set_layerB | Change layer settings and transform: name, enabled, 3D, label, parent, timing, anchorPoint, position, scale, rotation, opacity, and text (text, font, fontSize, fillColor, strokeColor, strokeWidth, justification, tracking, leading). Pass time to write keyframes instead of static values. One undo step. |
| ae_center_layersA | Center layers in the composition. By default the anchor point is moved to the visual center of the layer content first (sourceRectAtTime), so text and shapes end up truly centered. One undo step. |
| ae_get_layer_timingB | Layer timing in seconds and frames: start, in/out points, duration, source in/out, stretch. Changes nothing. |
| ae_set_propertyA | Set any property of a layer or of its effects by path. With time, sets a keyframe; without time the property must have no keyframes. One undo step. |
| ae_set_keyframesA | Add keyframes to a layer or effect property and set their interpolation. ease: linear | hold | bezier | easy (Easy Ease) | easyIn | easyOut; influence 0.1..100 (default 33.3); easeIn/easeOut: { speed, influence } for custom temporal ease; spatial props also accept spatialAutoBezier, spatialContinuous, roving, inTangent, outTangent. One undo step. |
| ae_set_expressionA | Set an expression on a layer or effect property, or remove it with an empty string. Reports expressionError if AE rejects it. One undo step. |
| ae_list_available_effectsB | Search effects installed in After Effects by display name, matchName or category. Changes nothing. |
| ae_apply_effectA | Apply an effect to a layer by display name or matchName and optionally set its properties. Returns the effect's properties so they can be adjusted next. One undo step. |
| ae_list_layer_effectsA | List the effects on a layer with their property tree and current values. Changes nothing. |
| ae_remove_effectsA | Remove effects from a layer by name, matchName or index (or an array of them), or all. One undo step. |
| ae_list_presetsA | Find animation presets (.ffx) in the standard Adobe preset folders or given folders. Words in query must all match the preset path, e.g. 'blur in'. Changes nothing. |
| ae_apply_presetA | Apply an animation preset (.ffx) to a layer. Find presets with ae_list_presets. One undo step. |
| ae_add_markersA | Add one or many markers to a layer, or to the composition when layer is omitted. One undo step. |
| ae_get_audio_infoA | Audio info of a layer: source file path, audio levels and their keyframes, existing markers. Changes nothing. |
| ae_set_audio_levelsA | Set Audio Levels (dB) of a layer: static, at a time, or as a list of keyframes. One undo step. |
| ae_analyze_audioA | Analyze a WAV file: peak envelope and transient peaks (beats, hits). Pass path, or comp + layer to use the layer's source file (times are then converted to composition time). With addMarkers: true, places a marker at every peak (on that layer, or on the composition when only path is given; one undo step). Only uncompressed PCM/float WAV. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| motion-design-guidelines | Working loop and motion-design rules for creating and animating in After Effects through this bridge. |
| review-animation | Capture a contact sheet of the animation and critique timing, easing, hierarchy and clipping before changing anything. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 34 tools
Most tools target clearly distinct resources or operations (project, comp, layer, property, effect, preset, audio), and descriptions differentiate them well. Some overlap exists among ae_set_layer, ae_set_property, and ae_set_keyframes (all can create keyframes), and between ae_inspect and ae_list_layer_effects, which could cause occasional misselection.
All tools use a consistent ae_ prefix with snake_case and predominantly verb_noun structure (e.g., ae_create_comp, ae_set_property). A few names are noun phrases (ae_health, ae_guidelines) or single verbs (ae_inspect), but the pattern is highly predictable.
With 34 tools, the surface is large for an MCP server, even for a complex application like After Effects. While many tools are distinct and useful, some could be consolidated (e.g., property/keyframe/expression setters, frame capture variants), making the count feel heavy.
The surface covers a wide range: project management, comps, layers, properties, keyframes, expressions, effects, presets, text animators, markers, audio, rendering, and inspection. Minor gaps exist (no explicit delete for layers/comps/markers/keyframes, no import), but ae_run_jsx provides a workable escape hatch for missing operations.