OpenShowreel
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OpenShowreelanimate this UI walkthrough as a 60fps showreel"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OpenShowreel
An open-source Model Context Protocol (MCP) server for Adobe After Effects — built so an AI assistant can drive After Effects the way a senior motion designer does: not just dropping keyframes, but applying the mechanics that make a showreel feel premium.
The goal is simple: let an agent take a brief ("animate this UI walkthrough as a 60fps showreel") and produce buttery-smooth, organically-timed motion using the same techniques pros reach for by hand.
Why this exists
Most automated AE tooling produces stiff, robotic motion — linear paths, simultaneous movement, hard fades. The difference between "a computer animated this" and "a designer animated this" comes down to a handful of repeatable mechanics. OpenShowreel encodes those mechanics as MCP tools so they can be composed programmatically.
Related MCP server: After Effects MCP
Core After Effects mechanics the server models
1. 60 FPS + Motion Blur (the baseline for "premium")
Before anything is animated, the composition is set to 60 frames per second and motion blur is enabled. This is the single biggest lever for a "buttery smooth" look — every other technique builds on top of it.
2. Morphing shapes
Basic shape layers become expressive when you uncheck "Constrain Proportions" on the Size property. That lets the X and Y axes scale independently — e.g. a moving button can appear to physically push and stretch a background frame as it travels.
3. Expressions over manual keyframes
Instead of hand-animating physics, the server pastes bounce expressions (small code snippets) into the stopwatch of properties like Scale or Position. Physics for free, tweakable by parameter.
4. Timing offsets — the secret to organic motion
Nested elements should never move with their parent — they lag, just slightly. By appending .valueAtTime(time - 0.1) to an expression, child elements (an arrow inside a button, an icon inside a card) are mathematically forced to animate a fraction of a second behind their container. This kills the stiff, "everything moves at once" feel.
5. Simulated micro-interactions
To make a digital interface feel tactile, the server adds a quick scale-down "button press" keyframe right before a major on-screen movement begins — the same anticipation beat a real tap would produce.
Essential tools the server wraps
Parenting & the Pick Whip
Linking properties together: pick-whip an icon's Scale to its container's Scale, or parent text to a moving shape so it tracks along automatically.
Text Animators + Expression Selectors
Premium text reveals don't just fade in. A Text Animator pushes the starting Position off-screen (e.g. Y → -100) with Opacity at 0%, then an Expression Selector pulls the text into place per-word or per-character — staggered, not all at once.
Null Objects for curved paths
Straight linear motion looks unnatural, so paths are drawn with the pen tool and curved. But curve data can make an object drift when it's meant to be stationary. The fix: snap an invisible Null Object's anchor point to the shape's center, parent the shape to the Null, and animate the Null instead — clean movement, no drift.
The master "camera" finisher
The ultimate polish: create one final master Null Object, attach every otherwise-unlinked element to it, apply an expression, and add a very slight rotation (a small positive tilt followed by a negative one). Moving the whole composition together "stitches it all" into a single cinematic move.
How it works
OpenShowreel is a Node MCP server. Each tool generates a small ExtendScript snippet and runs it inside a running After Effects via macOS AppleScript (osascript → DoScript), wrapped in an undo group, with the result handed back through a temp file. No After Effects panel/extension to install — just the CLI server.
MCP client (Claude, etc.) ──stdio──► openshowreel server ──osascript/DoScript──► After EffectsRequirements
macOS with Adobe After Effects installed (auto-detects the newest
Adobe After Effects <year>under/Applications; override withAE_APP_NAME).After Effects must be running, with Preferences ▸ Scripting & Expressions ▸ "Allow Scripts to Write Files and Access Network" enabled.
Node.js ≥ 18.
Build & run
npm install
npm run build
npm start # or: npm run dev (runs from source via tsx)
npm test # tool-builder + dry-run tests — no After Effects neededSet
OPENSHOWREEL_DRY_RUN=1to make every tool report what it would run instead of touching After Effects — handy for testing the wiring.
Register with an MCP client
{
"mcpServers": {
"openshowreel": {
"command": "node",
"args": ["/absolute/path/to/openshowreel/dist/index.js"]
// optional: "env": { "AE_APP_NAME": "Adobe After Effects 2025" }
}
}
}Tools
Composition & inspection
Tool | What it does |
| Inspect comps, layers, fps, motion-blur state |
| New comp at 60 fps + motion blur — the premium baseline |
| Save / save-as the |
Layers
Tool | What it does |
| Rounded-rect / ellipse shape layer with a fill (button, frame…) |
| Solid-colour layer (background / colour wash) |
| Plain text layer |
| Import an image / video / audio file, optionally place it in a comp |
| Layer-level pick-whip / parenting |
| Pick-whip one property to another via expression |
Motion mechanics
Tool | Maps to the mechanic |
| Keyframe position / scale / rotation / opacity A→B with an easing preset |
| Re-ease existing keyframes (linear / easeIn / easeOut / easeInOut / hold) |
| Opacity fade-in / fade-out at the layer in/out points |
| Animate Size on one axis only — the "constrain proportions OFF" stretch |
| Paste a physics bounce/overshoot expression onto scale / position / rotation |
|
|
| Tactile scale-down dip just before a major move |
| Text Animator + Expression Selector staggered reveal (per char / word / line) |
| Pin a layer to an invisible Null, keyframe a curved, drift-free path |
| One master Null over everything + slight tilt expression — the cinematic stitch |
Effects, masks, mattes, camera
Tool | What it does |
| Add any effect; set or keyframe any parameter |
| One-call effect presets |
| Full-frame adjustment layer for a global grade/treatment |
| Layer blending modes (screen, add, multiply, …) |
| Rect/ellipse masks; keyframe expansion or feather for wipes |
| Trim Paths line draw-on (adds a stroke if needed) |
| Use the layer above as an alpha/luma matte |
| Toggle the 3D switch on a layer (or all of them) |
| Add a camera; keyframe a dolly / push-in / pan |
Scenes, timing, output, escape hatch
Tool | What it does |
| Precompose layers into a scene |
| Drop a precomp / footage item into another comp |
| Comp or layer markers (beat / section sync) |
| Speed ramps / freezes / reverse on footage & precomps |
| Wrap a layer in a card / browser / phone mockup |
| Render frame(s) to PNG and return the path(s) — the agent's review loop |
| Render a comp to a video file via the Render Queue |
| Save / save-as the |
| Run arbitrary ExtendScript |
See docs/SHOWREEL_PLAYBOOK.md for how to sequence these into a polished reel, and examples/demo-showreel.mjs for a runnable mini-build.
Notes: ExtendScript match-names target current After Effects builds — if a tool errors on another version,
ae_evallets you patch around it (PRs welcome). Under the Advanced 3D renderer the.valuegetter on shape-layer spatial properties can throw, so OpenShowreel never reads it: passfromexplicitly toae_animate_transformif you need a non-default start value.
Status
🚧 Active development — the bridge and ~40 tools (composition, layers, motion mechanics, effects, masks/mattes, 3D camera, precomps, time remap, device mockups, rendering) are in place and verified live against After Effects 2026. Live behaviour depends on your After Effects version; expect to file/fix the odd match-name. The remaining gap toward fully autonomous reels is mostly direction + assets, not capability — see the playbook.
License
MIT — see LICENSE.
Available Tools
43 toolsae_add_adjustment_layerA
Add a full-frame adjustment layer at the top of the stack — apply effects to it (e.g. via ae_add_effect / ae_add_glow) to grade or treat the whole comp at once.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| name | No | Adjustment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that the layer is added full-frame and at the top, but does not mention side effects, destructiveness, permissions, or undo capabilities. More context needed for a null-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with action and resource, no extraneous information. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-param tool with no output schema, the description is adequate but missing details about return value and whether the layer is immediately visible or if further setup is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate. It only suggests the 'name' parameter has a default value 'Adjustment' and implies 'comp' exists, but does not explain what either parameter is for or provide usage details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Add' and resource 'adjustment layer' with specific context 'full-frame at the top of the stack'. It distinguishes from sibling tools like ae_add_layer_to_comp which adds generic layers, and ae_add_effect which adds effects to existing layers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: use this tool to apply global effects via ae_add_effect or ae_add_glow. It implicitly indicates when to use it but does not explicitly state when not to use it or mention alternatives aside from the referenced effect tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_add_bounce_expressionA
Apply a physics 'bounce' (overshoot) expression to a property (scale, position, or rotation) instead of hand-keying springiness. Once applied, any keyframe you set on that property will overshoot and settle naturally. Based on the well-worn Dan Ebberts overshoot — robust against overflow.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | ||
| property | No | scale | |
| amplitude | No | Overshoot scale — multiplies the post-keyframe velocity. | |
| frequency | No | Oscillations per second. | |
| decay | No | How quickly the bounce settles (higher = snappier). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains that applied keyframes will overshoot and settle, and mentions robustness against overflow. However, it does not clarify whether existing expressions are replaced or how the tool interacts with other effects, leaving some behavioral ambiguity given no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, avoiding fluff. It front-loads the main purpose and provides some context, though it could benefit from more structured parameter guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has six parameters (one required) and no output schema, the description lacks details on prerequisites (e.g., existing keyframes), removal, and re-application behavior. Missing explanation for 'comp' and 'layer' parameters also hurts completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaningful explanation beyond what the schema already provides for amplitude, frequency, and decay. The 'property' parameter is listed but not elaborated. 'comp' and 'layer' are not described, and with 50% schema coverage, the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool applies a bounce expression to a property (scale, position, or rotation) as an alternative to manual keyframing. It distinguishes itself from sibling tools by specifying the exact behavior and property types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use it ('instead of hand-keying springiness') and mentions its origin, but does not explicitly state when not to use it or compare it to alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_add_button_pressA
Add a tactile 'button press' micro-interaction: a quick scale-down dip and release just before a major on-screen movement begins. Inserts three Scale keyframes around atTime (assumes the layer rests at 100% scale).
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | ||
| atTime | Yes | Time (s) at which the press releases / the main move starts. | |
| depth | No | Scale multiplier at the deepest point of the press. | |
| durationSeconds | No | Total length of the press dip. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses it inserts three Scale keyframes around atTime and assumes 100% scale. No annotations provided; the description adds some context but does not address potential side effects like overwriting existing keyframes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first defines purpose, second adds technical detail. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple animation tool without output schema, it adequately explains behavior. Missing prerequisites or error handling, but not critical for this type of tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%. The description adds context to parameters like atTime and depth, but does not significantly enhance understanding beyond the schema defaults and descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it adds a 'button press' micro-interaction, specifically a scale dip and release. This verb+resource description distinguishes it from sibling tools like ae_add_bounce_expression or ae_add_fade.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly suggests use before a major movement via 'just before a major on-screen movement begins,' but no explicit when-to-use or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_add_cameraB
Add a Camera layer to the comp (becomes the active camera). Animate it with ae_animate_camera — remember 2D layers need their 3D switch on (ae_set_layer_3d) to be affected.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| name | No | Camera | |
| enableDepthOfField | No | ||
| focusDistance | No | ||
| aperture | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description only mentions it becomes active camera. Does not disclose side effects, prerequisites (e.g., comp must exist), or whether it replaces existing cameras.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the purpose and add a useful tip. No superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a basic add tool, but lacks parameter documentation and behavioral details. References other tools for animation, which is helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and description does not explain any of the 5 parameters (comp, name, enableDepthOfField, etc.). Fails to compensate for low schema detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it adds a Camera layer and that it becomes the active camera. Distinguishes from other add tools like ae_add_master_camera, though doesn't explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage guidance: animate with ae_animate_camera, and reminds about 3D switch for 2D layers. Does not mention when not to use or alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_add_device_frameA
Wrap a layer in a mockup frame — 'card' (rounded panel + shadow), 'browser' (panel + a top chrome bar with traffic-light dots), or 'phone' (tall rounded panel). The content layer is parented to the frame so they move together. Best on footage/precomp layers (a screenshot or UI scene).
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | The content layer to frame (e.g. a screenshot). | |
| style | No | card | |
| contentSize | No | [w, h] of the content as displayed. Defaults to the layer's source size. | |
| padding | No | Extra frame around the content (px). | |
| cornerRadius | No | ||
| frameColor | No | ||
| shadow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that the content layer is parented to the frame, implying they move together. However, it does not mention any potential side effects, destructive actions, or authorization needs. The behavioral disclosure is adequate but 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, consisting of two sentences that cover the main purpose and a usage tip. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 8 parameters and no output schema. The description explains the core functionality and a best-use scenario, but omits details on several parameters and does not describe the return value or any limitations. For a moderate-complexity tool, this is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38% (3 of 8 parameters have descriptions). The description adds value by explaining the styles and parenting behavior, but it does not elaborate on parameters like comp, cornerRadius, frameColor, or shadow. Given the low coverage, the description should provide more parameter details to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool wraps a layer in a mockup frame, listing three distinct styles (card, browser, phone). The verb 'wrap' and resource 'layer in a mockup frame' are specific, and the tool is well-differentiated from sibling tools like ae_add_effect or ae_add_layer_to_comp.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends using it on 'footage/precomp layers (a screenshot or UI scene)', providing clear context. While it does not explicitly state when not to use or name alternatives, the guidance is sufficient and distinguishes this tool from others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_add_drop_shadowA
Convenience: add a soft Drop Shadow to a layer with sensible defaults (you can fine-tune via ae_set_effect_param afterwards).
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | ||
| opacity | No | Shadow opacity %. | |
| softness | No | Blur radius (px). | |
| distance | No | Offset distance (px). | |
| direction | No | Direction in degrees. | |
| color | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only says 'add a soft Drop Shadow,' which implies a non-destructive addition. It does not specify side effects, prerequisites (e.g., layer must exist), or behavior when repeated. This is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core purpose. Every word earns its place, making it highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, and no annotations, the description lacks completeness. It does not explain required parameters (layer is required but unmentioned), the role of 'comp', or the color format, leaving gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 57%, meaning some parameters (comp, layer, color) lack descriptions, and the description adds no further parameter guidance. The agent must infer meanings from limited info, reducing usefulness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a soft Drop Shadow to a layer with sensible defaults. It uses a specific verb-add and resource-drop shadow, and implicitly distinguishes from sibling tools like ae_add_effect by labeling it a convenience.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description suggests using this for initial setup with defaults and fine-tuning via ae_set_effect_param afterward, providing good usage context. However, it does not explicitly state when to avoid this tool or compare to alternatives like ae_add_effect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_add_effectA
Add an effect to a layer by name or match-name (e.g. 'Drop Shadow', 'Gaussian Blur', 'CC Light Sweep', or a match-name like 'ADBE Drop Shadow'). Returns the effect's parameter names so you know what ae_set_effect_param can target.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | ||
| effect | Yes | Effect display name or match-name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It discloses that the tool adds an effect and returns parameter names, but lacks information on error behavior, idempotency, or side effects. Adequate but 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. Every word serves a purpose, providing essential information about the action, parameters, and return value efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no output schema, and no annotations, the description covers the core functionality and return value. It lacks details on optional parameters (comp) and error conditions, but is largely complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (effect parameter has a description). The description adds value by explaining the effect parameter can be a display name or match-name with examples, but provides no additional meaning for the 'comp' or 'layer' parameters, partially compensating for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds an effect to a layer by name or match-name, and distinguishes itself by noting it returns parameter names for use with ae_set_effect_param. This sets it apart from sibling tools that add specific effects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for arbitrary effects but does not explicitly mention when to use this generic tool versus sibling tools like ae_add_drop_shadow. No exclusion criteria or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_add_fadeC
Add an opacity fade-in and/or fade-out at the layer's in/out points, eased.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | ||
| fadeIn | No | ||
| fadeOut | No | ||
| durationSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description minimally discloses behavior (adds opacity fade, eased). It does not explain potential side effects on existing keyframes, layer compatibility, or any destructive aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 13 words, front-loaded with the action, with no superfluous content. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, no output schema), the description is incomplete. It omits details about layer and comp specification, duration semantics, return values, and expected behavior when fade options are toggled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description provides no explanation of the five parameters (comp, layer, fadeIn, fadeOut, durationSeconds). The description adds no value beyond the schema, failing to compensate for the lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds an opacity fade-in and/or fade-out at layer in/out points with easing, which is specific and distinguishes from sibling tools like ae_add_bounce_expression or ae_add_timing_offset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, prerequisites, or limitations. Simply describes the action without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_add_gaussian_blurC
Convenience: add Gaussian Blur to a layer (use a small amount for depth, or keyframe it for a focus pull / transition).
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | ||
| blurriness | No | ||
| repeatEdgePixels | No | ||
| atTime | No | If given, keyframe the blurriness at this time instead of a static value. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions keyframing via atTime, but fails to describe if the operation is destructive, whether it modifies the original layer, or any prerequisites (e.g., comp and layer existence). The tool mutates the composition state, but this is not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately conveys the tool's purpose. It is efficient with no wasted words, though it could be slightly expanded for clarity on parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and no annotations, the description is insufficient. It omits important context like default behavior, prerequisites (e.g., comp must exist), and return value (void or something). The agent would struggle to use this tool correctly without further knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (only atTime has a description). The description adds minimal parameter context (blurriness and keyframing) but does not explain comp, layer, or repeatEdgePixels. It does not compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it adds Gaussian Blur to a layer and mentions two usage cases (depth and keyframing). It distinguishes from sibling tools like ae_add_drop_shadow or ae_add_glow by specifying the exact effect. However, it could be more specific about the scope (e.g., whether it applies to all layers or selected ones).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage guidance (small amount for depth, keyframe for focus pull/transition) but does not specify when not to use it or compare to alternatives like ae_add_effect which might also add Gaussian Blur. It lacks explicit exclusions or when to prefer other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_add_glowA
Convenience: add a Glow effect to a layer (great for UI highlights / logos). Tune further with ae_set_effect_param.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | ||
| threshold | No | Glow threshold %. | |
| radius | No | Glow radius. | |
| intensity | No | Glow intensity. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description does not disclose any behavioral traits beyond 'add a glow effect,' such as whether it is destructive, whether it overwrites existing effects, or any prerequisites. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with a helpful follow-up suggestion. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no output schema, and no annotations, the description is minimal. It does not explain the visual effect of each parameter, stacking behavior, or prerequisites like composition requirements. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60% (threshold, radius, intensity have descriptions; comp and layer do not). The description adds no additional parameter meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it adds a glow effect to a layer, specifies it's a convenience for UI highlights/logos, and distinguishes from sibling like ae_add_effect by being a quick preset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context ('convenience for UI highlights/logos') and suggests tuning with ae_set_effect_param, but does not explicitly exclude cases or compare to other glow-like siblings such as ae_add_drop_shadow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_add_layer_to_compB
Add an existing composition (a precomp/scene) or imported footage item into another composition as a layer.
| Name | Required | Description | Default |
|---|---|---|---|
| targetComp | No | The comp to add the layer to. Defaults to the active comp. | |
| source | Yes | Name of a composition or footage item in the project. | |
| position | No | Layer position. Defaults to comp center. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states the basic action and does not mention side effects (e.g., layer ordering, changes to source items), error conditions (e.g., source not found), or any required permissions. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence of 14 words. It is front-loaded with the key action and resource, contains no superfluous words, and is immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 parameters, no output schema), the description is minimally adequate but lacks details on the outcome of the operation (e.g., does it return a layer reference? How is the layer inserted?). The schema fills some gaps, but overall completeness is average.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters described. The description adds no additional context beyond what the schema provides. It does not explain defaults (e.g., targetComp defaults to active comp), behavior when omitted, or formatting hints for the position array. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: adding an existing composition or footage item as a layer into another composition. The verb 'Add' and resource 'layer to a comp' are specific, and the inclusion of 'existing composition' and 'imported footage' helps differentiate from other add tools like 'ae_add_adjustment_layer'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives (e.g., ae_add_effect, ae_create_precomp). There is no mention of prerequisites, contexts, or when not to use it. The usage is only implied by the action itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_add_markersA
Add markers at the given times — on the composition timeline (for beat/section sync) or on a specific layer. Optional labels.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| times | Yes | Marker times in seconds. | |
| labels | No | Comments, parallel to `times`. | |
| layer | No | If given, add layer markers instead of comp markers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that markers can be added to comp or layer, and labels are optional, but does not mention side effects like whether markers overwrite existing ones or if duplicates are allowed. Adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences that front-load the core action and context. Every word is necessary and contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and four parameters, the description covers the main functionality well. It explains placement options and optional labels. However, it lacks details on return behavior (likely void) and error handling for invalid times. For a simple tool, this is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75% (three of four parameters have descriptions). The description adds meaning for 'times' (seconds), 'labels' (parallel to times), and 'layer' (if given, add layer markers). However, the 'comp' parameter lacks description in both schema and description, so it remains unclear how to specify the composition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds markers at given times on the comp timeline or a specific layer, with optional labels. It uses a specific verb ('add') and resource ('markers'), and distinguishes from sibling tools like ae_add_effect which add different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for beat/section sync or layer markers, providing clear context. However, it does not explicitly state when not to use or mention alternatives, but the sibling list shows no other marker-specific tool, so no confusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_add_maskA
Add a rectangular or elliptical mask to a layer. Bounds are in the layer's own pixel space ([left, top, right, bottom]); omit them to mask the whole layer. Combine with ae_animate_mask for wipe-style reveals.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | ||
| shape | No | rect | |
| bounds | No | [left, top, right, bottom] in layer space. Defaults to the whole layer. | |
| feather | No | ||
| expansion | No | Mask expansion (px). Negative shrinks. | |
| mode | No | add | |
| inverted | No | ||
| name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that bounds are in layer space and hints at animation combination, but does not specify effects of parameters like mode, inverted, or if masks can be added to layers with existing masks. Basic transparency is present but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundant wording. The first sentence states purpose, the second adds usage nuance. Front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 9 parameters with substantial complexity (modes, inversion, expansion) and no output schema. The description only touches on bounds and animation combination, leaving many behavioral aspects unexplained. Incomplete for the tool's depth.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 22%. The description adds some value by explaining bounds format and coordinate system, but other parameters (shape, feather, expansion, mode, inverted, name) are not elaborated. The description does not compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a rectangular or elliptical mask to a layer, and specifies that bounds are in layer space. This distinguishes it from sibling tools like ae_animate_mask, which animates masks rather than adding them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: bounds in layer space, omission masks whole layer. Mentions combining with ae_animate_mask for reveals. Lacks explicit guidance on when not to use or alternatives, but context is helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_add_master_cameraA
The cinematic finisher: create one master Null at the comp's centre, parent every otherwise-unparented layer to it, and add a Rotation expression with a very slight tilt (positive easing to negative) so the whole composition moves together as one — 'stitching it all'.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layers | No | Layer names to attach. Defaults to every top-level layer without a parent (excluding cameras/lights/the master). | |
| tiltDegrees | No | Peak tilt magnitude in degrees. | |
| driftPx | No | Optional subtle position drift in px across the comp. | |
| nullName | No | MASTER CAMERA |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors (parenting only unparented layers, adding expression, optional drift) but lacks details on side effects like overwriting existing expressions or multiple runs. With no annotations, the description carries the full burden and leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the purpose and action. It is front-loaded with the metaphor ('cinematic finisher'), though slightly long. No wasted words, but structure could be improved with bullet points.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains what the tool does but does not mention return values, error conditions, or prerequisites (e.g., comp must exist). For a tool with 5 optional parameters and no output schema, more completeness is needed to ensure correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, so the baseline is 3. The description adds context for 'layers' (top-level unparented) and 'driftPx' (optional position drift), but these are already partially covered in the schema. No significant added meaning beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: creating a master null, parenting unparented layers, and adding a rotation expression. It specifies the resource (comp layers) and the effect (stitching). It distinguishes from siblings by naming the composite operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a 'cinematic finisher' but does not explicitly state when to use it versus alternatives like ae_parent_layer or ae_add_camera. No guidance on when not to use or prerequisites is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_add_text_revealA
Word-by-word staggered text reveal — not a flat fade. A Text Animator pushes each unit off-screen (Position offset) at 0% opacity; an Expression Selector pulls one chunk into place at a time. Defaults to words; set chunkSize=2 to reveal two words at a time, or basedOn=characters for a typewriter feel.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| text | Yes | ||
| name | No | Layer name. Defaults to the text content. | |
| position | No | Layer position. Defaults to comp center. | |
| fontSize | No | ||
| color | No | ||
| font | No | PostScript font name, e.g. 'Inter-Bold'. | |
| basedOn | No | Reveal unit. Default 'words' shows one word at a time. Use 'characters' for typewriter, 'lines' for whole lines. | words |
| chunkSize | No | How many units (words/chars/lines) reveal together as one chunk. 2 = two words at a time. | |
| offsetY | No | How far (px) each unit starts above its final spot. Negative = drops down into place. | |
| offsetX | No | How far (px) each unit starts to the side of its final spot. | |
| startTime | No | ||
| perChunkSeconds | No | How long each chunk takes to reveal AND how long until the next chunk starts. Higher = slower, more visible reveal per word/chunk. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description explains the internal mechanism (Text Animator, Expression Selector) and how parameters affect behavior, but does not disclose whether the tool creates a new text layer or modifies an existing one, nor potential side effects like undo behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three sentences), front-loads the key differentiator ('not a flat fade'), and each sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 13 parameters, no output schema, and no annotations, the description covers the core mechanism well but omits high-level context such as whether it creates a new text layer (likely based on the required 'text' field) and the nature of the 'comp' parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 62%, and the description adds useful context for parameters like chunkSize, basedOn, offsetY, and perChunkSeconds with examples. However, parameters like comp and startTime lack any additional explanation in either schema or description, leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it's a 'word-by-word staggered text reveal' and explicitly contrasts with a 'flat fade,' distinguishing it from sibling tools like ae_add_fade. The mechanism and customization options are well explained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (staggered reveal) versus alternatives (flat fade), but does not explicitly state prerequisites, limitations, or when not to use this tool relative to other text animation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_add_timing_offsetA
The 'organic motion' trick: make a nested element trail its parent/leader by a fraction of a second using .valueAtTime(time - delay), so things don't move in stiff unison (e.g. an arrow inside a button arrives just after the button).
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | The follower layer (the one that should lag). | |
| property | No | position | |
| leaderLayer | Yes | The layer whose matching transform property the follower should copy, delayed. | |
| delaySeconds | No | How far behind the leader to lag. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains the mechanism (valueAtTime) but does not disclose important traits like overwriting existing expressions, performance impact, or what happens if the leader layer does not exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences, front-loaded with the core purpose, and contains no extraneous information. Every word contributes to understanding the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is adequate but missing some context such as prerequisites (comp layer existence), undo behavior, and the exact expression syntax. For a simple tool, it covers the essential use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds context beyond the schema by explaining the relationship between 'layer' and 'leaderLayer' (follower vs leader) and the concept of lag. This helps clarify the parameter roles beyond their field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: adding a timing offset to make a nested element trail its parent using valueAtTime. It gives a concrete example (arrow inside a button) and distinguishes from other animation tools like bounce expressions or button presses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for organic motion but does not explicitly state when to use this tool vs alternatives or when not to use it. The example provides context but no exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_add_trim_pathA
Add Trim Paths to a shape layer and (by default) animate it so the stroke draws on. Adds a stroke first if the shape has none. Best on shapes made by ae_create_shape.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | A shape layer. | |
| drawOn | No | Animate End 0→100% over the time range. | |
| startTime | No | ||
| endTime | No | ||
| addStroke | No | ||
| strokeColor | No | ||
| strokeWidth | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden of behavioral disclosure. It reveals key behaviors: adds trim paths, animates by default, adds stroke if missing. However, it does not disclose whether existing trim paths or strokes are overwritten, or what happens if the layer is not a shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences, each adding value. It front-loads the main action and includes relevant context (best on ae_create_shape shapes). No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters, no output schema, and low schema coverage, the description is not fully complete. It explains the core effect and animation but omits details about time range parameters (startTime, endTime) and the stroke color format, which are important for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (25%), so the description must compensate. It adds meaning for the 'drawOn' (by default animate) and 'addStroke' (adds stroke first if none) parameters, but does not explain 'startTime', 'endTime', 'comp', 'strokeColor', or 'strokeWidth'. The schema itself lacks descriptions for many parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Add Trim Paths to a shape layer and animate it so the stroke draws on.' It specifies the resource (shape layer), the verb (add trim paths and animate), and the scope (by default animate, add stroke if none). This distinguishes it from sibling tools like ae_add_effect or ae_animate_transform.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context: 'Best on shapes made by ae_create_shape.' This implies when to use the tool for optimal results, but it does not explicitly state when not to use or mention alternatives like using ae_add_effect with trim paths manually.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_animate_cameraA
Keyframe a camera's position and/or point of interest between two 3D points — a dolly / push-in / pan. If no camera name is given, the first camera in the comp is used.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| camera | No | Camera layer name. Defaults to the first camera. | |
| positionFrom | No | [x,y,z] start position. | |
| positionTo | No | [x,y,z] end position. | |
| pointOfInterestFrom | No | [x,y,z] start look-at point. | |
| pointOfInterestTo | No | [x,y,z] end look-at point. | |
| startTime | No | ||
| endTime | No | ||
| easing | No | easeInOut |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It discloses that keyframes are created and default camera selection. But it omits side effects like whether existing keyframes are replaced, whether a camera is created if missing, or if the tool modifies comp timeline. More behavioral detail would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. First sentence defines core function with examples, second specifies default behavior. Well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, no output schema, and no annotations, the description is functional but incomplete. It could mention that keyframes are added to the camera layer's position/pointOfInterest properties, clarify behavior when both position and POI are omitted, and note compatibility with existing keyframes. Lacks details on outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 56%, so description should add value beyond schema. It explains the overall action and default camera, but does not elaborate on parameters like startTime, endTime, or easing beyond what schema provides. The description adds minimal semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool animates a camera's position/or point of interest between two 3D points, using terms like 'keyframe', 'dolly/push-in/pan'. It also specifies default behavior with camera name. This distinguishes it from sibling tools like ae_add_camera or ae_animate_transform.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies when to use (to animate camera between points) and provides fallback for unnamed camera. However, it does not explicitly state when not to use this tool versus siblings like ae_animate_transform for camera property animation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_animate_maskA
Keyframe a mask's expansion or feather between two values — e.g. animate expansion from a small value to large to wipe a layer on/off.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | ||
| mask | No | Mask name or 1-based index on the layer. | |
| property | No | expansion | |
| from | Yes | ||
| to | Yes | ||
| startTime | No | ||
| endTime | No | ||
| easing | No | easeInOut |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description discloses that the tool sets keyframes on mask expansion or feather over a time range with easing, which is helpful. However, it does not mention potential side effects (e.g., overwriting existing keyframes) or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with an example conveys the core action efficiently. It is front-loaded with the key operation and has no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters and no output schema, the description is too brief. It covers only the essential concept (animating expansion/feather) but omits explanations for common parameters like comp, layer, startTime, endTime, and easing, making it incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (11%). The description adds meaning for 'property' (expansion/feather) and 'from/to' values via the example, but does not explain 'comp', 'layer', 'startTime', 'endTime', or 'easing' beyond what the schema provides. It compensates partially but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Keyframe') and resource ('mask's expansion or feather') with a practical example. It distinguishes from sibling tools like ae_add_mask and ae_animate_transform by specifying the exact properties animated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for animating mask properties but provides no explicit when-to-use, when-not-to-use, or alternatives. Sibling tools exist (e.g., ae_animate_transform) but no guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_animate_time_remapA
Keyframe Time Remapping on a layer — each key maps a comp time to a source time (slow-mo, speed-up, freeze, reverse). Enables time remapping first if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | ||
| keys | Yes | ||
| easing | No | linear |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full burden. It discloses that it enables time remapping if not already active and explains the meaning of keys. It lacks details on side effects or limitations, but the core behavior is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose, no extraneous information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations. The description covers the main functionality but lacks details on return values, error handling, or supported layer types. Given the complexity, more completeness is warranted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. It explains the 'keys' parameter (each key maps comp time to source time) but does not mention 'easing' or the 'comp' parameter. Although 'at' and 'source' have descriptions in the schema, the tool description adds value by contextualizing them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it keyframes time remapping, mapping comp time to source time for effects like slow-motion, speed-up, freeze, and reverse. It differentiates well from sibling tools like ae_enable_time_remap by focusing on keyframing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides specific use cases (slow-mo, speed-up, freeze, reverse) and notes that it enables time remapping if needed. However, it does not explicitly mention when to use the simpler ae_enable_time_remap instead, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_animate_transformA
Keyframe a transform property (position / scale / rotation / opacity) from one value to another between two times, with an easing preset. The general-purpose 'move this from A to B smoothly' tool. If from is omitted it defaults to a sensible rest value (position→comp centre, scale→100%, rotation→0°, opacity→0%) — pass it explicitly to start somewhere else.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | ||
| property | Yes | ||
| to | Yes | Target value. Number for rotation/opacity (or to set all scale axes uniformly); [x,y] for position/scale. | |
| from | No | Start value. Defaults to a rest value for the property. | |
| startTime | No | ||
| endTime | No | ||
| easing | No | easeInOut | |
| influence | No | Ease influence % (Easy Ease ≈ 33). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains default values for `from` and mentions easing, but does not disclose whether existing keyframes are overwritten, error behavior, or other side effects. The added context is useful but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the purpose and following with critical default behavior. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, no output schema, and no annotations, the description covers the core functionality but omits details about timing parameters and the full set of easing options. It is adequate but leaves room for more comprehensive guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%. The description adds meaning by detailing default `from` values per property and listing the property enum, but does not explain `comp`, `layer`, `startTime`, `endTime`, `easing` details, or `influence` beyond schema. It compensates partially but insufficiently for low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool keyframes a transform property (position, scale, rotation, opacity) from one value to another, and explicitly labels it as the general-purpose 'move this from A to B smoothly' tool, distinguishing it from sibling animation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description sets context by calling it 'general-purpose' for smooth transitions, but does not explicitly state when to avoid using it or name specific alternatives. However, the sibling list provides implicit differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_create_null_pathA
Move a layer along a (optionally curved) path the safe way: create an invisible Null whose pivot the layer is pinned to, parent the layer to the Null, and keyframe the Null's position through your points. When the Null is stationary the layer can't drift — which raw curved keyframes on the layer itself would cause. NOTE: the layer is repositioned to ride the Null, so make points[0] its desired start.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | The layer to move. | |
| points | Yes | Path points [[x,y], ...] the layer travels through, in order. points[0] is where the layer starts. | |
| startTime | No | ||
| endTime | No | ||
| curved | No | Auto-bezier the spatial path (vs. straight linear segments). | |
| nullName | No | Defaults to '<layer> PATH'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It explains the mechanism (creating Null, parenting, keyframing) and warns about layer repositioning. It also mentions auto-bezier for curved paths. This is sufficient behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences and a note, no fluff, front-loaded with purpose. Every part adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers the tool's purpose, mechanism, and a key usage warning. It lacks information about default values for nullName and any return value, but is still fairly complete for a creative tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 57% (4 of 7 params have descriptions). The description adds context for points (points[0] is start position) but does not compensate for comp, startTime, endTime which lack schema descriptions. The description adds marginal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool moves a layer along a path by creating a Null and keyframing it, explicitly distinguishing from raw curved keyframes which cause drift.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool (safe path movement) vs raw keyframes, and gives a usage note about points[0] being the desired start. However, it does not explicitly mention when not to use it or compare with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_create_precompA
Precompose layers into a new composition (a 'scene') — keeps things organised and lets you apply effects/transforms to a whole group at once.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | The comp the layers currently live in. | |
| layers | Yes | Names of the layers to precompose. | |
| name | No | Scene | |
| moveAllAttributes | No | Move attributes (effects/transforms) into the new comp. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the core behavior (precomposing layers into a new comp) but does not disclose what happens to the original layers, whether the operation is reversible, or other side effects. Basic behavior is clear, but deeper transparency is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action and benefit. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no output schema) and high schema coverage, the description captures the essence but omits important behavioral details such as whether the original layers are replaced by the new precomp, nesting behavior, or typical use steps. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so baseline is 3. The description adds minimal extra meaning beyond the schema; it mentions 'apply effects/transforms' which relates to moveAllAttributes, but does not elaborate on parameter details like the purpose of 'name' or 'comp'. The schema already covers parameter descriptions adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'precompose' and resource 'layers', clearly stating the action of grouping layers into a new composition. It also explains the benefit (keeps organized, apply effects to whole group), which distinguishes it from sibling tools like ae_add_layer_to_comp.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for organizing layers and applying effects/transforms to a group, but does not explicitly state when not to use or compare to alternatives. It gives clear context but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_create_shapeB
Add a shape layer (rounded rectangle or ellipse) with a solid fill — e.g. a UI button or a background frame. Position is the layer's transform position; the shape geometry is drawn around it.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | Composition name. Defaults to the active comp. | |
| name | No | Shape | |
| kind | No | rect | |
| size | No | [width, height] of the shape geometry. | |
| position | No | Layer position. Defaults to comp center. | |
| color | No | Fill colour as [r, g, b] in 0–1. | |
| roundness | No | Corner radius (rect only). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It states that position is the layer's transform position and geometry is drawn around it, which gives some insight. However, it does not disclose side effects, required permissions, or behavior when parameters are omitted. For a tool with no annotations, more transparency is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the purpose with a clear verb and examples. It is efficient with no wasted words, though it could be slightly expanded to cover behavioral aspects without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters and no output schema, the description is too sparse. It does not explain default behaviors, parameter interactions (e.g., roundness only for rect), or what is returned. The tool's complexity demands more complete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 71%, so baseline is 3. The description adds that the shape geometry is drawn around the position, but otherwise repeats information already in the schema. It does not add significant meaning beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it adds a shape layer (rounded rectangle or ellipse) with solid fill, and gives concrete examples (UI button, background frame). It distinguishes from siblings like 'ae_create_solid' by focusing on geometry, but does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides basic usage context ('e.g. UI button or background frame') but does not specify when not to use it or mention alternatives such as 'ae_create_solid'. No explicit guidance on choosing this over sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_create_solidB
Add a solid-colour layer — handy as a background or a colour wash. Defaults to comp size.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| name | No | Solid | |
| color | No | ||
| width | No | Defaults to comp width. | |
| height | No | Defaults to comp height. | |
| position | No | Defaults to comp center. | |
| opacity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral traits. It only mentions 'Defaults to comp size' but does not disclose side effects, permissions, or what happens if parameters are omitted. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The purpose is front-loaded, and the default behavior is noted concisely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, and no annotations, the description is incomplete. It does not explain the 'comp' parameter, the color format, or what the tool returns. The description is too sparse for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (43%), and the description does not add detail about any parameters beyond the schema. The 'Defaults to comp size' hint is already captured in width/height descriptions. The description fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add a solid-colour layer') and provides typical use cases ('handy as a background or a colour wash'). It distinguishes from siblings by specifying 'solid-colour layer' among other layer addition tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage scenarios (background or colour wash) but does not explicitly state when to use this tool over alternatives or provide any exclusions. It offers minimal guidance beyond the examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_create_textA
Add a plain text layer (no animator). For an animated reveal use ae_add_text_reveal instead.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| text | Yes | ||
| name | No | Defaults to the text content. | |
| position | No | Defaults to comp center. | |
| fontSize | No | ||
| color | No | ||
| font | No | PostScript font name, e.g. 'Inter-Bold'. | |
| justification | No | center |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It states 'Add a plain text layer (no animator)' implying a write operation, but lacks details on prerequisites, side effects, or error conditions. It could be more transparent but is adequate for a simple creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loading the main purpose and then providing a clear alternative. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters with low schema coverage and no output schema, the description is minimal. It covers the key functional distinction but does not explain return values, prerequisites, or constraints (e.g., comp existence). Adequate but incomplete for a comprehensive understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38% (3 out of 8 params have descriptions), and the tool description does not add any parameter-level details. It fails to compensate for the low coverage, leaving many parameters unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it adds a plain text layer without animator, and explicitly distinguishes from the sibling ae_add_text_reveal for animated reveals. The verb 'Add' and resource 'plain text layer' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool (plain text layer) and when not (animated reveal, use ae_add_text_reveal instead), providing clear context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_enable_time_remapA
Enable Time Remapping on a layer whose source has a duration (footage, comp/precomp). Then keyframe it with ae_animate_time_remap for speed ramps / freeze frames.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It states the action and precondition but does not disclose any side effects, permissions, or error conditions. Basic transparency is present but 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with action, no extraneous words. Efficiently provides key information and hints at next steps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple enable tool with two parameters, description covers precondition and recommended next tool. It does not explain return values or errors, but these are likely minimal. Adequate given tool complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and description does not explain the parameters 'comp' or 'layer'. It adds no meaning beyond the schema, failing to compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (enable time remapping), the resource (a layer), and the prerequisite (source must have duration). It distinguishes from sibling tool ae_animate_time_remap for keyframing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly suggests using ae_animate_time_remap for keyframing after enabling, implying when to use this tool. However, it doesn't explicitly state when not to use it (e.g., if source has no duration), though it implies it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_evalA
Escape hatch: run arbitrary ExtendScript inside After Effects. The code may return a value. Helpers under OSR are available (OSR.comp, OSR.layer, OSR.tprop, ...). Prefer the specific tools when one fits.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ExtendScript / After Effects scripting code to execute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions return value and helpers but lacks disclosure of safety risks, side effects, or sandboxing behavior associated with running arbitrary code.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a note, front-loaded with purpose and usage guidance. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a powerful escape hatch with no output schema or annotations, the description covers purpose and usage but omits error handling, security considerations, and result format details, making it adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the 'code' parameter, but the description adds value by explaining the return value possibility and listing helper objects (OSR.comp, OSR.layer, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'run arbitrary ExtendScript inside After Effects,' with a specific verb and resource. It also distinguishes from sibling tools by advising to prefer specific tools when one fits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when-to-use ('escape hatch') and when-not-to-use ('prefer the specific tools') guidance, along with mention of available helpers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_import_mediaC
Import an image / video / audio file into the project, and optionally place it in a composition.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Absolute path to the media file. | |
| addToComp | No | ||
| comp | No | Target comp when addToComp is true. Defaults to the active comp. | |
| position | No | Layer position when added. Defaults to comp center. | |
| scaleToFit | No | Scale the layer to cover the comp frame. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It does not mention side effects, error handling, supported file types, or the behavior of the optional placement (e.g., what happens if the composition doesn't exist). This is insufficient for a tool with 5 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, consisting of two sentences that front-load the main action. It is efficient but could be improved by including more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks completeness given the tool's complexity (5 parameters, no output schema). It omits return values, error states, and specific behaviors for parameters like comp or scaleToFit. More context is needed for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 80%, the description adds no meaningful parameter semantics beyond 'optionally place it in a composition'. The schema already documents each parameter's purpose, so the description provides no additional clarity or usage tips.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: importing media files (image/video/audio) into the project and optionally placing them in a composition. It uses specific verbs and identifies the resource, distinguishing it from sibling tools like ae_add_layer_to_comp which handle existing layers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, prerequisites, or typical use cases. The description only states what it does, leaving the agent to infer context from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_link_propertyB
Pick-whip one property to another via an expression — e.g. link an icon's Scale to its container's Scale so they always match. Defaults the target property to the same name as the source property.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | ||
| property | Yes | ||
| targetLayer | Yes | ||
| targetProperty | No | Defaults to the same as `property`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral disclosure. It states the tool creates an expression link, but does not mention that it modifies the property expression, or whether it overwrites existing expressions. It also does not specify required permissions or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise (two sentences plus a brief example) but could be more structured. It front-loads the core action but the example is woven into the first sentence, which may reduce clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, no output schema, and no annotations, the description fails to cover important context like what happens after the expression is applied, preconditions (e.g., comp and layer must exist), or error states. It is insufficient for a complex mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (only targetProperty has a description). The description adds value by noting that targetProperty defaults to the same as property, but does not explain the other parameters (comp, layer, property, targetLayer). With low schema coverage, the description should compensate more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool links one property to another via an expression, with a concrete example (linking an icon's Scale to its container's Scale). It also mentions defaulting the target property to the same name as the source. This distinguishes it from sibling tools like ae_add_bounce_expression or ae_animate_transform, which do different things.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a specific use-case example but does not explicitly state when to use this tool versus alternatives like ae_parent_layer or ae_animate_transform. It lacks exclusion criteria or context about when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_morph_sizeA
Animate a shape's Size on one axis independently (the 'constrain proportions OFF' trick) — so a moving button can look like it physically stretches a background frame. Keyframes the layer's first rectangle/ellipse Size between two times.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | Name of the shape layer. | |
| to | Yes | Target [width, height]. | |
| from | No | Start [width, height]. Defaults to the current value. | |
| startTime | No | ||
| endTime | No | ||
| ease | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits: it works on the first rectangle/ellipse of a layer, animates Size between two times, and may include easing (implied by 'ease' parameter). However, it does not address edge cases (e.g., missing shape, multiple shapes), or clarify if it modifies existing keyframes or is destructive. With no annotations, the description partially but not fully compensates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first explains the core concept and use case, the second specifies the keyframing action. No redundant or irrelevant information; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no annotations, and no output schema, the description covers the primary purpose and key parameters but lacks details on timing parameters (startTime, endTime, ease), the role of 'comp', and potential side effects. It is adequate for basic understanding but not fully complete for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to 'to' and 'from' parameters as [width, height] pairs and mentions that 'from' defaults to current value. It also hints at the 'constrain proportions OFF' behavior, which relates to independent axis sizing. However, schema coverage is only 43%, and the description does not explain 'comp', 'startTime', 'endTime', or 'ease' beyond their names and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool animates a shape's Size on one axis independently, using the 'constrain proportions OFF' trick. It specifies the resource (shape's first rectangle/ellipse Size) and the action (keyframing between two times), distinguishing it from siblings like ae_animate_transform that animate Transform properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a concrete use case ('so a moving button can look like it physically stretches a background frame') and implies use for non-uniform shape size animation. However, it does not explicitly mention when not to use it or compare with alternatives like ae_animate_transform for size changes, so it lacks full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_parent_layerA
Parent one layer to another (the layer-level 'pick whip'): the child then inherits the parent's transforms. Pass parent=null to unparent. Visual position is preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| child | Yes | ||
| parent | No | Parent layer name, or null/empty to unparent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses key behaviors: inheritance of transforms and preservation of visual position. It explains unparenting. However, it does not state if the operation is destructive or reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences cover the essential purpose, behavior, and usage, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description adequately explains the tool's function and key behaviors. It could mention that layers must belong to the same comp, but that is implied by the 'comp' parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (33%), but the description adds meaning for the 'parent' parameter (null to unparent) and mentions 'visual position preserved', enhancing understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: parent one layer to another, inheriting transforms. It distinguishes from siblings by specifying it's the layer-level 'pick whip' operation, similar to parenting in AE but not to property linking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: 'child inherits parent's transforms' and 'pass parent=null to unparent'. It implies when to use but does not explicitly mention alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_render_compA
Render a composition to a video file via the Render Queue. Blocking — can take a while. Returns the output path on success.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| outputPath | Yes | Absolute output path, e.g. /tmp/showreel.mov or .mp4. | |
| template | No | Output Module template name to apply (varies by install, e.g. 'H.264 - Match Render Settings - 15 Mbps'). Optional — falls back to the install default. | |
| renderSettingsTemplate | No | Render Settings template name. Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses blocking behavior and return of output path, but with no annotations, more context is needed: prerequisites, side effects, error handling, authorization.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero wasted words, front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and description only minimally explains return value. Ignores error scenarios, prerequisites, and blocking implications. Incomplete for a rendering tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 75% of parameters with descriptions, but the comp parameter lacks description both in schema and tool description. No additional meaning added beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it renders a composition to a video file via the Render Queue. Verb 'render' and resource 'composition' are specific, and it distinguishes from sibling tools like ae_render_frame.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for rendering video files, but no explicit when-to-use or alternatives. Mentions blocking nature, which is useful but insufficient for distinguishing from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_render_frameA
Render a single frame of a composition to a PNG and return its file path — use it to actually look at what you've built. Fast (no Render Queue).
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| time | No | Time in seconds of the frame to capture. | |
| outputPath | No | Absolute .png path. Defaults to a timestamped file in the OS temp dir. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It mentions 'Fast (no Render Queue)' but does not disclose side effects, permissions, error handling, or whether the composition is modified. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, followed by usage hint. Every word adds value, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no output schema, the description covers purpose, usage, and parameter hints. It lacks mention of return value format (just 'file path') and that 'comp' is likely required. Relatively complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% (time, outputPath have descriptions). The description adds no new semantics beyond the schema; it implies 'comp' is a composition but does not clarify if it is required or defaults. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'render', the resource 'a single frame of a composition', and the output 'PNG file path'. It distinguishes from sibling tools like 'ae_render_comp' and 'ae_render_frames' by specifying single frame.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for when to use ('actually look at what you've built') and a performance hint ('Fast (no Render Queue)'). It does not explicitly mention when not to use or alternative tools, but the sibling set implies alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_render_framesA
Render several frames of a composition to PNGs at once — use it to review motion across a range of times. Returns the saved file paths.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| times | Yes | Times in seconds to capture. | |
| outputDir | No | Directory for the PNGs. Defaults to the OS temp dir. | |
| prefix | No | openshowreel-frame |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions output (saved file paths) and default temp directory, but lacks details on whether rendering is synchronous, whether it overwrites existing files, or if it requires specific permissions. This is adequate but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose and use case, second states return value. No extra words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters (1 required) and no output schema, the description is somewhat incomplete. It explains the purpose and return format, but does not describe the 'comp' parameter or the 'prefix' parameter's purpose. Gaps remain, but the core concept is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%; the description adds context for times ('range of times') and output ('PNGs'), but does not explain the 'comp' or 'prefix' parameters beyond what the schema provides. The value added over the schema is minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Render', the resource 'several frames of a composition', and the output format 'PNGs'. It also distinguishes itself from siblings like ae_render_frame (single frame) and ae_render_comp (whole comp) by specifying 'several frames' and 'range of times'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: 'to review motion across a range of times'. While it does not explicitly state when not to use it or name alternatives, the sibling list includes ae_render_frame for single frames, making the distinction implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_save_projectA
Save the After Effects project (.aep). Pass a path to save-as / create the file; omit it to save in place (requires the project to already have a file).
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Absolute .aep path. Omit to save in place. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the prerequisite for saving in place but does not mention whether saves are overwritten, if the operation is reversible, or if it returns any success/failure feedback. For a simple save operation, a 3 is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences with zero waste. It front-loads the purpose and then explains the two modes and their conditions. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one optional parameter, no output schema, and the simple domain of file saving, the description covers the essential modes and prerequisite. It could mention return values (e.g., success/error) for completeness, but the current level is nearly sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds meaningful context beyond the schema: it explains that providing a path creates or saves as a new file, while omitting it saves in place only if the project already has a file. This clarifies the parameter's behavior and prerequisites.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Save the After Effects project (.aep)' and distinguishes between save-as with a path and save in place without it. This specific verb+resource combination sets it apart from sibling tools that deal with adding effects, layers, or animations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to provide a path (save-as/create) and when to omit it (save in place), including a prerequisite (file must already exist). While it doesn't list when not to use the tool or alternatives, the context signals and sibling tools make the use cases clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_scene_infoA
Inspect the After Effects project: lists every composition with its size, frame rate, duration, motion-blur state, and layers (with parents). Use this first to see what exists.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description clearly states what the tool returns (list of compositions with properties) and implies it is non-destructive ('inspect'). It does not explicitly confirm no side effects, but the behavior is well-specified for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first details output, second provides usage advice. No wasted words, front-loaded with the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description details the output structure (size, frame rate, duration, motion-blur, layers with parents). It fully specifies what the agent will get from this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the description explains the tool's output comprehensively. With 0 parameters, the baseline is 4, and the description adds context about what will be retrieved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'inspect' to clearly state the tool's purpose: listing compositions with detailed attributes (size, frame rate, duration, etc.). It distinguishes from sibling tools that are for creation or modification, making it clear this is a read-only discovery tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises 'Use this first to see what exists,' which is a strong usage guideline. It doesn't exclude use cases, but the context implies it's for initial inspection, earning a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_set_blend_modeC
Set a layer's blending mode (normal, multiply, screen, overlay, add, lighten, darken, soft-light, hard-light, color-dodge, color-burn, difference, luminosity).
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | ||
| mode | No | normal |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for disclosing behavioral traits. It fails to mention that the operation modifies an existing layer, potential reversibility, or any side effects. It only lists the mode options without clarifying the nature of the update.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately states the action and lists options. It is front-loaded and free of fluff, but could benefit from slightly more structure to improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and multiple siblings, the description is insufficient. It lacks details about required parameters, input formats, return value, and when to use. While the tool is simple, the description does not fully equip an agent to use it correctly in diverse contexts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain parameters. It adds value for the 'mode' parameter by listing valid values (though using hyphens vs underscores inconsistently), but it provides no explanation for 'comp' or 'layer' (e.g., what they represent, format, or if defaults apply).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set a layer's blending mode', specifying the verb and resource. It lists the allowed modes, distinguishing it from sibling tools that add layers or effects. However, it could be more precise by including 'in a composition' to fully specify the context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., ae_set_effect_param or other layer modifications). No prerequisites or context provided. The description only states what it does, not when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_set_easingA
Re-ease the existing keyframes of a transform property with a preset (linear / easeIn / easeOut / easeInOut / hold). Use after manual keyframing, or to dial in the feel of an already-animated property.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | ||
| property | Yes | ||
| easing | No | easeInOut | |
| influence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the burden. It states it re-eases existing keyframes, implying non-destructive modification, but does not explain scope (all keyframes or selected), side effects, or permissions. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no redundancy. Front-loaded with the core action and purpose. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and no annotations, the description provides the essential purpose and usage context but lacks details on parameters and return behavior. It is minimally complete for a simple tool but could elaborate on the effect of the 'influence' parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds minimal parameter detail. It mentions 'transform property' and 'preset' but does not explain 'influence' or the exact meaning of each easing preset. Relies heavily on schema enums and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 're-ease', the resource 'existing keyframes of a transform property', and specifies the presets available. It distinguishes from siblings by focusing on modifying existing keyframes rather than adding new ones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: 'Use after manual keyframing, or to dial in the feel of an already-animated property.' While it doesn't list alternatives, the sibling tools like `ae_animate_transform` imply differentiation. Missing when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_set_effect_paramB
Set a parameter of an effect on a layer (or keyframe it at a time). Reference the effect and parameter by name or 1-based index.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | ||
| effect | Yes | Effect name or index on the layer. | |
| param | Yes | Parameter name or index within the effect. | |
| value | Yes | New value. Number/boolean for sliders/checkboxes/angles; [x,y] for points; [r,g,b] or [r,g,b,a] for colours. | |
| atTime | No | If given, set as a keyframe at this time instead of a static value. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions referencing by name or 1-based index, which adds transparency. However, it does not disclose error behavior (e.g., missing effect/parameter), whether values overwrite or merge, or the effect on existing keyframes. Adequate but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the core action, with no redundant information. Every part adds value (set effect param, keyframing option, referencing by name/index).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite moderate schema coverage, the description does not explain return values (none in output schema), does not mention the comp and layer parameters, and lacks details on error handling or state changes. For a 6-parameter tool with no output schema, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies that effect and parameter can be referenced by name or '1-based index', which is not explicit in the schema (though schema uses exclusiveMinimum:0). It also mentions keyframing 'at a time'. Schema coverage is 67% (4 of 6 params have descriptions), so the description partially compensates but does not cover comp or layer parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Set a parameter of an effect on a layer (or keyframe it at a time).' It specifies the verb ('set'), resource ('parameter of an effect on a layer'), and includes the keyframing option. This distinguishes it from sibling tools like ae_add_effect which add effects rather than modify parameters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., effect must exist) or when to avoid using it. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_set_layer_3dA
Toggle a layer's 3D switch (or every layer in the comp). Required before a camera move affects 2D layers.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | No | A single layer. Ignored if allLayers is true. | |
| allLayers | No | Apply to every layer in the comp. | |
| enabled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It says 'Toggle' but does not clarify if the function flips the state or sets it absolutely. The 'enabled' parameter defaults to true, but the description is silent on this behavior. Some ambiguity remains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded with the action. Every word serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters and no output schema, the description is mostly adequate but lacks explanation for the 'comp' and 'enabled' parameters. It does not describe what happens when 'enabled' is omitted (defaults to true). For a simple tool, it covers the core action but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%; the schema describes 'layer' and 'allLayers' but not 'comp' or 'enabled'. The tool description adds minimal information beyond the schema: it explains that allLayers applies to every layer, but does not cover comp or enabled. The meaning of 'enabled' (default true) is not explained, so parameter semantics are insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Toggle', the resource 'layer's 3D switch', and the scope 'every layer in the comp'. This distinguishes it from sibling tools like ae_set_blend_mode or ae_add_camera, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'Required before a camera move affects 2D layers', giving a clear when-to-use hint. However, it does not mention when not to use or alternatives, which is acceptable for a straightforward toggle operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_set_track_matteA
Use the layer directly above as a track matte for this layer (alpha or luma, normal or inverted). Pass 'none' to clear it. The matte layer should be just above the target in the layer stack.
| Name | Required | Description | Default |
|---|---|---|---|
| comp | No | ||
| layer | Yes | The layer that gets matted (the one below). | |
| type | No | alpha |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry the burden. It discloses the positional requirement and the ability to clear the matte, but does not mention error conditions (e.g., missing layer above) or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, no unnecessary words. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main operation and positional requirement but omits return value, error handling, and behavior for edge cases. Adequate for a simple tool but leaves some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (33% only layer described). The description adds meaning for 'layer' (the one below) and 'type' (enum values implied), but 'comp' remains undocumented. Partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets a track matte using the layer directly above, with options for alpha/luma and normal/inverted, and clearing with 'none'. This is specific and distinguishes it from sibling tools like ae_set_blend_mode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use when you need a track matte from the layer above. It explains how to clear it with 'none'. However, it does not explicitly state when not to use or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ae_setup_compB
Create a composition configured for premium motion: 60 fps and motion blur ON by default — the baseline 'buttery smooth' look. Returns the comp name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Showreel | |
| width | No | ||
| height | No | ||
| fps | No | Frame rate. 60 is the recommended showreel default. | |
| durationSeconds | No | ||
| motionBlur | No | ||
| pixelAspect | No | ||
| makeActive | No | Open the new comp in the viewer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses creation of comp with 60fps and motion blur, and returns comp name, but omits that it opens the comp in the viewer (makeActive default true) and other side effects. No annotations to supplement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff, but could be more structured (e.g., separate key benefits and usage).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters and no output schema or annotations, the description is too minimal, missing many defaults and return behavior beyond 'comp name'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 2 of 8 parameters have descriptions in schema (fps, makeActive). The description adds no parameter details, failing to compensate for low 25% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a composition with specific settings (60fps, motion blur on) for a 'buttery smooth' look, distinguishing it from sibling tools that add effects or layers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied use for premium motion comps but no explicit when-to-use or when-not-to-use guidance, nor mention of alternatives like ae_create_precomp.
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.
43 tool updates
v0.1.0- First observed
ae_add_adjustment_layer - First observed
ae_add_bounce_expression - First observed
ae_add_button_press - First observed
ae_add_camera - First observed
ae_add_device_frame - First observed
ae_add_drop_shadow - First observed
ae_add_effect - First observed
ae_add_fade - First observed
ae_add_gaussian_blur - First observed
ae_add_glow - First observed
ae_add_layer_to_comp - First observed
ae_add_markers - First observed
ae_add_mask - First observed
ae_add_master_camera - First observed
ae_add_text_reveal - First observed
ae_add_timing_offset - First observed
ae_add_trim_path - First observed
ae_animate_camera - First observed
ae_animate_mask - First observed
ae_animate_time_remap - First observed
ae_animate_transform - First observed
ae_create_null_path - First observed
ae_create_precomp - First observed
ae_create_shape - First observed
ae_create_solid - First observed
ae_create_text - First observed
ae_enable_time_remap - First observed
ae_eval - First observed
ae_import_media - First observed
ae_link_property - First observed
ae_morph_size - First observed
ae_parent_layer - First observed
ae_render_comp - First observed
ae_render_frame - First observed
ae_render_frames - First observed
ae_save_project - First observed
ae_scene_info - First observed
ae_set_blend_mode - First observed
ae_set_easing - First observed
ae_set_effect_param - First observed
ae_set_layer_3d - First observed
ae_set_track_matte - First observed
ae_setup_comp
TDQS
Scored across 43 tools
Each tool targets a distinct After Effects operation with clear, detailed descriptions that prevent confusion. Even tools like ae_add_effect and ae_add_gaussian_blur are differentiated by generality vs. specificity, and ae_animate_transform vs. ae_morph_size have well-defined boundaries.
All tools follow the consistent pattern 'ae_<verb>_<noun>', such as ae_add_adjustment_layer, ae_animate_camera, and ae_setup_comp. No mixing of conventions, making the tool set highly predictable.
With 43 tools, the server exceeds the 'too many' threshold (25+) defined in the rubric. While the domain of After Effects is complex, the tool count is heavy and could overwhelm an agent, reducing focus on core workflows.
The tool set covers a wide range of After Effects tasks: adding layers, effects, animations, masks, cameras, rendering, and project management. Minor gaps exist (e.g., no direct text style manipulation or advanced expression editing), but core motion graphics workflows are well-supported.
Maintenance
Related MCP Connectors
An MCP server that integrates with Discord to provide AI-powered features.
MCP server for Wan AI video generation
MCP server for Luma Dream Machine AI video generation
MCP server for Google Veo AI video generation
Related MCP Servers
- AlicenseCqualityFmaintenanceA Model Context Protocol (MCP) server for Adobe After Effects that enables AI assistants and other applications to control After Effects through a standardized protocol.3213101 npm619MIT
- AlicenseAqualityCmaintenanceAn MCP server that allows AI agents to control Adobe After Effects, enabling project inspection, composition creation, layer addition, file import, ExtendScript execution, and rendering via aerender.11MIT
- AlicenseCqualityCmaintenanceMCP server for controlling Adobe After Effects, enabling AI assistants to create compositions, manage layers, and animate properties.13101 npmMIT
- AlicenseBqualityBmaintenanceA production-minded Model Context Protocol server for Adobe After Effects that enables AI agents to control motion graphics, editorial planning, and rendering.4817 npm4MIT