after-effects-mcp: driving After Effects from an MCP client over a polling ExtendScript bridge
MCP Server for Adobe After Effects. Enables remote control (compositions, text, shapes, solids, properties) via the Model Context Protocol using ExtendScript.
At a glance
- What is it?
- Dakkshin/after-effects-mcp is an MIT-licensed Node server that exposes After Effects composition and layer operations as MCP tools, with a .jsx panel inside After Effects polling for commands. It suits scripted, repeatable comp assembly, not interactive motion design.
- Who is it for?
- Adopt it if you already build comps from scripts and want an assistant or another MCP client to trigger that work with repeatable parameters; skip it if your work is interactive keyframing, since the tool set covers structure and properties rather than an editing session.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 168 days ago.
- What is it written in?
- Mainly JavaScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The problem: comp assembly is repetitive, and MCP is the new caller
After Effects already has a scripting layer. ExtendScript can create compositions, add layers, set properties and attach expressions. What it does not have is a standard way for an external process to ask for those operations by name. Dakkshin/after-effects-mcp fills that gap by wrapping a set of After Effects operations as Model Context Protocol tools, so an MCP-capable client can call create-composition or setLayerProperties instead of a person writing a one-off script each time. The README frames the goal plainly: the server "enables AI assistants and other applications to control After Effects through a standardized protocol." The audience is therefore narrow and specific. It is for developers and technical artists who already think in terms of compositions, layers and properties, and who want those objects produced by a program rather than by hand. A designer who wants to nudge a mask with a stylus is not the target. The tool list is the tell: compositions, text, shapes, solids, cameras, nulls, masks, keyframes, expressions. This is scene construction and property assignment, not timeline scrubbing.
Architecture: a Node MCP server plus a .jsx panel that polls for work
The mechanism is two processes talking through the filesystem or a similar command channel, not a direct socket into After Effects. On one side there is a Node server built from the repository (npm run build, then the client launches build/index.js). On the other side there is an After Effects panel installed by npm run install-bridge, which the README says copies the necessary scripts into your After Effects installation. You open it from Window > mcp-bridge-auto.jsx. The README states that the panel "will automatically check for commands every few seconds" and that you must make sure the "Auto-run commands" checkbox is enabled. That is the whole data flow: the MCP client calls a tool, the server writes or queues a command, the panel notices it on its next poll, executes it as ExtendScript inside After Effects, and results come back through get-results. The consequence of polling is worth stating directly. There is a latency floor set by the check interval, and the panel has to be open with auto-run enabled or nothing happens at all. The README also lists run-script, which executes a JS script inside AE. That is the escape hatch when no named tool covers what you need, and it is also the widest part of the surface area.
Getting it running: clone, build, install the bridge, point your client at build/index.js
Prerequisites per the README are Adobe After Effects 2022 or later and Node.js v14 or later, with npm or yarn. The sequence is: git clone https://github.com/Dakkshin/after-effects-mcp.git, then cd after-effects-mcp, then npm install, then npm run build, then npm run install-bridge. The bridge step is the one that touches your Adobe installation, so it is the step to check first if anything later fails. Configuration is a standard MCP server block. The repository ships a .mcp.json with a command of node and args pointing at PATH/TO/after-effects-mcp/build/index.js; the manual option in the README uses a Windows path, C:\\Users\\Dakkshin\\after-effects-mcp\\build\\index.js, under the server name AfterEffectsMCP. Start the server with npm start, open After Effects, then open the panel via Window > mcp-bridge-auto.jsx and enable Auto-run commands. Tool names appear in two styles in the README: hyphenated commands such as create-composition, run-script, get-results and get-help, and camelCase entries such as setLayerKeyframe, setLayerExpression, setLayerProperties, batchSetLayerProperties, getLayerInfo, createCamera, createNullObject, duplicateLayer, deleteLayer and setLayerMask. The README does not explain why the naming is inconsistent, and that inconsistency is a real cost when you are writing calls by hand.
What the tool surface actually covers, and where it stops
Composition tools create comps with name, width, height, frame rate, duration and background colour, list existing comps, and report project information such as frame rate, dimensions and duration. Layer tools cover text layers with font, size, colour and position; shape layers as rectangle, ellipse, polygon or star with fill and stroke; solids and adjustment layers; cameras with configurable zoom and position; and null objects for animation control. Property tools set position, scale, rotation, opacity, timing, 2D or 3D mode, blend modes, track matte type (alpha, luma, inverted) and enabled state, plus batchSetLayerProperties for applying the same values across multiple layers. Masks support feather, expansion and opacity. Animation is handled two ways: setLayerKeyframe writes values at specific times, and setLayerExpression attaches JavaScript expressions to properties. The README's example call, mcp_aftereffects_create_composition with name, width, height, frameRate and duration, shows the shape of a typical request. Notice what is absent from the list: no rendering or export tool, no project save, no effect application beyond adjustment layers, no audio, no text animators. If your pipeline needs a rendered file at the end, this server builds the comp and something else has to render it.
The real limitation: polling, a manual checkbox, and no rendering step
The failure mode is operational rather than conceptual. Because the panel polls, a command issued while the panel is closed, or with Auto-run commands unchecked, simply sits there. There is no documented push notification or error surfaced to the MCP client in that state, at least not in the README. The same applies to version drift: the README specifies After Effects 2022 or later, but ExtendScript behaviour and panel APIs vary across releases, and the material here gives no compatibility matrix beyond that one line. The run-script tool deserves caution. Executing arbitrary JS inside a host application is powerful and also means the safety of a call depends entirely on what you send it. And the tool list is a construction kit, not an editing environment. There is no tool for reading a timeline back frame by frame, no preview, no render queue entry. If your task is "adjust this one keyframe until it feels right," this server adds a round trip and a checkbox between you and the property. That is the case where it is the wrong tool, and it is not a small one, because a large share of real After Effects work is exactly that.
Alternative: skip MCP and drive ExtendScript directly
The obvious alternative is writing ExtendScript or a .jsx script yourself and running it from File > Scripts > Run Script File, or through a command-line invocation of After Effects. The difference in approach is the caller. A hand-written script is a fixed program: it runs the same sequence every time, it starts and finishes inside After Effects, and it needs no Node process, no MCP client and no polling panel. after-effects-mcp inverts that by making the sequence come from outside, chosen per invocation by a client that can pass different parameters, such as a 1920x1080 comp at 30 fps this time and a different size the next. If your operations are genuinely parameterised and you want an assistant or another application to choose those parameters, the MCP layer earns its keep. If your operations are one fixed batch you run weekly, a plain .jsx file is fewer moving parts and one less thing to keep open. A second alternative worth naming is After Effects' own scripting documentation, which is the ground truth for what any of these tools can do; this server is a wrapper over that API, not a replacement for it.
Maintenance cost and the MIT licence
The repository is MIT licensed, which permits commercial and private use, modification and redistribution provided the copyright notice and permission notice are retained. That is the whole of the licence implication here; the project's own LICENSE file is what governs, and nothing in this article should be read as legal advice. On maintenance, the material shows a single primary language, JavaScript, with TypeScript listed among the topics, a build step (npm run build) and a bridge install step (npm run install-bridge). The practical cost is therefore the Node toolchain plus the bridge panel, and the bridge is the part that couples you to an Adobe release. If Adobe changes how panels are installed or how ExtendScript behaves, npm run install-bridge is the command that will need attention. The README lists no releases in the material provided, so there is no versioning or changelog information to reason about, and no published upgrade path. Treat the bridge script and the build output as the two artefacts you would have to re-verify after any After Effects update. For a tool whose job is to sit between two applications, that is the maintenance surface, and it is small but not zero.
Editorial conclusion
Adopt it if you already build comps from scripts and want an assistant or another MCP client to trigger that work with repeatable parameters; skip it if your work is interactive keyframing, since the tool set covers structure and properties rather than an editing session. Before committing, verify that the install-bridge step actually places the panel in your After Effects version, confirm the panel's polling interval and auto-run checkbox behave as the README describes, and check that your client launches build/index.js from the path you configured.
Community notes