aftereffects-mcp
An MCP server that lets AI read, view and edit a live Adobe After Effects project — inspect comps, render frames, write keyframes and expressions, and build projects end to end. Works with Claude Code or any MCP client.
Install / Use
claude mcp add solomondivyananth -- npx -y github:solomondivyananth/aftereffects-mcpIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
AutomationSupported Platforms
Our assessment of aftereffects-mcp
aftereffects-mcp scores 83/100 on our quality scale, 446th of 870 Automation skills we index.
Its MCP Server is 15 KB long, well organised into 16 sections with 4 code examples: a thorough specification that gives an agent plenty to work with.
It has 3 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated 6 days ago, so aftereffects-mcp is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.
Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
aftereffects-mcp compared with similar skills
All 4 of these similar skills score higher than aftereffects-mcp; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| aftereffects-mcp (this skill)by solomondivyananth | 83 | 3 | 6d ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 85.2k | 9d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 73.7k | today | CLAUDE.md |
| rufloby ruvnet | 100 | 73.2k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.1k | today | CLAUDE.md |
Frequently asked questions
- How do I install aftereffects-mcp?
- Run
claude mcp add solomondivyananth -- npx -y github:solomondivyananth/aftereffects-mcp. The install tabs above show the steps for each supported agent. - Which AI agents does aftereffects-mcp work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is aftereffects-mcp safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It is MIT-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is aftereffects-mcp still maintained?
- The repository was last updated 6 days ago, so aftereffects-mcp is actively maintained.
Skill content
View source on GitHubAE MCP Bridge: an After Effects MCP server for AI agents
<a href="https://solomondivyananth.github.io/aftereffects-mcp/"><img src="docs/assets/welcome.gif" alt="AE MCP Bridge: After Effects meets AI. Read every layer, see every frame, edit live. 46 tools plus skills, in your timeline." width="100%"></a>
<p align="center"><a href="https://solomondivyananth.github.io/aftereffects-mcp/"><b>Website</b></a> · <a href="docs/assets/welcome.mp4">Watch in HD</a> · <a href="#install">Install</a> · <a href="#tools">Tools</a></p>Let an AI actually work in After Effects — read the project, look at rendered frames, and change keyframes, expressions and effects while the app is open.
Not a code generator that hands you a .jsx to run. A live connection to the
running application: the model inspects your real comp, renders a real frame,
makes a real edit, then re-renders to check its own work.
MCP client ──stdio──► mcp/ae-mcp.js ──HTTP :7788──► CEP panel in AE ──evalScript──► AE DOM
Works with Claude Code or any client that speaks the Model Context Protocol. Nothing in the bridge is client-specific.
MIT licensed · macOS and Windows · After Effects 2022+ · zero npm dependencies
Not affiliated with or endorsed by Adobe or Anthropic.
What this makes possible
Read a project you didn't build. Ask what's animating in a 40-layer comp and get an answer grounded in the actual property tree — keyframe times, ease influences, expression source, effect parameters — rather than a guess from layer names.
Let the model see. saveFrameToPng renders come back as images. The model
looks at the frame instead of reasoning blind about coordinates. Ask "is the
logo colliding with the lower third at 4 seconds?" and it can check.
Edit with a real undo story. Every call runs inside one
beginUndoGroup/endUndoGroup. Anything the model does is a single ⌘Z (Ctrl+Z on Windows). There
is no half-applied state to clean up.
Judge motion, not just numbers. ae_review_motion samples a time range,
stitches an MP4, and returns a contact sheet — so timing and easing can be
evaluated as motion rather than as keyframe values that merely look correct.
Build, not just tweak. Create projects and comps, import footage, add and
animate layers, precompose, duplicate a master into 9×16 / 1×1 / 16×9, and queue
a background aerender job that doesn't freeze the app.
Things it is genuinely good at
- Auditing a comp: what animates, where, driven by what
- Motion graphics automation — applying one consistent change across many layers, many comps, or a whole campaign of format variants
- Format variants from a finished master
- Expression authoring, with After Effects validating the syntax on write
- Catching continuity mistakes by looking at frames, not just properties
Things it is not good at
- Taste. It can match an existing ease curve; it cannot tell you the ad is boring.
- Anything unscriptable — Roto Brush, Content-Aware Fill, mocha tracking, puppet pins. The ExtendScript DOM barely reaches these.
- Real-time playback. It sees sampled frames, never a live preview.
Install
Requires After Effects 2022 (22.0)+ and Node.js 18+, on macOS or
Windows. ffmpeg is optional but recommended: it powers motion review and
contact sheets, and on Windows it also scales preview images (macOS uses the
built-in sips).
From npm:
npx aftereffects-mcp-install # installs the After Effects panel
claude mcp add after-effects -- npx -y aftereffects-mcp
From source (do this if you want to hack on it):
git clone https://github.com/solomondivyananth/aftereffects-mcp.git
cd aftereffects-mcp
./install.sh # macOS: link the panel, enable unsigned extensions
install.cmd # Windows: the same (a directory junction, no admin needed)
Then relaunch After Effects (PlayerDebugMode is read at launch) and open
Window ▸ Extensions ▸ AE MCP Bridge. A green dot and
Listening on 127.0.0.1:7788 means it's ready.
| Command | |
|---|---|
| ./install.sh · install.cmd | linked install: edits in the repo are live |
| ./install.sh --copy · install.cmd --copy | real copy, for when AE won't follow the link (re-run after edits) |
| ./install.sh --global | macOS: also register the MCP server for every directory |
| node bin/install-panel.js --uninstall | remove the panel (either platform) |
Where it goes: ~/Library/Application Support/Adobe/CEP/extensions on macOS,
%APPDATA%\Adobe\CEP\extensions on Windows. Unsigned panels are enabled with
PlayerDebugMode (macOS defaults, Windows HKCU\Software\Adobe\CSXS.*).
The included .mcp.json registers the server for this project directory, so
Claude Code picks the tools up automatically when run from the repo.
Safety
This bridge executes arbitrary ExtendScript inside After Effects. That is powerful and worth being deliberate about, so two independent protections ship switched on.
The sandbox guard
Reads and renders work on whatever project is open. Writes are refused unless the open project is the one you designated as the sandbox. Only a human can change that, from the panel UI — there is deliberately no tool that unlocks it, so a model working through these tools cannot talk its way past the guard.
(It is not a sandbox against an agent that already controls your desktop — one with shell or Accessibility access can untick the box just as you would. See SECURITY.md.)
Project-level operations (ae_new_project, ae_open_project) are refused
outright while the guard is on: they close the current project, and a path
comparison cannot make that safe. They also refuse to run unless you say
explicitly what happens to unsaved work — no silent data loss, and never a modal
dialog that would deadlock the bridge.
Raw scripting switch
ae_run_jsx and ae_menu_command can do anything the app can, including
things the guard cannot see coming (a script can open another project). The
panel's Allow raw ExtendScript and menu commands switch turns both off; the
dedicated tools still work. With the guard on, the panel also checks whether a
raw call changed the open project and flags it loudly if it did.
Network protection
The server binds loopback only and requires a 256-bit token, generated on first
run into ~/.ae-mcp-bridge.json (mode 0600). It also refuses any request
carrying an Origin or Referer header, and requires
Content-Type: application/json.
Those three checks close three different routes to the same hole. Without them,
any web page you happened to be visiting could drive After Effects — a
cross-origin POST with Content-Type: text/plain is a CORS "simple request", so
the browser sends it with no preflight. The attacker can't read the response,
but by then the code has already run. See SECURITY.md.
Tools
47 tools, named and shaped after After Effects itself.
Read — ae_project_info · ae_comp_tree · ae_layer_detail ·
ae_find_animation · ae_selection · ae_list_items · ae_catalog
(effects, presets, fonts, render templates)
See & show — ae_render_frame · ae_review_motion · ae_goto
Animate — ae_set_property · ae_add_keyframes · ae_edit_keyframes ·
ae_set_expression · ae_clear_expression · ae_apply_effect ·
ae_apply_preset · ae_text · ae_markers · ae_masks · ae_shape ·
ae_add_property · ae_remove_property · ae_property_meta
Layers — ae_create_layer · ae_delete_layer · ae_set_layer_props ·
ae_layer_action (duplicate, split, sequence, freeze frame, align, fit,
centre anchor, copy to comp)
Project — ae_create_comp · ae_set_comp_settings · ae_duplicate_comp ·
ae_precompose · ae_import_file · ae_item_action · ae_essential_graphics · ae_delete_item ·
ae_new_project · ae_open_project · ae_save_project
Render — ae_render_video · ae_render_status · ae_render_cancel ·
ae_render_queue (Render Queue panel and Media Encoder)
Control — ae_undo · ae_batch · ae_menu_command · ae_run_jsx
Skills
Sixteen skills ship in skills/. Claude Code loads them automatically in this
repo, and every MCP client gets them as prompts of the same name.
| Skill | What it teaches |
|---|---|
| ae-mcp-bridge | the tools: read → edit → look, addressing, guard refusals |
| ae-motion-principles | timing in frames, easing that reads, overshoot, stagger, stomp type |
| ae-expressions | a cookbook of expressions, each one verified to compile in After Effects |
| ae-effects | glows, noise, particles, glitch, and every kind of blur and motion blur |
| ae-transitions | whips, punches, shape, mask, luma and effect wipes |
| ae-morph | shape, mask, letter and gooey morphs that don't twist |
| ae-camera-3d | camera rigs, depth of field, lights, shadows, renderers, 3D models |
| ae-typography | text animators and selectors: word reveals, waves, scatter, typing, text on a ring |
| ae-ui-motion | app and product-launch motion: layered UI in 3D, streaming answers, devices, logo moments |
| ae-color | Lumetri grading, looks and LUTs without dialogs, brand tints, matching shots |
| ae-audio-sync | beat finder (tempo, hits, grid) to comp markers, cutting and pulsing to music |
| ae-templates | Controls nulls, Essential Graphics controls, .mogrt export, robust templates |
| ae-data-driven | CSV/JSON as footage in expressions, charts, one version per row |
| ae-deliver | pre-flight, format variants with safe areas, renders, verifying the file |
| ae-reference-breakdown | turn a reference film into a beat map and rebuildable techniques |
| video-reference-compare | frame-by-frame comparison of a render against a reference |
Effect, parameter and menu names in the skills were checked against a live After Effects.
It speaks After Effects:
- Time as seconds (
2.5), frames ("75f") or timecode ("0:00:02:15"). - Easing by name:
"easy"is F9 Easy Ease, plus"easy_in"/"easy_out". - Colours as
"#ff8800"or 0–1 / 0–255 arrays. - Many layers in one call —
"selected","all", a list, or a name regex — as one undo step.ae_batchmakes any sequence of calls one atomic step. - Every write is one Edit ▸ Undo step, labelled "MCP: Set Position" and so on, and writes that change a value return it before and after.
- Edits show up like hand edits: the comp opens, the layers are selected, the playhead moves to the change. Switch it off in the panel.
Property paths are arrays: ["Transform","Position"],
["Effects","Gaussian Blur","Blurriness"]. Names or matchNames both work, and a
wrong segment returns the list of valid children instead of a bare failure — so
the model corrects itself rather than guessing.
The server also exposes the usage guide as the MCP prompt after-effects, and
the open project and current selection as resources (ae://project,
ae://selection).
Design notes
Four things in the After Effects DOM will bite anyone building on it. They cost real debugging time here, so they're written down.
elided does not mean "ignore". PropertyBase.elided marks a group that
isn't drawn as its own row in the timeline — Animators, Selectors,
Properties on a text layer are all elided. Their children are real, and are
frequently where the animation lives. Skipping them made a typewriter-animated
text layer report as "not animated", which produced a confidently wrong edit.
Flatten elided groups; never skip them.
Transform is not where animation lives. A layer can be fully animated with an
empty Transform group — text animators, shape trim paths, mask paths and effect
parameters all animate independently. ae_comp_tree returns animatedProperties
from a full-tree scan for exactly this reason.
**saveFrameToPng
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
85.2kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
73.7kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ruflo
73.2k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
CowAgent
47.1kOpen-source super AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
