Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
AE_MCP_EXENoPath to the After Effects executable when it is not in the standard location.
MCP_LOGO_DIRNoClient logo library (one folder per client).
AE_MCP_AERENDERNoPath to `aerender` for background renders.
AE_MCP_INSTANCENoDefault After Effects instance to address.
AE_MCP_READONLYNoSet to `1` to disable every write operation.
AE_MCP_BRAND_DIRNoWhere brand kits are stored.
AE_MCP_ENABLE_EVALNoSet to `1` to enable arbitrary ExtendScript (`eval.run`).
AE_MCP_KNOWLEDGE_DIRNoUse another folder as the knowledge base.
AE_MCP_ALLOW_CATEGORIESNoComma-separated categories Claude may use.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 (incl. interpolation names and bezier ease speed/influence). layerIndex accepts one index, an ARRAY of indices, or 'all' — auditing a whole comp is one call. detail:'summary' drops properties still at their default value (unkeyed, no expression) — start there for audits; the full tree is often 100KB+ per comp. Set includeProperties=false to skip the property tree walk entirely.

ae_render_frameA

Render one or more frames to PNG. Use to visually verify edits. The agent's 'eyes' — pair with mutations for a visual feedback loop. Headless and deterministic. Pass time for one frame, or times for several in ONE call (motion checks): files land at _.png and are listed in frames. contactSheet tiles every frame into one labelled PNG (_sheet.png) so a motion check is one image; analyze measures each capture (uniform edge bands = black bars / transparent margins, content bounds, coverage) so off-frame elements and letterboxing are caught numerically. 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_projectB

Save the project. Pass path for Save As.

ae_project_export_jsonA

Serialize the entire project to JSON (folders, comps, layers, keyframes, effects, shapes, markers, time remap, solids, file refs). Write to outPath or return inline.

ae_project_import_jsonA

Rebuild the project from JSON (produced by ae_project_export_json). Supports clearFirst, dryRun (validate-only), skipValidation.

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. The exception is undo/redo itself (project.undo, command.execute id 16/2035): those run outside the group and cannot ride inside a batch.run. 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.

ae_guideA

The motion-design and studio knowledge this MCP carries: workflow rules, easing and timing, kinetic typography, PSD-to-animation recipes, the user's installed plugins / transitions / presets / MOGRTs and when to use them, client brand rules. Call with no arguments to list topics, topic to read one, query to search all of them. Read the relevant topic BEFORE planning a non-trivial animation or choosing an effect, so the plan uses what is actually installed.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 12 tools

Disambiguation4/5

Most tools have clearly distinct purposes: info readers target specific AE objects, render/save/export/import are unambiguous, and ae_catalog/ae_do form an obvious discovery/execution pair. The only real overlap is the trio ae_project_info, ae_version_info, and ae_context, all of which claim to be 'call at session start' and return partially overlapping project state, which could cause a redundant call.

Naming Consistency3/5

The ae_ prefix is applied uniformly and names are readable, but conventions are mixed within that prefix: some are noun_style (ae_project_info, ae_comp_info, ae_layer_info), some are verb_noun (ae_render_frame, ae_save_project), and some are bare verbs or nouns (ae_do, ae_catalog, ae_guide). Predictable enough to navigate, but not a single consistent pattern.

Tool Count5/5

Twelve tools is well-scoped for a Creative-After-Effects bridge: a small set of read/render/persist tools plus ae_catalog+ae_do as a deliberate escape hatch for the long tail of operations. Nothing feels padded, and the generic dispatch tool avoids an explosion of per-operation endpoints.

Completeness4/5

The surface covers the full lifecycle — inspect (project/version/comp/layer), mutate (ae_do), verify visually (ae_render_frame with contact sheets and analysis), persist (save, export/import JSON), and learn (ae_guide, ae_context). Minor gaps exist around explicit undo/redo and error recovery entry points, but ae_do's project.undo/command.execute coverage means agents are unlikely to hit a dead end.

Maintenance

ActivityMaintained
ResponsivenessNo issues