# After Effects MCP Server

Connects Adobe After Effects to an MCP client for project, composition, layer, animation and render control. Useful when an agent must edit AE work.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 28
- Author: zachshallbetter
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/zachshallbetter/adobe-mcp/tree/HEAD/packages/aftereffects
- Updated: 2026-10-21
- HTML: https://affpapa.org/en/nevibecode/mcp/after-effects-mcp-server

## What it does

After Effects MCP Server lets an MCP client control Adobe After Effects through its ExtendScript interface. The available operations cover project items and footage, composition setup, layer creation and transforms, text, masks, effects, expressions, keyframes, markers and Render Queue tasks.

The server runs on the same computer as After Effects. It needs After Effects 2023 or newer plus Node.js 18 or newer. File access is limited to the home directory or paths listed in `AFTEREFFECTS_ALLOWED_DIRS`. After Effects must allow scripts to write files and use the network; macOS also asks for automation permission on the first request.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `AFTEREFFECTS_APP_NAME`, `AFTEREFFECTS_ALLOWED_DIRS`, `AFTEREFFECTS_SCRIPT_TIMEOUT_MS` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env AFTEREFFECTS_APP_NAME=<AFTEREFFECTS_APP_NAME> --env AFTEREFFECTS_ALLOWED_DIRS=<AFTEREFFECTS_ALLOWED_DIRS> --env AFTEREFFECTS_SCRIPT_TIMEOUT_MS=<AFTEREFFECTS_SCRIPT_TIMEOUT_MS> --transport stdio aftereffects -- npx -y adobe-mcp-aftereffects
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add aftereffects --env AFTEREFFECTS_APP_NAME=<AFTEREFFECTS_APP_NAME> --env AFTEREFFECTS_ALLOWED_DIRS=<AFTEREFFECTS_ALLOWED_DIRS> --env AFTEREFFECTS_SCRIPT_TIMEOUT_MS=<AFTEREFFECTS_SCRIPT_TIMEOUT_MS> -- npx -y adobe-mcp-aftereffects
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "aftereffects": {
            "command": "npx",
            "args": [
                "-y",
                "adobe-mcp-aftereffects"
            ],
            "env": {
                "AFTEREFFECTS_APP_NAME": "<AFTEREFFECTS_APP_NAME>",
                "AFTEREFFECTS_ALLOWED_DIRS": "<AFTEREFFECTS_ALLOWED_DIRS>",
                "AFTEREFFECTS_SCRIPT_TIMEOUT_MS": "<AFTEREFFECTS_SCRIPT_TIMEOUT_MS>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "aftereffects": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "adobe-mcp-aftereffects"
            ],
            "env": {
                "AFTEREFFECTS_APP_NAME": "<AFTEREFFECTS_APP_NAME>",
                "AFTEREFFECTS_ALLOWED_DIRS": "<AFTEREFFECTS_ALLOWED_DIRS>",
                "AFTEREFFECTS_SCRIPT_TIMEOUT_MS": "<AFTEREFFECTS_SCRIPT_TIMEOUT_MS>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e AFTEREFFECTS_APP_NAME=<AFTEREFFECTS_APP_NAME> -e AFTEREFFECTS_ALLOWED_DIRS=<AFTEREFFECTS_ALLOWED_DIRS> -e AFTEREFFECTS_SCRIPT_TIMEOUT_MS=<AFTEREFFECTS_SCRIPT_TIMEOUT_MS> aftereffects npx -y adobe-mcp-aftereffects
```
Replace <…> with your own values

## When to use it
- create compositions from defined settings
- add and arrange text, shape, camera or light layers
- edit keyframes, expressions and layer timing
- apply effects and change their controls
- save a frame or manage a render task

## Example prompts
- Create a composition with the requested size and duration, then add a text layer.
- Find the named layers, change their position, and animate the change with keyframes.
- Inspect the project for missing fonts and prepare the composition for rendering.

## Similar
- [after-effects](https://affpapa.org/en/nevibecode/skills/after-effects.md) — skill · 2800 installs
- [lottie-animations](https://affpapa.org/en/nevibecode/skills/lottie-animations.md) — skill · 2900 installs
- [lightweight-3d-effects](https://affpapa.org/en/nevibecode/skills/lightweight-3d-effects.md) — skill · 2600 installs
- [video-motion-graphics](https://affpapa.org/en/nevibecode/skills/video-motion-graphics.md) — skill · 2400 installs
- [lottie-animation](https://affpapa.org/en/nevibecode/skills/lottie-animation.md) — skill · 2100 installs
- [motion-effects](https://affpapa.org/en/nevibecode/skills/motion-effects.md) — skill · 1500 installs

From the same set: [zachshallbetter/adobe-mcp](https://affpapa.org/en/nevibecode/by/zachshallbetter/adobe-mcp.md) — 6 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
