mcp-aftereffects
TypeScript MCP server for Adobe After Effects (Windows & macOS) — project/comp/layer introspection, atomic undo-grouped operations, JSON project export/import, and single-frame rendering via file IPC.
Install
npx -y @kumoproductions/mcp-aftereffects
mcp-aftereffects
English | 日本語
An MCP server that enables AI to control Adobe After Effects.
You can connect MCP-compatible clients such as Claude Code or Claude Desktop to a running instance of After Effects, allowing the AI to handle everything from project inspection and editing to rendering.
There is no need to provide detailed instructions on how to operate After Effects. Simply explain what you want to achieve in natural language, and the AI will check the project status and perform the necessary operations.
Windows / macOS · After Effects 2024–2026 · Node.js 24+
[!CAUTION] This tool directly manipulates After Effects projects via AI.
The AI can read project contents and modify compositions, layers, effects, keyframes, and more.
Additionally, information the AI reads from the project may be sent to the AI service you are using. This may include composition names, layer names, expressions, keyframes, footage file paths, etc.
If using this for projects under NDA or unreleased works, please check the data retention policy of the AI service you are using and the logs of your MCP client beforehand.
For first-time use, we recommend trying it with a backup or a test .aep file rather than a critical project.
Capabilities
With mcp-aftereffects, you can request the AI to perform After Effects tasks.
- Inspect project contents
- Investigate compositions and layers
- Edit layers and properties
- Add or modify keyframes
- Edit effects and masks
- Edit text and shapes
- Set expressions
- Save projects
- Create and restore project backups
- Render frames to preview changes
For example, you can give instructions like these:
"Import this Illustrator file and create some nice-looking text motion."
"Apply the revisions mentioned in this PDF."
"Point out any issues in this AEP."
Even for complex tasks, the AI can combine necessary operations while checking the project status.
Requirements
- Windows or macOS
- Adobe After Effects 2024 / 2025 / 2026
- Node.js 24 or higher
- MCP-compatible client (Claude Code, Claude Desktop, etc.)
No plugins or panels need to be installed within After Effects for the usual setup: one After Effects at a time. Driving several instances at once (AfterFX.exe -m) is the one case that needs a small startup script — see Multiple After Effects Instances.
After Effects Settings
In After Effects Preferences, please turn ON the following:
Preferences → Scripting & Expressions → "Allow Scripts to Write Files and Access Network"
If this setting is OFF, the AI will not be able to perform operations correctly.
For macOS
Upon first use, macOS may request permission for the client to control After Effects.
If it is not permitted, go to:
System Settings → Privacy & Security → Automation
and allow your MCP client or terminal to control After Effects.
Quick Start
No installation is required on the After Effects side as long as you run one After Effects at a time.
First, launch After Effects and open the project you wish to operate on.
Next, register mcp-aftereffects with your MCP client.
Claude Code
claude mcp add aftereffects -- npx -y @kumoproductions/mcp-aftereffects
Claude Desktop
Add the following to your MCP configuration file:
{
"mcpServers": {
"aftereffects": {
"command": "npx",
"args": ["-y", "@kumoproductions/mcp-aftereffects"]
}
}
}
If you are using other MCP clients, please follow their respective registration methods for MCP servers.
Read-Only Mode
If you want to inspect or audit project content without making any changes, you can use read-only mode.
Add the following to your MCP client configuration:
{
"mcpServers": {
"aftereffects": {
"command": "npx",
"args": ["-y", "@kumoproductions/mcp-aftereffects"],
"env": {
"AE_MCP_READONLY": "1"
}
}
}
}
You can still investigate the project and render frames for preview.
Advanced Settings
Usually, no configuration is necessary.
In some environments, such as when After Effects is installed in a non-standard location, additional settings may be required.
Specifying After Effects Location
If After Effects is not in the standard installation path, you can specify the executable location using AE_MCP_EXE.
By default, it automatically searches for After Effects in the order of 2026 → 2025 → 2024.
Limiting Operation Scope
Using AE_MCP_ALLOW_CATEGORIES, you can restrict the types of operations permitted for the AI.
For example, you can limit permissions to only keyframe-related operations depending on your use case.
Multiple After Effects Instances
After Effects can run several copies at once (AfterFX.exe -m), each with its own project. Out of the box the server reaches only the first, normally started copy: instances started with -m never receive the scripts it launches. To drive them, install the resident agent once:
npx @kumoproductions/mcp-aftereffects install-agent
This drops a small startup script into After Effects' user-level Scripts/Startup folder (no admin rights needed; run it again after an After Effects update). From the next launch on, every instance — including -m ones — serves a mailbox of its own, and the server picks which instance to talk to:
AE_MCP_INSTANCEin the server'senvnames the default instance for the whole session, either by the id the instance was started with or by the project file it has open ("shotA","shotA.aep", or a full path when two projects share a name).- Every tool takes an optional
instanceargument to address another instance for a single call. ae_contextandae_do instance.listshow what is live.
To name an instance at launch, set AE_MCP_INSTANCE in the environment that starts it:
set AE_MCP_INSTANCE=shotA
"C:\Program Files\Adobe\Adobe After Effects 2026\Support Files\AfterFX.exe" -m
An unnamed instance gets a random id (ae-…) and can still be addressed by its project file. With exactly one live agent no configuration is needed at all; with several live and none named, calls fail with NO_INSTANCE instead of guessing.
The agent keeps polling its mailbox for as long as After Effects runs, server or no server, so the mailbox directory under your per-user temp folder stays the trust boundary for the whole session. The mailbox location is fixed into the startup script when you install it; if you change AE_MCP_RUNTIME_DIR, run install-agent again (agent-status tells you when it is out of date).
Parallel Work with Worker Instances
The AI can start instances itself. instance.start launches a new After Effects, waits for it to register, and can open a copy of a project — the safe way to work on something the main instance has open:
instance.start { name: "w1", copyFrom: "<main .aep>" }— a worker with its own copy- Work in it: any tool with
instance: "w1" ae_save_projectwithinstance: "w1"project.merge { path: "<the copy>" }in the main instance — the copy comes in as a folder; nothing already in the project is touchedinstance.stop { name: "w1" }
Several workers can run at once. Each is a full After Effects, so plan on a few gigabytes of memory per instance.
Execution of Arbitrary ExtendScript
mcp-aftereffects includes an advanced feature to execute arbitrary ExtendScript for processes that cannot be handled by standard operations.
This feature is disabled by default.
[!CAUTION] Enabling arbitrary ExtendScript allows operations outside of After Effects.
This may permit actions that affect your entire computer, such as file or process manipulation.
This feature is disabled by default. Enable it only if necessary.
To enable it, set the following in your MCP server environment variables:
"env": {
"AE_MCP_ENABLE_EVAL": "1"
}
Use this feature only for advanced processing that cannot be achieved through regular operations or when custom ExtendScript is required.
Official Releases
[!NOTE] Official releases are distributed only through npm and GitHub Releases.
Please exercise caution if obtaining packages claiming to be
@kumoproductions/mcp-aftereffectsor files claiming to be this server from any other location.
Troubleshooting
Operations Timeout
Please check the following:
- Is After Effects running?
- Is a project open?
- Is "Allow Scripts to Write Files and Access Network" turned ON?
- On macOS, is the Automation permission enabled?
NO_INSTANCE
The call had no After Effects to go to. Either every running After Effects was started with -m and the agent is not installed (see Multiple After Effects Instances), the instance named by AE_MCP_INSTANCE / instance is not running or is stuck in a dialog, or several agents are live and none was named. The error lists what is live.
DIALOG_OPEN — After Effects Is Showing a Dialog
While After Effects shows a modal dialog, no script runs at all — neither the resident agent nor a -r launch. The most common cause is opening a project whose footage or fonts are missing ("N files are missing since you last saved this project"), and the dialog is often hidden behind the main window. The error quotes the dialog's text (on macOS, see below).
instance.dialogslists the dialogs every running After Effects is showing.instance.dismiss_dialog { id }closes it with Escape, the dialog's cancel action: a warning is acknowledged, and a question such as "Save changes before closing?" is cancelled rather than answered — nothing is saved or discarded. A dialog you want answered differently has to be clicked by you.- The agent resumes on its own once the dialog is gone; no restart is needed.
- To avoid the missing-files warning in the first place, start After Effects without a project and open it with
project.open, which suppresses the dialog.
Dialog detection works on Windows and macOS. On macOS it has two tiers:
- With Accessibility permission for the app that runs the MCP server (System Settings > Privacy & Security > Accessibility — your terminal, or the MCP client app), every dialog is found and its text read, and
instance.dismiss_dialogworks the same way as on Windows: Escape, the cancel action. A "Save changes before closing?" prompt is cancelled (the project stays open and unsaved); a warning or scriptalert()is acknowledged. After Effects is not brought to the front. - Without that permission, dialogs are only guessed at from the window list: most are found, with empty text (
accessibility: false), but some — such as the Adobe licensing prompt — are missed, and none can be dismissed from here.
Verified on After Effects 26.5 / macOS 26.4 with the missing-files warning, a script alert(), the save prompt and the System Compatibility Report.
After Effects Stops at a "We detected a crash" Dialog
If an After Effects process was killed (Task Manager, taskkill, a crash), the next launch shows the Safe Mode dialog and waits for a click — including instances started by instance.start, which then fail with did not register. Dismiss the dialog on screen. An instance that quits normally does not trigger it, so prefer instance.stop over killing.
After Effects Not Found
If you have installed After Effects in a non-standard location, please set AE_MCP_EXE.
If the issue persists, please report it via an Issue or to @cumuloworks.
Developer Information
For information regarding internal MCP tools, communication methods with After Effects, ExtendScript, test environments, and how to add custom operations, please refer to the developer documentation.
docs/TOOLS.mdCONTRIBUTING.md
Contributing
Bug reports, feature requests, and Pull Requests are welcome.
For information on setting up the development environment and the internal architecture, please refer to CONTRIBUTING.md.
License
MIT © 2026 kumo.productions, Inc.
Trademark
Adobe® and Adobe After Effects® are trademarks of Adobe Inc.
This project is an independent, unofficial tool and is not affiliated with or endorsed by Adobe.
