mcp-ae
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-ae create a 1920x1080 composition called 'Intro' at 24fps, 5 seconds"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP After Effects
An MCP (Model Context Protocol) server that lets Claude (or any MCP client) control Adobe After Effects via natural language.
How It Works
Claude ──MCP──► mcp-after-effects ──ExtendScript──► Adobe After EffectsThe server bridges Claude to AE using one of three mechanisms (selected automatically based on your OS):
Mode | OS | Mechanism |
| macOS |
|
| Windows | VBScript COM automation |
| Any | AE command-line renderer ( |
Related MCP server: after-effects-mcp
Prerequisites
Node.js ≥ 18
Adobe After Effects (any recent version — CC 2019+)
After Effects must be open for
applescript/commodes, oraerendermust be on your PATH foraerendermode
Installation
npm install
npm run buildConfiguration
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"after-effects": {
"command": "node",
"args": ["/absolute/path/to/mcp-ae/dist/index.js"],
"env": {
"AE_BRIDGE_MODE": "auto"
}
}
}
}Environment Variables
Variable | Default | Description |
|
| Bridge mode: |
| (OS default) | Full path to |
aerender Paths (defaults)
macOS:
/Applications/Adobe After Effects 2024/aerenderWindows:
C:\Program Files\Adobe\Adobe After Effects 2024\Support Files\aerender.exe
Available MCP Tools
Project & Composition
Tool | Description |
| Get info about the open project |
| List all compositions |
| List all layers in a composition |
| Create a new composition |
Layers
Tool | Description |
| Add a text layer |
| Add a solid color layer |
| Add a null/control layer |
| Import a file (video, image, audio, AEP) |
Animation
Tool | Description |
| Set a layer property value (with or without keyframe) |
| Add a keyframe to a layer property |
| Apply an effect to a layer by match name |
Render & Save
Tool | Description |
| Add a composition to the render queue |
| Start rendering all queued items |
| Save the current project |
Advanced
Tool | Description |
| Execute raw ExtendScript in After Effects |
Example Prompts
Once connected to Claude, you can say things like:
"List all compositions in my After Effects project"
"Create a 1920×1080 composition called 'Intro' at 24fps, 5 seconds long"
"Add a white text layer saying 'Hello World' at 72px font size, centered"
"Set the opacity of layer 'Title' to 0 at t=0 and 100 at t=1 second"
"Apply a Gaussian Blur to the background layer"
"Add the 'Main' composition to the render queue and save to /tmp/output.mp4"
"Run this ExtendScript:
app.project.activeItem.name"
Property Paths
Use dot notation for nested properties with ae_set_layer_property and ae_add_keyframe:
Transform.Position → [x, y]
Transform.Scale → [x, y] (percentage, e.g. [100, 100])
Transform.Rotation → degrees
Transform.Opacity → 0-100
Transform.Anchor Point → [x, y]Common Effect Match Names
Effect | Match Name |
Gaussian Blur |
|
Drop Shadow |
|
Glow |
|
Hue/Saturation |
|
Levels |
|
Fractal Noise |
|
Linear Wipe |
|
Fill |
|
Find all match names by running: ae_run_script with:
var e = app.effects;
var r = [];
for (var i=0; i<e.length; i++) r.push(e[i].matchName);
return r.join("\n");Development
npm run dev # Run with tsx (no build step)
npm run build # Compile TypeScript → dist/
npm run watch # Watch modeArchitecture
src/
├── index.ts # MCP server, tool definitions
├── ae-bridge.ts # OS-level AE communication
└── scripts/
└── common-effects.ts # Effect names & property path constantsAvailable Tools
72 toolsae_add_cameraB
Add a camera layer to a composition
Inputs: comp_name (required), preset, camera_name.
ae_add_expressionC
Add an expression to a layer property
Inputs: comp_name (required), expression (required), layer_name (required), property_path (required).
ae_add_keyframeC
Add a keyframe to a layer property at a specific time
Inputs: time (required), value (required), comp_name (required), layer_name (required), +1 more.
ae_add_keyframe_sequenceB
Add multiple keyframes at once to a layer property
Inputs: comp_name (required), keyframes (required), layer_name (required), property_path (required).
ae_add_lightB
Add a light layer to a composition
Inputs: comp_name (required), color_b, color_g, color_r, +3 more.
ae_add_null_layerA
Add a null (control) layer to a composition
Inputs: comp_name (required), layer_name (required).
ae_add_shape_layerA
Add a shape layer with a rectangle or ellipse to a composition
Inputs: comp_name (required), layer_name (required), width, fill_b, +8 more.
ae_add_solid_layerC
Add a solid color layer to a composition
Inputs: comp_name (required), layer_name (required), width, height, +3 more.
ae_add_text_layerB
Add a text layer to a composition
Inputs: text (required), comp_name (required), color_b, color_g, +4 more.
ae_add_to_render_queueC
Add a composition to the After Effects render queue
Inputs: comp_name (required), output_path (required).
ae_apply_effectB
Apply an effect to a layer using its match name (e.g. 'ADBE Gaussian Blur 2')
Inputs: comp_name (required), layer_name (required), effect_match_name (required).
ae_batch_apply_effectB
Apply an effect to all layers (or filtered by type) in a composition
Inputs: comp_name (required), effect_match_name (required), skip_locked, layer_type_filter.
ae_batch_create_compositionsB
Create multiple compositions based on a common size/fps template
Inputs: compositions (required), width, height, frame_rate, +1 more.
ae_batch_importB
Import multiple files into the After Effects project at once
Inputs: file_paths (required), destination_folder, import_as_sequence.
ae_batch_renderB
Queue multiple compositions for rendering in a single operation
Inputs: jobs (required), start_render.
ae_batch_set_propertyA
Set a property value on multiple layers in a composition at once
Inputs: value (required), comp_name (required), layer_names (required), property_path (required), +1 more.
ae_clear_render_queueA
Remove all items from the render queue (skips items currently rendering)
Inputs: no named parameters.
ae_close_projectB
Close the current After Effects project
Inputs: save.
ae_collect_filesC
Collect all project assets into a single folder (like AE's 'Collect Files' command)
Inputs: output_folder (required).
ae_create_compositionC
Create a new composition in the current After Effects project
Inputs: name (required), width, height, duration, +2 more.
ae_create_folderB
Create a folder in the After Effects project panel
Inputs: name (required), parent_folder.
ae_delete_compositionA
Permanently delete a composition from the project
Inputs: comp_name (required).
ae_delete_keyframeA
Delete a specific keyframe from a layer property by index (1-based)
Inputs: comp_name (required), layer_name (required), property_path (required), keyframe_index (required).
ae_delete_layerB
Delete a layer from a composition
Inputs: comp_name (required), layer_name (required).
ae_delete_project_itemB
Delete an item from the After Effects project panel
Inputs: item_name (required).
ae_duplicate_compositionC
Duplicate a composition
Inputs: comp_name (required), new_name.
ae_duplicate_layerB
Duplicate a layer within a composition
Inputs: comp_name (required), layer_name (required).
ae_easy_ease_keyframesA
Apply Easy Ease to all keyframes of a property (smooth in/out easing)
Inputs: comp_name (required), layer_name (required), property_path (required), ease_type.
ae_enable_time_remapB
Enable time remapping on an AV layer
Inputs: comp_name (required), layer_name (required).
ae_export_framesA
Export a range of frames from a composition to the render queue as still images
Inputs: end_time (required), comp_name (required), start_time (required), output_folder (required), +2 more.
ae_get_composition_layersA
Get all layers in a specific After Effects composition
Inputs: comp_name (required).
ae_get_composition_settingsA
Get all settings of a composition (size, fps, duration, bg color, work area, etc.)
Inputs: comp_name (required).
ae_get_keyframesA
List all keyframes for a layer property
Inputs: comp_name (required), layer_name (required), property_path (required).
ae_get_layer_propertiesB
Get the current transform and basic properties of a layer
Inputs: comp_name (required), layer_name (required).
ae_get_project_infoB
Get information about the currently open After Effects project
Inputs: no named parameters.
ae_get_render_queueB
Get the current state of the After Effects render queue
Inputs: no named parameters.
ae_import_fileA
Import a file (video, image, audio, AEP) into the current After Effects project
Inputs: file_path (required).
ae_list_compositionsB
List all compositions in the current After Effects project
Inputs: no named parameters.
ae_list_output_templatesA
List all available output module templates in After Effects
Inputs: no named parameters.
ae_list_project_itemsA
List all items in the After Effects project panel (compositions, footage, folders)
Inputs: no named parameters.
ae_list_render_templatesA
List all available render settings templates in After Effects
Inputs: no named parameters.
ae_modify_compositionA
Modify settings of an existing composition (width, height, duration, frame rate, pixel aspect)
Inputs: comp_name (required), width, height, duration, +2 more.
ae_move_to_folderB
Move a project item into a folder
Inputs: item_name (required), folder_name (required).
ae_new_projectA
Create a new blank After Effects project (closes the current one)
Inputs: no named parameters.
ae_open_projectA
Open an existing After Effects project file (.aep or .aepx)
Inputs: file_path (required).
ae_parent_layerA
Set the parent of a layer to another layer (for hierarchical transforms)
Inputs: comp_name (required), layer_name (required), parent_layer_name (required).
ae_precompose_layersB
Precompose a set of layers into a new nested composition
Inputs: comp_name (required), layer_names (required), new_comp_name (required), move_all_attributes.
ae_remove_expressionA
Remove an expression from a layer property
Inputs: comp_name (required), layer_name (required), property_path (required).
ae_remove_render_queue_itemA
Remove an item from the render queue by its index
Inputs: index (required).
ae_rename_compositionB
Rename a composition
Inputs: new_name (required), comp_name (required).
ae_rename_layerB
Rename a layer in a composition
Inputs: new_name (required), comp_name (required), layer_name (required).
ae_render_headlessA
Render a composition directly via aerender (command-line, no UI required). After Effects does NOT need to be open.
Inputs: comp_name (required), output_path (required), project_path (required), end_frame, +4 more.
ae_reorder_layerA
Move a layer to a different position in the layer stack (1 = top)
Inputs: comp_name (required), new_index (required), layer_name (required).
ae_replace_footageA
Replace the source file of a footage item in the project (all uses update automatically)
Inputs: footage_name (required), new_file_path (required).
ae_run_scriptB
Execute a raw ExtendScript snippet directly in After Effects
Inputs: script (required).
ae_save_projectA
Save the current After Effects project
Inputs: output_path.
ae_set_comp_background_colorB
Set the background color of a composition
Inputs: color_b (required), color_g (required), color_r (required), comp_name (required).
ae_set_comp_motion_blurB
Enable or disable motion blur for a composition
Inputs: enabled (required), comp_name (required), shutter_angle, shutter_phase.
ae_set_keyframe_interpolationC
Set the interpolation type (easing) for a keyframe
Inputs: comp_name (required), layer_name (required), property_path (required), keyframe_index (required), +2 more.
ae_set_layer_3dB
Enable or disable 3D mode on a layer
Inputs: enabled (required), comp_name (required), layer_name (required).
ae_set_layer_blend_modeB
Set the blending mode of a layer
Inputs: comp_name (required), blend_mode (required), layer_name (required).
ae_set_layer_propertyC
Set a property value on a layer. Use dot notation: 'Transform.Opacity', 'Transform.Position', etc.
Inputs: value (required), comp_name (required), layer_name (required), property_path (required), +1 more.
ae_set_layer_qualityB
Set the render quality of a layer (best, draft, wireframe)
Inputs: quality (required), comp_name (required), layer_name (required).
ae_set_layer_timeB
Set the in point, out point, or start time of a layer
Inputs: comp_name (required), layer_name (required), in_point, out_point, +1 more.
ae_set_output_moduleC
Configure the output module for a render queue item (format, codec, output path)
Inputs: queue_index (required), output_path, template_name.
ae_set_project_settingsB
Configure After Effects project settings (color depth, linear blending)
Inputs: linear_blending, bits_per_channel.
ae_set_render_settingsB
Apply a render settings template to a render queue item
Inputs: queue_index (required), template_name, time_span_start, time_span_duration.
ae_set_work_areaA
Set the work area (render region) start and end time of a composition
Inputs: end (required), start (required), comp_name (required).
ae_start_renderB
Start rendering all queued items in the After Effects render queue
Inputs: no named parameters.
ae_toggle_layer_lockC
Lock or unlock a layer
Inputs: locked (required), comp_name (required), layer_name (required).
ae_toggle_layer_soloB
Enable or disable solo on a layer
Inputs: solo (required), comp_name (required), layer_name (required).
ae_toggle_layer_visibilityB
Show or hide a layer (toggle the eye icon)
Inputs: visible (required), comp_name (required), layer_name (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 72 tools
Most tools map cleanly to a distinct resource and action, and descriptions clarify cardinality such as single versus batch. However, the rendering/queue family has some overlapping paths—ae_add_to_render_queue, ae_batch_render, ae_export_frames, ae_start_render, and ae_render_headless—that could lead an agent to choose the wrong operation.
All tools share the ae_ prefix and follow a consistent snake_case verb_noun pattern. The get/list distinction is used predictably, and batch variants are uniformly marked with batch_, making the naming scheme highly predictable.
72 tools is an extreme count for an MCP server. Many are micro-tools such as individual layer toggles, keyframe helpers, and batch wrappers that could be consolidated into fewer parameterized actions without losing clarity.
The tool surface covers project, composition, layer, keyframe, effect application, import, and render-queue workflows with no major dead ends. Minor gaps remain, such as no effect parameter editing, no text content modification, and no mask or track-matte operations.
Maintenance
Related MCP Connectors
Direct AI video, image, music and storyboard production from any MCP client.
AI video editor for agents and humans: timeline, captions, color, audio and generation as MCP tools.
Compose, edit and render video with your AI agent. Turn footage into finished edits with content-aware reframing, word-timed captions and motion graphics. Hosted MCP with OAuth sign-in; cloud processing uses credits.
An MCP connector for Adobe After Effects. Real, editable layers and keyframes, not scripts.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables AI assistants to control Adobe After Effects through the MCP protocol, including composition creation, layer management, and animation.13175 npmMIT
- -licenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to control Adobe After Effects through a standardized MCP protocol, providing tools for composition creation, layer management, and animation.-
- AlicenseCqualityDmaintenanceMCP server for controlling Adobe After Effects, enabling AI assistants to create compositions, manage layers, and animate properties.13175 npmMIT
- AlicenseCqualityCmaintenanceEnables AI assistants and applications to control Adobe After Effects through the Model Context Protocol, including creating compositions, managing layers, and animating properties via keyframes and expressions.13175 npmMIT