mcp-aftereffects
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AE_EXE | No | Legacy alias for AE_MCP_EXE. | |
| AE_MCP_EXE | No | Full path to After Effects executable (Windows: AfterFX.exe, macOS .app bundle). Override when AE is installed elsewhere. Legacy alias: AE_EXE. | probes AE 2026, 2025, 2024 in default install locations |
| AE_MCP_READONLY | No | Set to '1' to block all operations that can modify the project. Overrides AE_MCP_ENABLE_EVAL. | 0 |
| AE_MCP_ENABLE_EVAL | No | Set to '1' to add eval.run (arbitrary ExtendScript) to the registry. Ignored when AE_MCP_READONLY=1. | 0 |
| AE_MCP_RUNTIME_DIR | No | Relocate the file-IPC mailbox. Both sides must agree; the server publishes the location so the dispatcher can find it. Rarely needed outside of testing. | <os temp>/mcp-aftereffects/runtime |
| AE_MCP_ALLOW_CATEGORIES | No | Comma-separated allowlist of ae_do categories, e.g. keyframe,property,batch. Unset means all categories are allowed. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ae_project_infoA | Project-level info: file path, dirty flag, all items with type/summary, active item. Start here. |
| ae_comp_infoA | Detailed comp info: size, fps, duration, work area, motion blur, layer summaries. Pass a comp name or item id — or an ARRAY of them to fetch several comps in one call. |
| ae_layer_infoA | Full layer info: transform, effects, masks, text, shape contents, keyframes. layerIndex accepts one index, an ARRAY of indices, or 'all' — auditing a whole comp is one call. Set includeProperties=false to skip the property tree walk. |
| ae_render_frameA | Render a single frame to PNG. Use to visually verify edits. The agent's 'eyes' — pair with mutations for a visual feedback loop. Headless and deterministic. In color-managed projects (workingSpace != None) the capture applies AE's own display transform via a transient OCIO Display Transform adjustment layer, and the PNG comes back viewer-accurate and sRGB-tagged. Where that layer cannot be used — read-only mode, an AE without the OCIO effect, or a failed capture calibration — the result falls back to a pure-math ACES conversion or to raw values with an explicit colorWarning; check colorPipeline / colorWarning on the response. |
| ae_save_projectA | Save the project. Pass |
| ae_project_export_jsonA | Serialize the entire project to JSON (folders, comps, layers, keyframes, effects, shapes, markers, time remap, solids, file refs). Write to |
| ae_project_import_jsonA | Rebuild the project from JSON (produced by ae_project_export_json). Supports |
| ae_version_infoA | AE version, build, capabilities (saveFrameToPng, app.effects, Socket). Call at session start to know what APIs are available. |
| ae_catalogA | Discover available atomic operations for ae_do. Without args: all categories with their operation names. With a category: detailed params per operation. Only operations this server will actually execute are listed. |
| ae_doA | Execute an atomic operation by name (from ae_catalog). Arguments are validated against the operation's declared parameters before anything reaches AE. Have more than one operation to run? Wrap them in ONE batch.run instead of several ae_do calls — read/verify steps (comp.info, layer.info, render.frame) can ride in the same batch. Every call is automatically wrapped in ONE undo group: a single Ctrl+Z (or project.undo) reverts the entire call, and a batch.run counts as one call. Never call app.beginUndoGroup/endUndoGroup in eval.run code — the wrapper already did. Response includes ambient context (active comp, selected layers, project state) at zero extra round trips. Example: ae_do({ operation: 'keyframe.add', args: { comp: 'Main', layer: 1, property: ['Transform','Position'], time: 2, value: [960,540] } }) |
| ae_contextA | Ambient context: project state, active comp, selected layers, item list, AE.* helpers, ES3 rules, and the undo contract (every call = one auto undo group). Call at session start; then rely on ae_do response context. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/kumoproductions/mcp-aftereffects'
If you have feedback or need assistance with the MCP directory API, please join our Discord server