AE MCP Server
An MCP server that enables AI assistants to control Adobe After Effects through a file-based communication bridge. It supports various operations including project and composition management, layer and keyframe manipulation, rendering, and batch processing.
README
AE MCP Server - Adobe After Effects Model Context Protocol Server
A Model Context Protocol (MCP) server that enables AI assistants to interact with Adobe After Effects through a file-based communication bridge.
Background
- I signed up for https://schoolofmotion.com/ again on my vacation. And started to go through Joey's very first lesson (Desk Unmessed) to take an inventory of where I'm at. I animated one item, and then got to thinking... it'd be nice to use MCP here and connect Amazon Q or Claude Code and "repeat the animation" for the other shapes I just did.
- I explored what was out there and mostly found: https://github.com/Dakkshin/after-effects-mcp. But it was originally focused on Windows. I was able to use Claude Code to get it to run on macOS but I couldn't get it to take commands.
- So I used Claude Code to create a BRD and design doc (pretty basic 1-2 sentence prompt: "Can you plan out how you’d create an MCP server for Adobe after effects? Maybe create a requirements doc and then technical design doc with instructions on how to implement?"). Then I copied the markdown files into a new folder and prompted to create an app. I asked why not "rust" but Adobe CEP is more JavaScript oriented so it made sense to stick with TypeScript. Original prompts were focused around just doing a script because CEP didn't work at first. So again I went back to Claude Desktop (Opus) and prompted with "Can we research how to create CEP plugins for adobe after effects? Currently not able to get them to load - maybe not signed? Can we create detailed steps on how to get this to work for running locally with Adobe After Effects 2025?". And used that markdown file as input to help with creating a more robust system.
- That worked, was able to finally load a CEP plugin. Btw earlier when I had to run a script I could not get sockets to work so Claude synthesized a file-based way to communicate. That seemed more reliable. So when switching over to CEP we went with that. There was a lot of copying of errors and prompting for guidance but fairly minimal human-based engineering. Mostly guidance. I used Amazon Q to power the client using just this in ~/.aws/amazonq/mcp.json:
"ae-mcp": {
"command": "node",
"args": ["<path to>/ae-mcp/dist/stdio-server.js"],
"env": {
"AE_USE_FILE_BRIDGE": "true"
}
}
- And it worked. My wife thinks I should try to sell this (did interrupt one vacation day to be fair). Maybe in the future.
- You can use tail
ae-mcp-server.logto check for logs. Haven't explored what it can do too much - maybe this weekend more...
Overview
This project provides an MCP server that allows AI assistants (like Claude) to control Adobe After Effects by:
- Creating and managing projects
- Creating and modifying compositions
- Managing layers and keyframes
- Rendering compositions
- Batch processing operations
Architecture
The system uses a file-based communication approach for reliability:
AI Assistant <-> MCP Server <-> File System <-> CEP Extension <-> After Effects
- MCP Server - Receives commands from AI assistants via the MCP protocol
- File Bridge - Writes commands as JSON files to a watched directory
- CEP Extension - Monitors the directory and executes commands in After Effects
- Response System - Returns results via response files
Requirements
- Adobe After Effects 2022 or later
- Node.js 16+ and npm
- macOS or Windows
Quick Start
1. Install and Build
git clone <repository-url>
cd ae-mcp
npm install
npm run build
2. Install the CEP Extension
cd cep-extension
./install.sh # macOS
# or manually copy to CEP extensions folder on Windows
3. Enable the Extension in After Effects
- Open After Effects
- Go to Window > Extensions > AE MCP Bridge
- Ensure "Auto Process: ON" is enabled
4. Configure Your MCP Client
For Claude Desktop, add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"ae-mcp": {
"command": "node",
"args": ["/path/to/ae-mcp/dist/stdio-server-hybrid.js"],
"env": {
"AE_USE_FILE_BRIDGE": "true"
}
}
}
}
Available Tools
Project Tools
create_project- Create a new After Effects projectopen_project- Open an existing projectsave_project- Save the current projectget_project_info- Get information about the current project
Composition Tools
create_composition- Create a new composition with custom settingsget_composition- Get composition detailslist_compositions- List all compositions in the projectupdate_composition- Update composition settings
Layer Tools
create_solid_layer- Create a solid color layercreate_text_layer- Create a text layercreate_adjustment_layer- Create an adjustment layercreate_null_layer- Create a null object layercreate_shape_layer- Create a shape layerget_layer- Get layer informationlist_layers- List all layers in a compositionupdate_layer_property- Update layer transform propertiesadd_keyframe- Add keyframes to animate propertiesset_layer_parent- Set layer parenting
Render Tools
add_to_render_queue- Add composition to render queuestart_render- Start rendering the queueget_render_status- Check render progressset_render_settings- Configure render settings
Expression Tools
set_expression- Set an expression on a layer property (NOT add_expression)get_expression- Get the expression from a layer propertyremove_expression- Remove an expression from a propertyenable_expression- Enable or disable an expressionbatch_set_expressions- Set multiple expressions at onceadd_wiggle_expression- Add a wiggle expression to a propertyadd_loop_expression- Add a loop expression to a propertylink_properties_with_expression- Link two properties togetheradd_expression_control- Add expression control effects (slider, checkbox, etc.)
Batch Tools
batch_create_comps- Create multiple compositions at oncebatch_import- Import multiple filesbatch_replace- Replace multiple itemsbatch_process- Process multiple items with a script
How It Works
File-Based Communication
The system uses a simple file-based approach for maximum reliability:
- Commands Directory:
~/Documents/ae-mcp-commands/ - Command Format: JSON files with unique IDs
- Response Format: Matching
.responsefiles - Auto-Processing: CEP extension polls every 200ms
Example Command Flow
- MCP server receives: "Create a 1080p composition"
- Writes to:
~/Documents/ae-mcp-commands/cmd_123.json{ "id": "cmd_123", "script": "app.project.items.addComp('New Comp', 1920, 1080, 1, 10, 30);" } - CEP extension executes the script
- Writes response:
cmd_123.json.response - MCP server reads response and returns to client
CEP Extension
The CEP (Common Extensibility Platform) extension runs inside After Effects:
- Auto Process Mode: Continuously monitors for new commands
- Manual Process: Click to process commands on demand
- Activity Log: Shows all processed commands and errors
- Status Display: Real-time connection and processing status
Extension Features
- Command processing with 200ms polling interval
- Automatic error handling and recovery
- Command history and logging
- Visual status indicators
- Manual command folder access
Troubleshooting
Extension Not Showing
- Enable debug mode:
cd cep-extension ./enable-debug-mode.sh - Restart After Effects
- Check Window > Extensions > AE MCP Bridge
Commands Not Processing
- Verify "Auto Process: ON" in the extension panel
- Check
~/Documents/ae-mcp-commands/for command files - Look for errors in the extension's activity log
- Ensure After Effects has a project open
Common Issues
- "Script access denied": Enable "Allow Scripts to Write Files" in AE Preferences
- Extension won't load: Run the debug mode enabler and restart
- Commands timeout: Check if After Effects is responding
Development
Project Structure
ae-mcp/
├── src/ # TypeScript source
│ ├── server/ # MCP server implementation
│ │ └── tools/ # Tool definitions
│ ├── ae-integration/ # After Effects communication
│ └── types/ # Type definitions
├── cep-extension/ # CEP extension
│ ├── CSXS/ # Extension manifest
│ ├── jsx/ # ExtendScript code
│ ├── js/ # Panel JavaScript
│ └── css/ # Panel styles
└── dist/ # Compiled output
Adding New Tools
- Create tool definition in
src/server/tools/ - Implement ExtendScript generation
- Add to appropriate tool category
- Build and test
Testing
# Run tests
npm test
# Test individual commands
node dist/stdio-server-hybrid.js
Examples
See the examples/ directory for usage examples.
Additional Guides
- Expression Tools Guide - Comprehensive guide for using expressions (IMPORTANT: use
set_expression, notadd_expression) - Layer Ordering Guide - Understanding After Effects layer stacking
License
MIT License - see LICENSE file for details
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.