Skip to main content
Glama

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

edit_video

Submit a raw clip for a full After Effects edit (upscale, color grade, subtitles, zoom, phonk edit). Returns a job id + tracking URL.

check_status

Follow a render's progress and get the download link when it's done.

afterai_info

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

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 build

This 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.js

Claude 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-mcp instead 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

AFTERAI_API_KEY

yes (for edit_video)

Your afterAI key from /api-access.

AFTERAI_BASE_URL

no

https://getafterai.eu

Override the API base URL.


edit_video options

Option

Type

Notes

videoUrl

string (required)

Public, direct link to the raw clip.

colorCorrection

boolean

Cinematic color grade.

colorCorrectionStyle

string

Style id, e.g. "1".

subtitles

boolean

Animated subtitles.

subtitleStyle

string

Style id, e.g. "3".

spokenLanguage

string

e.g. "en", "bg".

subtitleLanguage

string

"same" or a code like "en".

smoothZoom

boolean

Smooth zoom intro.

fullEdit

boolean

Beat-synced phonk edit with a beat-drop freeze climax.

watermark

boolean

Burn in a watermark.

watermarkText

string

Watermark text.

notes

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.js

How 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 tools
afterai_infoAbout afterAI and how to get accessA

Explains what afterAI does, the available edit options and how to get an API key and plan.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesThe job id returned by edit_video.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoFree-text instructions for the editor agent.
fullEditNoBeat-synced phonk edit with a beat-drop freeze climax (needs background music in your clip/notes).
videoUrlYesPublic, direct URL to the raw clip (Google Drive share link or direct mp4).
subtitlesNoAdd animated subtitles.
watermarkNoBurn in a watermark.
smoothZoomNoAdd a smooth zoom intro.
subtitleStyleNoSubtitle style id, e.g. '1', '3'.
watermarkTextNoWatermark text (if watermark is true).
spokenLanguageNoLanguage spoken in the clip, e.g. 'en', 'bg'.
colorCorrectionNoApply a cinematic color grade.
subtitleLanguageNoSubtitle output language: 'same' or a code like 'en', 'es'.
colorCorrectionStyleNoColor grade style id, e.g. '1', '2'.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 3 tool updatesv1.0.0
    • First observedafterai_info
    • First observedcheck_status
    • First observededit_video

TDQS

A4.4/5.0

Scored across 3 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

Latest Blog Posts

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