After Effects MCP Server
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., "@After Effects MCP Server Create a 1080p comp and add a text layer that fades in over 2 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.
π¬ After Effects MCP Server
Fork notice. This is a fork of Dakkshin/after-effects-mcp (MIT). The original project is the basis for everything here; this fork extends the ExtendScript bridge so a script can drive real animation β keyframe tracks, expressions, effects and footage swaps β rather than setting static properties one at a time. See What this fork adds.
β¨ A Model Context Protocol (MCP) server for Adobe After Effects that enables AI assistants and other applications to control After Effects through a standardized protocol.
Table of Contents
Related MCP server: after-effects-mcp
π¦ Features
π₯ Core Composition Features
Create compositions with custom settings (size, frame rate, duration, background color)
List all compositions in a project
Get project information such as frame rate, dimensions, and duration
π§± Layer Management
Create text layers with customizable properties (font, size, color, position)
Create shape layers (rectangle, ellipse, polygon, star) with colors and strokes
Create solid/adjustment layers for backgrounds and effects
Create camera layers with configurable zoom and position
Create null objects for animation control
Modify layer properties like position, scale, rotation, opacity, timing
Toggle 2D/3D mode for layers
Set blend modes (normal, multiply, screen, etc.)
Track matte support (alpha, luma, inverted)
Duplicate layers with optional rename
Delete layers from composition
Create/modify masks with feather, expansion, and opacity
π Animation Capabilities
Set keyframes for layer properties (Position, Scale, Rotation, Opacity, etc.)
Apply expressions to layer properties for dynamic animations
Batch set properties across multiple layers at once
βοΈ Setup Instructions
π Prerequisites
Adobe After Effects (2022 or later)
Node.js (v14 or later)
npm or yarn package manager
π₯ Installation
Clone the repository
git clone https://github.com/Dakkshin/after-effects-mcp.git cd after-effects-mcpInstall dependencies
npm install # or yarn installBuild the project
npm run build # or yarn buildInstall the After Effects panel
npm run install-bridge # or yarn install-bridgeThis will copy the necessary scripts to your After Effects installation.
π§ Update MCP Config
Option 1: Using .mcp.json (Recommended for Claude Code)
The repository includes a .mcp.json file for easy configuration. Copy or reference it in your MCP settings:
{
"mcpServers": {
"AfterEffectsMCP": {
"command": "node",
"args": ["PATH/TO/after-effects-mcp/build/index.js"]
}
}
}Option 2: Manual Configuration
Go to your client (e.g., Claude or Cursor) and update your config file:
{
"mcpServers": {
"AfterEffectsMCP": {
"command": "node",
"args": ["C:\\Users\\Dakkshin\\after-effects-mcp\\build\\index.js"]
}
}
}βΆοΈ Running the Server
Start the MCP server
npm start # or yarn startOpen After Effects
Open the MCP Bridge Auto panel
In After Effects, go to Window > mcp-bridge-auto.jsx
The panel will automatically check for commands every few seconds
Make sure the "Auto-run commands" checkbox is enabled
π Usage Guide
Once you have the server running and the MCP Bridge panel open in After Effects, you can control After Effects through the MCP protocol. This allows AI assistants or custom applications to send commands to After Effects.
π Creating Compositions
You can create new compositions with custom settings:
Name
Width and height (in pixels)
Frame rate
Duration
Background color
Example MCP tool usage (for developers):
mcp_aftereffects_create_composition({
name: "My Composition",
width: 1920,
height: 1080,
frameRate: 30,
duration: 10
});βοΈ Working with Layers
You can create and modify different types of layers:
Text layers:
Set text content, font, size, and color
Position text anywhere in the composition
Adjust timing and opacity
Shape layers:
Create rectangles, ellipses, polygons, and stars
Set fill and stroke colors
Customize size and position
Solid layers:
Create background colors
Make adjustment layers for effects
πΉ Animation
You can animate layers with:
Keyframes:
Set property values at specific times
Create motion, scaling, rotation, and opacity changes
Control the timing of animations
Expressions:
Apply JavaScript expressions to properties
Create dynamic, procedural animations
Connect property values to each other
π Available MCP Tools
Command | Description |
| Create a new composition |
| Run a JS script inside AE |
| Get script results |
| Help for available commands |
| Add keyframe to layer property |
| Add/remove expressions from properties |
| Set layer properties (position, scale, rotation, opacity, blendMode, threeDLayer, trackMatteType, enabled, etc.) |
| Apply properties to multiple layers |
| Get layer info (position, 3D status) |
| Create camera layer |
| Create null object for animation |
| Duplicate a layer |
| Delete a layer |
| Create/modify layer masks |
π¨βπ» For Developers
π§© Project Structure
src/index.ts: MCP server implementationsrc/scripts/mcp-bridge-auto.jsx: Main After Effects panel scriptinstall-bridge.js: Script to install the panel in After Effects
π¦ Building the Project
npm run build
# or
yarn buildNote: This project uses esbuild for fast builds, replacing the previous TypeScript compiler approach that could run out of memory on larger codebases.
π€ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Star History
License
This project is licensed under the MIT License - see the LICENSE file for details.
What this fork adds
Upstream batchSetLayerProperties sets static transform properties. Driving an animation through it
meant one round trip per keyframe, which is unusable over a file-based bridge. This fork makes a
single batch call able to describe motion.
New keys on batchSetLayerProperties:
key | what it does |
| write a whole track at once β |
| set an expression per property; |
| toggle an existing expression without losing it |
| add or modify an effect and its properties, with |
| strip a property's keys, holding a chosen value |
| write Position even when it already has keys, shifting them by the delta |
| applied before everything else, so one op can unlock, edit, and move on |
New commands:
replaceFootageβ repoint a layer at another file or at another composition (sourceId), which is how nested comps get assembled programmatically.saveProjectβ save in place, or Save As withpath. Upstream could build an entire composition tree and never touch disk, and After Effects does not autosave a project that has never been saved, so the work lived only in RAM until someone pressed Cmd-S.overwrite: falserefuses to clobber an existing file, which matters when the project was opened from a template.
Also: getLayerInfo reports far more per layer (keyframe counts, expressions, anchor point,
source id), resolveCompFromArgs accepts compId and errors clearly on an ambiguous name instead of
guessing, and .mcp.json no longer hardcodes one machine's absolute path.
Honest limits
Things this bridge still cannot do, which are worth knowing before you plan around it:
No keyframe easing. Every key it writes is linear; there is no velocity or influence API. Shaped motion has to be baked as a dense run of samples.
No layer parenting, no masks, no layer reordering over time.
No render/export command. The only pixel output is one still at a time via
getLayerInfowithsaveFramePath.saveProjectcloses half of this gap: save the project, then driveaerenderfrom a shell, which renders in its own process instead of freezing the panel.Silent failures. The bridge returns
status: "success"even when a property was skipped, encoding it inchangedPropertiesaspositionSkippedKeyframed,keyPropNotFound,exprPropNotFoundand similar. Scan that array β a successful response does not mean the property was written.A reused composition keeps the duration it was created with unless
setCompositionPropertiesis called.
Available Tools
13 toolsapply-effectC
Apply an effect to a layer in After Effects
Inputs: compIndex (required), layerIndex (required), effectName, presetPath, +3 more.
apply-effect-templateB
Apply a predefined effect template to a layer in After Effects
Inputs: compIndex (required), layerIndex (required), templateName (required), customSettings.
create-compositionA
Create a new composition in After Effects with specified parameters
Inputs: name (required), width (required), height (required), duration, +3 more.
get-helpA
Get help on using the After Effects MCP integration
Inputs: no named parameters.
get-resultsB
Get results from the last script executed in After Effects
Inputs: no named parameters.
mcp_aftereffects_applyEffectC
Apply an effect to a layer in After Effects
Inputs: compIndex (required), layerIndex (required), effectName, effectSettings, +1 more.
mcp_aftereffects_applyEffectTemplateC
Apply a predefined effect template to a layer in After Effects
Inputs: compIndex (required), layerIndex (required), templateName (required), customSettings.
mcp_aftereffects_get_effects_helpB
Get help on using After Effects effects
Inputs: no named parameters.
run-bridge-testA
Run the bridge test effects script to verify communication and apply test effects
Inputs: no named parameters.
run-scriptA
Run a read-only script in After Effects
Inputs: script (required), parameters.
setLayerExpressionB
Set or remove an expression for a specific layer property.
Inputs: compIndex (required), layerIndex (required), propertyName (required), expressionString (required).
setLayerKeyframeB
Set a keyframe for a specific layer property at a given time.
Inputs: compIndex (required), layerIndex (required), propertyName (required), timeInSeconds (required), +1 more.
test-animationD
Test animation functionality in After Effects
Inputs: compIndex (required), operation (required), layerIndex (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 13 tools
There are clear duplicates: apply-effect and mcp_aftereffects_applyEffect do the same thing, as do apply-effect-template and mcp_aftereffects_applyEffectTemplate. Additionally, get-help and mcp_aftereffects_get_effects_help overlap. This makes it ambiguous which tool to select for a given task.
Tool names mix snake_case (run-script, apply-effect-template), camelCase (setLayerKeyframe, setLayerExpression), and prefixed variants (mcp_aftereffects_applyEffect). There is no consistent pattern, which makes the API hard to predict.
13 tools is within a reasonable range, but several are redundant or aliases, inflating the count. A leaner set of unique tools would be more appropriate for the server's scope.
The set lacks essential operations for After Effects, such as creating layers, adding footage, rendering, or managing projects. While it covers composition creation, keyframes, expressions, and effects, major workflow steps are missing, limiting real-world use.
Maintenance
Related MCP Connectors
An MCP connector for Adobe After Effects. Real, editable layers and keyframes, not scripts.
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.
Build editable 3D scenes, direct characters and cameras, and export AI video references with MCP.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables AI assistants to control Adobe After Effects through the MCP protocol, including composition creation, layer management, and animation.13146 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.-
- AlicenseBqualityDmaintenanceEnables control of Adobe After Effects via natural language, allowing project manipulation, layer creation, animation, and rendering through MCP.72MIT
- AlicenseCqualityDmaintenanceEnables AI assistants and applications to control Adobe After Effects through the Model Context Protocol for composition, layer management, and animation.13146 npmMIT