ae-agent-lab-demo
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
| 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 (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. Experimental preview requests half or quarter resolution for up to 6 frames; inspect returned dimensions and warnings. Headless and deterministic. Pass |
| ae_save_projectB | 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. Use detail: summary to browse names and descriptions without params, or operations: [exact names] to fetch only the schemas needed. Only operations this server will execute are listed. |
| ae_motion_planA | Offline motion planner for typography, panels, icons, and bars. Prepare pivots, reread positions, then request reveal ops. Audit phase checks camera samples without proposing edits. It never contacts After Effects or applies edits. Supply real readback and render before/after. |
| ae_workflow_planA | Offline recipe for retiming several inspected property tracks in one AE batch. It validates whole-frame timing and returns typed operations plus a readback plan. It never contacts After Effects or applies edits. |
| ae_workflowA | Prepare a typed retime or text/logo variants recipe against an existing active managed .aep copy and persist a guarded job. Apply only after reviewing the job, or read its status. Apply edits only that copy. No production render is started automatically. |
| ae_editA | Apply up to 12 typed, registered edits to the active managed .aep copy in one AE call. A UUID requestId prevents repeat execution after a retry or timeout. The call captures pre-edit values, saves a checkpoint, edits, reads back values and saves the project. Use action=status with the same requestId to inspect a delayed receipt. This does not render frames. |
| ae_inspect_targetsA | Inspect up to 16 explicit layer or property targets in one read. Returns compact current values, key counts, and reusable opaque references. Requires a numeric composition ID and 1-based layer indices; property paths use canonical match names. Repeated sibling match names cannot receive reusable property references. |
| 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, and resident readiness. Compact output is the default; request detail:'full' for the item list, AE.* helpers, ES3 rules, tips, and undo contract. 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 | |
TDQS
Scored across 16 tools
Several tool pairs overlap: ae_do vs ae_edit (both perform batched mutations), ae_motion_plan/ae_workflow_plan/ae_workflow (offline planning and retiming recipes), and ae_layer_info vs ae_inspect_targets (reading layer/property data). The detailed descriptions help differentiate them, but an agent must read carefully to avoid misselection.
All tools use a consistent ae_ snake_case prefix and are highly readable, giving a predictable pattern. However, the pattern is not strictly verb_noun throughout: ae_catalog, ae_context, and ae_do are noun-only or verb-only deviations.
At 16 tools, the set sits slightly above the ideal 3-15 range, but each tool covers a distinct phase (version/context, planning, inspection, mutation, rendering, export/import) so the surface feels purposeful rather than bloated. For a rich After Effects automation domain, this count is reasonable.
The surface covers version discovery, planning, project/comp/layer inspection, atomic and batched edits, save, render-frame capture, and full JSON export/import. Gaps remain for full render-queue output and explicit undo/redo, but these are reachable through ae_do and ae_catalog, so there are no severe dead ends.