after-effects
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AE_APP | No | Target a specific install when several are present. Windows: full path to AfterFX.exe, or to the install folder containing Support Files\AfterFX.exe. macOS: an app name ("Adobe After Effects 2025") or a full path to the .app. Auto-detected when unset — on Windows by scanning %ProgramFiles%\Adobe and taking the newest version. | |
| AE_MCP_KEEP_TEMP | No | Set to `1` to keep generated `.jsx` files for debugging instead of deleting them. |
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 | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ae_statusA | Check whether After Effects is running and report its version, the open project, and whether scripts are allowed to write files (needed for ae_save_frame and rendering). Start here if anything else fails. |
| ae_project_infoA | List everything in the Project panel — comps, footage, solids and folders — with ids you can pass to other tools. |
| ae_open_projectA | Open an .aep file, or start a new empty project. Fails if the current project has unsaved changes, rather than discarding someone's work: save it first with ae_save_project, or pass discardChanges to throw it away deliberately. |
| ae_save_projectA | Save the current project, optionally to a new path (Save As). |
| ae_importA | Import files into the project. Handles stills, video, audio, and image sequences. Returns the new item ids so you can add them to a comp with ae_add_layer. |
| ae_undoB | Undo the last operation in After Effects. Repeat to step further back. |
| ae_list_compsA | List every composition in the project with its size, duration and frame rate. |
| ae_comp_infoA | Read a composition's settings and its layer stack, including each layer's transform, effects, and which properties are keyframed or expression-driven. This is the tool to call before editing anything, so you know what is actually there. |
| ae_create_compA | Create a new composition and open it in the timeline. Note that backgroundColor is a preview convenience only — After Effects never renders it, so add a solid layer if the background needs to appear in ae_save_frame output or a final render. |
| ae_set_comp_settingsA | Rename or resize a composition, or change its duration, frame rate, work area or background. |
| ae_set_timeA | Set the current time in a composition. Affects what ae_save_frame captures. |
| ae_add_layerA | Add a layer to a composition: text, solid, shape, null, adjustment, camera, light, or existing footage/comp from the project. Returns the new layer's index. |
| ae_set_layerA | Change a layer's name, transform, timing, parenting, blend mode or switches. Values set here are static — use ae_set_keyframes to animate instead. |
| ae_set_textC | Change the string and character styling on a text layer. |
| ae_layer_opA | Structural operations on layers: duplicate, delete, move in the stack, precompose a set of layers into a new comp, or split at the current time. |
| ae_selectA | Change the timeline selection. Other tools fall back to the selection when you omit |
| ae_set_keyframesA | Set keyframes on any animatable property — transform, effect parameters, mask paths, shape properties, text animators. Existing keyframes at the same times are replaced. Easing defaults to smooth ease in and out. |
| ae_set_propertyA | Set a static value on any property by path — effect parameters, mask feather, shape sizes, anything ae_comp_info shows. Use ae_set_keyframes to animate instead. |
| ae_get_propertyA | Read a property's current value, its keyframes and any expression on it. Also lists the property's children, which is how you discover exact parameter names. |
| ae_set_expressionA | Attach an expression to a property, or clear it. Expressions are written in After Effects' JavaScript expression language. |
| ae_remove_keyframesA | Delete keyframes from a property — all of them, or those inside a time range. |
| ae_search_effectsA | Search the effects installed in this copy of After Effects and get their exact matchNames. Use this before ae_apply_effect when you aren't sure an effect exists or how it's spelled. |
| ae_apply_effectA | Add an effect to a layer and optionally set its parameters in one call. Accepts a display name ('Gaussian Blur') or a matchName ('ADBE Gaussian Blur 2'). |
| ae_list_effect_paramsA | List every parameter of an effect already on a layer, with current values and types. This is how you discover the exact names to pass to ae_apply_effect or ae_set_property. |
| ae_remove_effectB | Delete an effect from a layer, or just switch it off. |
| ae_save_frameA | Render a single frame of a composition to PNG and return it as an image, so you can see what the comp actually looks like. Use this to check your work after making changes — don't assume an edit landed the way you intended. The PNG has a transparent background: a composition's background color is an After Effects preview setting and never renders. Add a solid layer if you need an opaque backdrop. |
| ae_renderA | Add a composition to the render queue and render it. After Effects is blocked while this runs, so keep the range short unless you mean it. Use ae_save_frame for quick visual checks instead. |
| ae_render_templatesA | List the render settings and output module templates available in this install, so you can pass valid names to ae_render. |
| ae_run_scriptA | Run arbitrary ExtendScript inside After Effects. This is the escape hatch for anything the other tools don't cover — masks, shape operators, text animators, puppet pins, the lot. The script body runs as a function: use Pass Remember: this is ES3. No JSON, no arrow functions, no let/const, no Array.forEach. |
| ae_exec_menuA | Execute an After Effects menu command by name — useful for things with no scripting API, like 'Auto-Orient', 'Fit to Comp', or 'Purge All Memory'. Names must match the menu exactly. |
| ae_list_fontsA | List fonts installed for After Effects with their PostScript names — which is what ae_add_layer and ae_set_text expect. Setting a font that isn't listed here silently does nothing. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 31 tools
Most tools target a distinct resource and action, and the descriptions clarify boundaries well. The only mild overlaps are between ae_set_property and ae_set_layer for static layer values, and between ae_project_info, ae_list_comps, and ae_comp_info, but each has a clear enough role.
The ae_ prefix and mostly verb_noun pattern (ae_list_comps, ae_create_comp, ae_set_keyframes) make the set predictable. A few bare verbs like ae_import, ae_undo, and ae_select, plus noun-style names like ae_project_info and ae_status, are minor deviations.
At 31 tools, the server exceeds the 25+ threshold that signals an overly heavy surface. While After Effects is a broad domain, many property, effect, and layer operations could plausibly be consolidated into fewer, higher-level tools.
The tool set covers the full project lifecycle, comp and layer manipulation, keyframes, expressions, effects, text, rendering, and even a scripting escape hatch for unsupported operations. There are no obvious dead ends for realistic After Effects automation workflows.