After Effects MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@After Effects MCPEdit this clip with cinematic color grade and subtitles: https://example.com/video.mp4"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
After Effects MCP
An MCP server that edits video in After Effects — from Claude, Cursor, or any MCP client.
after-effects-mcp connects your AI assistant to afterAI, a hosted After Effects pipeline. Send a raw clip and get back a finished, ready-to-post short video: AI upscaling (Topaz), a cinematic color grade, animated subtitles, smooth zoom effects, and beat-synced phonk edits — all rendered in After Effects with paid-tier plugins, on afterAI's machines. No After Effects install, no plugins, no render farm on your side.
Built for creators automating YouTube Shorts, TikTok and Reels. If you found this searching for an "After Effects MCP", this is the fastest way to get real AE edits from an AI agent.
What it does
Tool | What it does |
| Submit a raw clip for a full After Effects edit (upscale, color grade, subtitles, zoom, phonk edit). Returns a job id + tracking URL. |
| Follow a render's progress and get the download link when it's done. |
| What afterAI does, the edit options, and how to get a key. |
The finished video is emailed to the account that owns the API key, and is downloadable from the tracking URL.
Related MCP server: After Effects MCP Server
Quick start
1. Get an API key
Subscribe to a plan: https://getafterai.eu/#pricing
Create a key: https://getafterai.eu/api-access
The API is plan-gated: each edit_video call spends one credit. If a render fails, the credit is auto-refunded.
2. Install the server
git clone https://github.com/borishalachev1/after-effects-mcp.git
cd after-effects-mcp
npm install
npm run buildThis produces dist/index.js, which your MCP client runs.
3. Add it to your MCP client
Claude Code (use the absolute path to the built file):
claude mcp add after-effects -e AFTERAI_API_KEY=ak_your_key -- node /absolute/path/to/after-effects-mcp/dist/index.jsClaude Desktop / Cursor — add to your MCP config (claude_desktop_config.json or .cursor/mcp.json):
{
"mcpServers": {
"after-effects": {
"command": "node",
"args": ["/absolute/path/to/after-effects-mcp/dist/index.js"],
"env": {
"AFTERAI_API_KEY": "ak_your_key"
}
}
}
}Coming soon: a published npm package so you can run it with
npx -y after-effects-mcpinstead of cloning.
4. Use it
"Edit this clip with a cinematic color grade and subtitles: https://drive.google.com/…"
Claude calls edit_video, then you can ask it to check_status until the download link appears.
Configuration
Env var | Required | Default | Description |
| yes (for | — | Your afterAI key from |
| no |
| Override the API base URL. |
edit_video options
Option | Type | Notes |
| string (required) | Public, direct link to the raw clip. |
| boolean | Cinematic color grade. |
| string | Style id, e.g. |
| boolean | Animated subtitles. |
| string | Style id, e.g. |
| string | e.g. |
| string |
|
| boolean | Smooth zoom intro. |
| boolean | Beat-synced phonk edit with a beat-drop freeze climax. |
| boolean | Burn in a watermark. |
| string | Watermark text. |
| string | Free-text instructions. |
Run from source
git clone https://github.com/borishalachev1/after-effects-mcp.git
cd after-effects-mcp
npm install
npm run build
AFTERAI_API_KEY=ak_your_key node dist/index.jsHow it works
This MCP server is a thin client over afterAI's public automation API (POST /api/v1/order). afterAI runs the actual After Effects pipeline (Topaz upscaling, color grade, Whisper subtitles, beat detection, render) and delivers the finished file.
License
MIT © afterAI
Available Tools
3 toolsafterai_infoAbout afterAI and how to get accessA
Explains what afterAI does, the available edit options and how to get an API key and plan.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It states the tool 'explains' content, indicating a non-destructive, informational read-only operation, but it does not disclose authentication requirements, rate limits, or response format. This adds some transparency but is not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the tool's purpose without extraneous information. It earns a top score for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no parameters, no output schema, and no annotations, so the description is the sole source of context. It adequately covers the tool's purpose and scope, explaining what it does and what topics it addresses. This is complete for a simple informational tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description is not required to elaborate on parameter meaning. The description mentions edit options and API keys, but these are content topics, not parameters. Baseline score of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'explains' and identifies the resource 'afterAI', covering what it does, edit options, and access details. This clearly distinguishes it from sibling tools check_status and edit_video, which perform actions rather than provide information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when the user needs introductory information about afterAI, its edit options, or how to obtain an API key and plan. It provides clear context without needing exclusions, although it doesn't explicitly name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_statusCheck an afterAI render's statusA
Look up the live status of a submitted edit by its job id (the id returned by edit_video). Returns progress percent, the current stage and, when done, the download link.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | The job id returned by edit_video. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return content (progress percent, current stage, download link) and implies a read-only operation. It does not cover error handling or edge cases (e.g., invalid job id), but for a status-check tool, the disclosed behavior is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the primary action and identifier, and follows with the return details. Every word contributes necessary information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter and no output schema, the description covers the purpose, the source of the identifier, and the expected return fields. It misses potential details about polling behavior or error conditions, but for a simple status check it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description for jobId is 100% covered ('The job id returned by edit_video') and the tool description restates the same fact. Since the schema already provides the essential meaning, the description adds no further semantic value, warranting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Look up'), a resource ('live status of a submitted edit'), and the required identifier ('job id'). It also distinguishes itself from sibling tools by referencing edit_video as the source of the job id, making its role in the workflow explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly conveys when to use the tool by stating the job id is returned by edit_video, which indicates it should be used after an edit submission. However, it does not explicitly mention alternatives or when not to use it, leaving room for slight ambiguity relative to what is possible.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_videoEdit a video with afterAIA
Submit a raw clip to afterAI's After Effects cloud pipeline. Returns a job id and a tracking URL. Spends one credit from your plan. The finished video is emailed to the account that owns the API key. Use check_status to follow progress. videoUrl must be a public, direct link to the raw clip.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Free-text instructions for the editor agent. | |
| fullEdit | No | Beat-synced phonk edit with a beat-drop freeze climax (needs background music in your clip/notes). | |
| videoUrl | Yes | Public, direct URL to the raw clip (Google Drive share link or direct mp4). | |
| subtitles | No | Add animated subtitles. | |
| watermark | No | Burn in a watermark. | |
| smoothZoom | No | Add a smooth zoom intro. | |
| subtitleStyle | No | Subtitle style id, e.g. '1', '3'. | |
| watermarkText | No | Watermark text (if watermark is true). | |
| spokenLanguage | No | Language spoken in the clip, e.g. 'en', 'bg'. | |
| colorCorrection | No | Apply a cinematic color grade. | |
| subtitleLanguage | No | Subtitle output language: 'same' or a code like 'en', 'es'. | |
| colorCorrectionStyle | No | Color grade style id, e.g. '1', '2'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses several behavioral traits: it spends a credit, returns a job ID and tracking URL (async operation), and emails the finished video. It also specifies the input requirement that videoUrl must be a public direct link. It does not mention failure modes or rate limits, but the core side effects and async nature are well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct and front-loaded, starting with the core action and then giving key behavioral details. Every sentence adds value: action, return value, cost, delivery method, and a pointer to the sibling tool. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 12 parameters and no output schema, but the description gives all essential context for invocation: the raw clip URL must be public, the operation is async with a job ID and tracking URL, it costs a credit, and the result is emailed. It also tells the user to use check_status for follow-up. Combined with a rich schema, this is complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 12 parameters. The description adds no parameter-level detail beyond what the schema provides (e.g., 'videoUrl must be a public, direct link' simply repeats the schema's description). Since the schema does the heavy lifting, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Submit a raw clip to afterAI's After Effects cloud pipeline.' It specifies the resource (afterAI pipeline), the verb (submit/edit), and the output (job id and tracking URL). It also distinguishes this from sibling tools by pointing to check_status for progress.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: to submit a raw clip and start an edit job. It explicitly directs the user to 'Use check_status to follow progress,' naming an alternative for a related workflow. However, it does not offer explicit 'when not to use' guidance or mention the afterai_info sibling, so it falls short of a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v1.0.0- First observed
afterai_info - First observed
check_status - First observed
edit_video
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: edit_video submits a job, check_status tracks it, and afterai_info provides general information. No overlap or ambiguity.
edit_video and check_status follow the verb_noun pattern, but afterai_info breaks the convention as a noun phrase rather than a verb-based command, creating a minor inconsistency.
Three tools is well-scoped for a simple cloud rendering workflow: submit, poll status, and get info. Each tool serves a necessary role without unnecessary bloat.
The tool surface covers the full lifecycle from submission to result retrieval via the download link in check_status. No critical operations are missing for the advertised purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Turn long videos into short, captioned viral clips from your AI assistant. 28 tools, OAuth.
Clip videos into captioned shorts, add captions, and schedule posts from AI agents.
AI video editing + publishing: turn clips into vertical shorts, post to TikTok/Instagram/YouTube.
Video, audio, and image processing for AI agents: convert, transcribe, upscale - 150+ operations.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI video automation pipeline: ComfyUI image-to-video, FFmpeg processing, After Effects template rendering, review, and multi-platform publishing preparation.9MIT
- AlicenseCqualityDmaintenanceEnables AI assistants to control Adobe After Effects for composition, layer, effect, preset, marker, and audio automation through a bridge panel.306817MIT
- AlicenseNot gradedqualityBmaintenanceLets AI assistants like Claude or ChatGPT operate Adobe apps (Illustrator, Photoshop, After Effects, Premiere Pro) through 12 professional workflows with built-in quality control, restore points, and human approval.3ISC
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to control Adobe After Effects to create videos programmatically, with commands for comps, layers, effects, and rendering.1418MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/borishalachev1/after-effects-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server