Snail.MCP.AfterEffects¶
An MCP server that lets an AI agent drive a running Adobe After Effects: the project, compositions, layers, the property tree, keyframes and expressions, text, shapes, effects, 3D, templates and rendering, reached through a small ExtendScript bridge inside After Effects.
flowchart LR
C["MCP client"] -- "stdio, or HTTP + a client key" --> S["Snail.MCP.AfterEffects"]
A["Snail bridge (ExtendScript)"] -- "dials 127.0.0.1:port<br/>one JSON line per request" --> S
A -- "app.scheduleTask tick" --> E["After Effects"]
The server speaks MCP to the client and a one-line JSON protocol to the bridge. The bridge is a Startup script: it reads the
announcements the server leaves under ~/.s3l-mcp-aftereffects/state, opens a connection to each server it finds, and serves the
requests on After Effects' main thread between the application's own work, each command in an undo group. It dials out because
ExtendScript cannot listen on macOS; Architecture explains the rest.
Four layers of tools¶
- Always on — the project, items and folders, compositions, layers of every kind, the property tree by match name, a frame as a
picture, undo and redo, menu commands, skills and
find_tool, andae_scriptfor the ExtendScript nothing else reaches. - Skills —
animation,text,shapes,effects,threed,compositing,rendering,farm,templates,transfer,layout,settings,viewerandworkers, loaded withae_enable_skilland staying loaded untilae_disable_skill, or until unused forSNAIL_MCP_AFTEREFFECTS_SKILL_IDLE_MINUTESwhen that is set. Over HTTP every client that names itself has a tool list of its own.find_toolsearches the whole catalog by what you are trying to do and answers with each tool's command and parameters. - Sequences and programs —
run_toolssends a list of commands in one call;run_programruns a small JavaScript program that calls the commands itself, so a build of many steps costs one round trip. - Scripts —
ae_scriptruns any ExtendScript inside After Effects;SNAIL_MCP_AFTEREFFECTS_SCRIPTING=Offswitches it off.
Quick start¶
- Build the server and give your MCP client the command
dotnetwith the path toSnail.MCP.AfterEffects.dll— Installation. - In After Effects switch on Allow Scripts to Write Files and Access Network, once.
- Ask the agent for
ae_install_bridge, thenae_diagnose: onceafterEffects.reachableis true, everything else works.
The Tools pages are generated from the server itself: the names, descriptions and schemas are exactly what the model
receives in tools/list.