Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_TIMEOUTNoTimeout in milliseconds for MCP tool calls. A value of 120000 matters: a cold After Effects start plus the first osascript does not fit the default 30 s.
AE_MCP_READONLYNoSet to 1 for the first experiments on a new machine to run the server in read-only mode.
AE_MCP_ENABLE_EVALNoEnables the eval.run operation (arbitrary ExtendScript = file system access). Stays off; keep it off.

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

List the modal dialogs After Effects is showing, or dismiss one by its cancel action (what Escape does: a warning is acknowledged, a 'save changes?' question is cancelled — never answered for the user). Use after a DIALOG_OPEN / TIMEOUT error, or before a step known to pop a dialog. Windows + macOS; on macOS reading the text and dismissing need Accessibility permission for the app that runs this server.

ae_object_matte_uiA

Object Matte (AE 26) on a layer through After Effects' UI — macOS only; no script can create a selection. Give lassos and points in the pixels of a frame you looked at (comp pixels of an ae_render_frame by default, or layer source pixels with space:"layer"). A LASSO takes the subjects inside the outline — AE snaps it to their silhouettes — so one lasso can take a whole group of people at once: outline them generously, heads and feet with a margin. A POINT takes the subject under it as AE segments it — often only a garment or a torso in a crowd, so use points only for a lone, clearly separated subject. mode:"subtract" removes (Option). The tool opens the layer in the Layer panel at time (the base frame), makes the Object Matte tool active (checked through the active-tool code — Option+W is the Roto Brush group's shortcut and cycles its members), acts with real mouse events, reads back the strokes the effect recorded (error_px = where each landed vs where it was meant to), optionally propagates by stepping the comp time (propagate_to), and then RENDERS A PREVIEW and returns it as images: top — the matte over black, bottom — the frame with the excluded parts in red, with markers: cyan boxes on gaps between kept pieces (where a hidden, lying or partly visible person is usually left out) and green/yellow rings on the people points you listed. A part of a person, someone behind another or lying on the ground is a subject too: add it with a lasso that overlaps the neighbouring kept matte so the pieces merge. The result is never verified by the tool: look at the images and check every person. With only preview_times (no points, lassos or propagate_to) it renders the preview without touching the UI — use it to check any frames. The Layer panel must be visible and large enough for the whole picture.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 13 tools

Disambiguation4/5

Most tools have clearly distinct scopes: info tools operate at different levels, ae_catalog discovers operations, ae_do executes them, and specialized tools handle rendering, saving, import/export, dialogs, and object matte UI. There is minor overlap between ae_context, ae_project_info, and ae_comp_info, each offering project/comp state, but descriptions generally clarify when to use which.

Naming Consistency4/5

All tools share a consistent ae_ prefix and snake_case convention. Most names are readable and predictable, though the pattern mixes noun_info forms (ae_project_info, ae_layer_info) with verb_noun forms (ae_render_frame, ae_save_project) and generic names (ae_do, ae_catalog, ae_dialogs).

Tool Count5/5

The 13-tool set is well scoped for an After Effects automation server. It balances specialized high-level tools with discovery/execution meta-tools, avoiding both a thin surface and an unwieldy catalog of one-off operations.

Completeness4/5

The surface covers core lifecycle needs: project/comp/layer inspection, rendering, saving, JSON export/import, dialog handling, and an extensible atomic operation system via ae_catalog and ae_do. Minor gaps may exist for direct project open/create or explicit undo/redo, but these are likely reachable through ae_do operations or workarounds.

Maintenance

ActivityActive
ResponsivenessNo recent community issues