After Effects MCP Server
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., "@After Effects MCP Servercreate a 1080p composition and add a fade-in text layer"
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.
After Effects MCP (Model Context Protocol) Server
Languages / 语言版本:
中文安装与使用教程
针对 Adobe After Effects(2025 / 2026 / CC)的专业级 Model Context Protocol (MCP) 服务端。提供合成管理、图层变换、空间速度缓动曲线、插件与特效系统、3D图层/灯光/材质、专业电影级摄像机运镜、素材导入、帧截图导出、低清预览视频导出,以及自带自动保存与一键回滚机制。
配备专用的 ExtendScript ScriptUI 后台面板,无需人工点击任何按钮,实现 100% 全自动指令监听与毫秒级执行。
快速安装步骤
步骤 1:下载并安装 AE 桥接脚本
可以选择 自动安装 或 手动安装:
方法 A:自动安装(推荐)
如果您克隆了源码,在终端运行内置安装脚本即可自动查找本机 AE 并复制脚本:
git clone https://github.com/tzdwindows/after-effects-mcp.git
cd after-effects-mcp
npm install
npm run build
npm run install-bridge方法 B:手动下载与安装(从 Release 下载)
前往 Releases 页面 下载
mcp-bridge-panel-v1.0.0.zip。解压得到
mcp-bridge-auto.jsx文件。将该文件复制到您的 After Effects 安装目录下的
ScriptUI Panels文件夹中:Windows 默认路径:
C:\Program Files\Adobe\Adobe After Effects <版本>\Support Files\Scripts\ScriptUI Panels\(例如:D:\AE2026\Adobe After Effects 2025\Support Files\Scripts\ScriptUI Panels\)macOS 默认路径:
/Applications/Adobe After Effects <版本>/Scripts/ScriptUI Panels/
步骤 2:配置 After Effects 脚本权限
打开 Adobe After Effects。
进入首选项设置:
Windows:菜单栏点击 编辑 (Edit) -> 首选项 (Preferences) -> 脚本和表达式 (Scripting & Expressions)。
macOS:菜单栏点击 After Effects -> 首选项 (Preferences) -> 脚本和表达式 (Scripting & Expressions)。
勾选 “允许脚本写入文件和访问网络” (Allow Scripts to Write Files and Access Network)。
点击“确定”保存设置。
步骤 3:在 AE 中启动桥接面板
在 After Effects 顶部菜单栏点击 窗口 (Window)。
在下拉菜单底部找到并点击
mcp-bridge-auto.jsx。面板打开后,您可将其停靠在工作区任意位置(如合成窗口旁或控制面板组中)。
面板会自动建立心跳并开始监听,保持面板开启即可,全程无需任何手动操作。
步骤 4:在 MCP 客户端中配置
根据您使用的 AI 客户端添加以下配置:
1. Claude Desktop
编辑配置文件(Windows: %APPDATA%\Claude\claude_desktop_config.json,macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"after-effects": {
"command": "node",
"args": [
"D:\\cppp\\after-effects-mcp\\dist\\index.js"
]
}
}
}2. Antigravity / Cursor / Cline
在客户端的 MCP 配置文件中添加:
{
"mcpServers": {
"after-effects": {
"command": "node",
"args": [
"D:/cppp/after-effects-mcp/dist/index.js"
]
}
}
}Related MCP server: after-effects-mcp
常用功能与工具示例
工具名称 | 功能描述 |
| 创建指定宽高、帧率、时长的合成 |
| 重命名指定或当前活动的合成 |
| 动态修改合成分辨率、时长、帧率、背景色 |
| 创建 2D/3D 文本图层(字号、字距、字体、填色/描边、居中对齐、直接附加发光等特效) |
| 添加逐字打字机、3D字符翻转、弹跳缩放、波浪抖动等全套文字动画器 |
| 创建电影级 3D 摄像机并执行环绕 (Orbit)、推拉 (Dolly)、横移 (Truck)、手持微晃 (Handheld) 等运镜 |
| 精确调节速度曲线影响度 (Influence) 与速度 (Speed),内置 |
| 添加与修改内置或第三方插件(Glow、Trapcode、Sapphire、Element 3D 等) |
| 截取合成指定时刻的完整画面并生成 PNG 截图快照 |
| 快速导出指定帧区间的低清预览视频 |
| 撤销上一步操作并安全恢复工程 |
English Installation and Usage Guide
A production-ready Model Context Protocol (MCP) server for Adobe After Effects (2025 / 2026 / CC). Enables direct AI control over compositions, layer hierarchies, spatial Bézier speed curves, 3D lights, material shaders, cinematic camera rigs, text animators, asset imports, frame snapshots, and preview video rendering with automatic project backup and rollbacks.
Includes a dedicated ExtendScript ScriptUI panel providing 100% automated background execution with sub-second response times and zero manual button clicking.
Quick Installation
Step 1: Install AE Bridge Panel Script
Choose either Automatic or Manual installation:
Option A: Automatic Installation (Recommended)
If you have cloned the repository, run the built-in installer:
git clone https://github.com/tzdwindows/after-effects-mcp.git
cd after-effects-mcp
npm install
npm run build
npm run install-bridgeOption B: Manual Installation (From GitHub Release)
Go to the Releases page and download
mcp-bridge-panel-v1.0.0.zip.Extract
mcp-bridge-auto.jsx.Copy
mcp-bridge-auto.jsxinto your After EffectsScriptUI Panelsfolder:Windows:
C:\Program Files\Adobe\Adobe After Effects <version>\Support Files\Scripts\ScriptUI Panels\macOS:
/Applications/Adobe After Effects <version>/Scripts/ScriptUI Panels/
Step 2: Configure Scripting Permissions in After Effects
Open Adobe After Effects.
Open Preferences:
Windows: Edit -> Preferences -> Scripting & Expressions
macOS: After Effects -> Preferences -> Scripting & Expressions
Ensure "Allow Scripts to Write Files and Access Network" is checked.
Click OK.
Step 3: Launch the Bridge Panel in After Effects
In After Effects, navigate to the top menu: Window.
Select
mcp-bridge-auto.jsxnear the bottom of the menu.Dock the panel anywhere in your workspace.
Keep the panel open. The panel listens for commands continuously in the background—no manual clicking is required.
Step 4: Configure MCP Client
Add the server to your MCP client configuration:
1. Claude Desktop
Edit %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"after-effects": {
"command": "node",
"args": [
"D:\\cppp\\after-effects-mcp\\dist\\index.js"
]
}
}
}2. Antigravity / Cursor / Cline
Add to your client's MCP configuration:
{
"mcpServers": {
"after-effects": {
"command": "node",
"args": [
"D:/cppp/after-effects-mcp/dist/index.js"
]
}
}
}Example Prompts
"Create a 1920x1080 30fps 5-second composition named 'IntroScene'."
"Rename the current composition to 'Final_Render'."
"Add a 3D text layer 'ANTIGRAVITY MCP' with gold fill, 90px size, center justified, and apply Glow effect."
"Create a 50mm cinema camera and animate a 180-degree orbit movement around the text over 3 seconds with cinematic easing."
"Apply a typewriter text animation starting at 0.5s."
"Export a preview PNG snapshot of the composition at 1.0s."
"Undo the last action."
License
MIT License. See LICENSE for details.
Available Tools
54 toolsaddLayerMaskC
Add a new mask to a layer (rectangle, ellipse, polygon, or custom bezier shape) with mode, feather, and opacity
| Name | Required | Description | Default |
|---|---|---|---|
| bounds | No | Bounds [left, top, width, height] for rectangle or ellipse | |
| closed | No | Whether mask shape is closed (default: true) | |
| feather | No | Mask feather [x, y] in pixels | |
| opacity | No | Mask opacity 0-100 (default: 100) | |
| compName | No | Composition name | |
| inverted | No | Invert mask (default: false) | |
| maskMode | No | Mask blending mode (default: "add") | |
| maskName | No | Mask name (default: "Mask 1") | |
| vertices | No | List of 2D vertex coordinates [[x,y],...] for polygon/custom | |
| expansion | No | Mask expansion / offset in pixels (default: 0) | |
| layerName | No | Layer name | |
| shapeType | Yes | Mask geometry type | |
| inTangents | No | In-tangents for bezier control points | |
| layerIndex | No | Layer index (1-based) | |
| outTangents | No | Out-tangents for bezier control points |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden for a mutation tool and delivers little. It does not state that a new mask is appended, how the layer is resolved, whether the operation is undoable, or what happens on invalid shape/bounds combinations; the listed attributes (mode, feather, opacity) merely repeat schema fields.
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 well-front-loaded sentence with the action first and shape types as a parenthetical. It is efficient, though the shape enumeration slightly duplicates the shapeType enum already in the schema.
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 15-parameter mutation tool with no annotations and no output schema, the description is thin. It omits the critical targeting question of how layerName/layerIndex/compName combine and how shapeType gates which of bounds, vertices, and tangents are actually used.
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%, so the schema already documents all 15 parameters including defaults and enums. The description's mention of mode, feather, and opacity adds nothing beyond the schema, so the baseline 3 applies.
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?
States a specific verb+resource ('Add a new mask to a layer') and enumerates the supported shape geometries. It does not explicitly differentiate itself from the sibling setLayerMask, so an agent must infer the add-vs-modify distinction, but the core purpose is unambiguous.
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 when-to-use guidance is given. The presence of a sibling setLayerMask makes the omission meaningful: nothing tells the agent when to create a mask versus update an existing one, nor what prerequisites (comp/layer targeting) must hold.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
addTextAnimatorB
Add an AE text animator with full selector and property control or predefined presets (typewriter, fade_up_chars, slide_in_chars, scale_pop_chars, tracking_expand, 3d_flip_chars with per-character 3D, wiggle_wave, glitch_decoder, or custom)
| Name | Required | Description | Default |
|---|---|---|---|
| preset | No | Built-in text animation preset to apply | |
| compName | No | Composition name (defaults to active comp) | |
| duration | No | Animation duration in seconds (default: 1.5) | |
| layerName | No | Layer name | |
| startTime | No | Animation start time in seconds (default: 0) | |
| layerIndex | No | Layer index (1-based) | |
| properties | No | Custom animator properties to apply | |
| animatorName | No | Text animator name (default: "Animator 1") | |
| rangeSelector | No | Range selector configuration | |
| wigglySelector | No | Wiggly selector configuration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and mostly does not. It never says the tool mutates an existing text layer, whether it adds a second animator alongside existing ones, whether the operation is undoable, or what happens if the target layer/composition 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?
A single front-loaded sentence with the core verb first and details following. The parenthetical preset list duplicates the schema enum, but it is compact and aids selection rather than bloating the text.
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 10 parameters, nested rangeSelector/wigglySelector objects, and no output schema, the description covers only the preset dimension. It omits how presets interact with custom properties and selector configuration, leaving real gaps 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 100% with 10 well-described parameters, so the baseline is 3. The description only restates the preset enum and the "per-character 3D" note for 3d_flip_chars, adding essentially no semantics 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?
States a specific verb and resource ("Add an AE text animator") and enumerates the two capability modes: full selector/property control or predefined presets. No sibling tool touches text animators, so the agent can place it immediately.
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 phrase "or custom" hints that presets and manual properties are alternative paths, but there is no statement of when to pick one over the other, no prerequisite that a text layer must exist, and no guidance on combining rangeSelector vs wigglySelector. The agent must infer the usage model.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aiModifySelectedLayerB
Instruct AI to modify a specific layer in After Effects using natural language prompt (transforms, keyframes, effects, masks, expressions) with optional visual screenshot input
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Natural language prompt describing how to modify the layer (e.g. "做个平滑淡入加弹跳落入动效", "加赛博朋克发光并随时间呼吸闪烁") | |
| compName | No | Composition name (defaults to active comp) | |
| layerName | No | Layer name (defaults to active/first layer) | |
| layerIndex | No | Layer index (1-based) | |
| attachScreenshot | No | Whether to capture and send current frame screenshot to AI (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. For a mutation tool it omits whether existing keyframes/properties are overwritten or merged, whether it is reversible, whether it requires network/AI access and is non-deterministic, and what the user is charged in latency. It only notes the optional screenshot input.
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 dense sentence that front-loads the verb, resource, and mechanism, with the capability list and the screenshot option trailing. Efficient with no filler, though the parenthetical list makes it slightly overloaded.
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 a 5-parameter mutation tool with no annotations and no output schema, the description covers purpose and capability scope but leaves key behavioral questions unanswered (destructiveness, determinism, AI dependency). It is adequate but not complete for the complexity involved.
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%, so the schema already documents all five parameters (prompt, compName, layerName, layerIndex, attachScreenshot). The description adds only the 'optional visual screenshot input' hint, which duplicates attachScreenshot rather than adding new meaning, so baseline 3 applies.
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?
States a specific verb+resource: 'Instruct AI to modify a specific layer in After Effects using natural language prompt', and enumerates the capability scope (transforms, keyframes, effects, masks, expressions). This clearly sets it apart from the granular siblings like applyEffect or setLayerProperties, though it never names them explicitly.
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 natural-language framing implies when to reach for this tool versus the surgical siblings, but the description never states that explicitly nor gives any when-not guidance or prerequisites (e.g. does it require a layer to be selected or an AI backend?). Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
applyCameraMoveA
Execute cinematic camera movements ("运镜") with automatic keyframing and easing: orbit (环绕), dolly in/out (推拉), truck (横移), boom/pedestal (升降), pan (摇镜头), whip pan (甩镜头), dolly zoom (希区柯克眩晕变焦), fly through (穿梭), spiral (螺旋), handheld shake (手持呼吸感)
| Name | Required | Description | Default |
|---|---|---|---|
| angle | No | Angle in degrees for orbit, pan, or whip pan (e.g. 45, 90, 180, 360) | |
| easing | No | Keyframe easing curve (default: "cinematic") | |
| compName | No | Composition name (defaults to active comp) | |
| distance | No | Distance in pixels for dolly/truck/boom movements | |
| duration | No | Movement duration in seconds (default: 2.5) | |
| moveType | Yes | Cinematic camera move type | |
| direction | No | Direction of movement | |
| startTime | No | Movement start time in seconds (default: 0) | |
| cameraName | No | Camera layer name (defaults to first camera) | |
| cameraIndex | No | Camera layer index (1-based) | |
| targetLayerName | No | Target layer to orbit around, look at, or dolly toward | |
| targetLayerIndex | No | Target layer index (1-based) | |
| handheldIntensity | No | Handheld shake intensity level (for "handheld_shake" moveType) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses a meaningful behavioral trait: automatic keyframing and easing are applied, which is not obvious from the name. However, it says nothing about required setup (camera layer, active comp), whether it mutates existing keyframes, or what it returns.
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 front-loaded sentence that efficiently conveys purpose, mechanism, and full move-type vocabulary. No filler.
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 13-parameter tool with no annotations and no output schema, the description is adequate on purpose and mechanism, but omits prerequisites, side effects, and return behavior. It is minimally viable but has clear gaps an agent would need to infer elsewhere.
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 name '运镜' and parenthetical Chinese aliases map to moveType enum values, but the schema already documents every parameter at 100% coverage, including enum values and defaults. The description adds no syntax, format, or semantic detail beyond what the schema provides, so the baseline of 3 applies.
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?
States a specific verb ('Execute') and resource ('cinematic camera movements') and enumerates all 12 move types, which makes the tool's scope unambiguous. It doesn't differentiate itself from siblings like setCameraProperties or createCameraRig, so it falls short of a 5.
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 when-to-use guidance, no prerequisites (e.g., must a camera exist first?), and no mention of alternatives to this tool. The enumeration of move types implies the use case but provides no routing logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
applyEffectB
Apply an effect or third-party plugin to a layer by display name or matchName
| Name | Required | Description | Default |
|---|---|---|---|
| compName | No | Composition name | |
| layerName | No | Layer name | |
| effectName | Yes | Effect name or matchName (e.g. "Gaussian Blur", "ADBE Gaussian Blur 2", "Glow", "ADBE CurvesCustom", "Deep Glow", etc.) | |
| layerIndex | No | Layer index | |
| properties | No | Initial properties to set on the effect immediately upon adding |
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 of behavioral disclosure. It does not state whether the effect is appended or replaces existing effects, what happens if the effect or layer is not found, or whether a target layer must be selected first — gaps that matter 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?
A single efficient sentence that front-loads the action and the resource. Nothing is wasted, though the brevity comes at the cost of the missing behavioral and targeting detail noted elsewhere.
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 mutation tool with five parameters, a nested properties object, no annotations, and no output schema, the description is thin. It omits how to disambiguate the target layer (compName+layerName vs layerIndex), how the initial properties object behaves, and any error/return 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 100%, so all five parameters (including the nested properties object) are already documented in the schema. The description only restates that the effect can be given as display name or matchName, adding no meaning beyond the schema's own example list, so the baseline 3 applies.
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?
States a specific verb+resource ("Apply an effect or third-party plugin to a layer") and clarifies that the effect is identified by display name or matchName. This makes it easily distinguishable from siblings like setEffectProperties, removeEffect, and reorderEffect, though it never names those siblings explicitly.
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 (attach an effect to a layer) and gives the naming convention for effectName, but offers no when-to-use vs when-not guidance and no prerequisites. It does not explain how to choose the target layer among compName/layerName/layerIndex, which an agent must infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batchSetLayerPropertiesB
Apply property updates to multiple layers simultaneously in a single transaction
| Name | Required | Description | Default |
|---|---|---|---|
| updates | Yes | Array of layer property update operations | |
| compName | No | Composition name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses one meaningful trait — all updates happen in a single transaction — but says nothing about rollback-on-failure behavior, partial failure handling, or required permissions, which is the critical unknown for a batch 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?
A single front-loaded sentence with no redundant or filler content. Every clause (verb, resource, batching, transaction) 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?
The schema fully documents inputs and there is no output schema to explain, but for a destructive batch mutation with zero annotations the description should state failure/rollback semantics and the return shape. Those gaps leave the agent guessing about a transactional operation's edge cases.
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%, with each field and the nested properties object documented, so the baseline is 3. The description adds no parameter-level meaning beyond confirming batch semantics.
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?
States a specific verb ('Apply property updates'), resource ('layers'), and scope ('multiple layers simultaneously in a single transaction'). It implicitly distinguishes itself from the singular setLayerProperties sibling via 'multiple layers', but never names an alternative explicitly.
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 prefer this over setLayerProperties, or when batching is required. 'In a single transaction' hints at atomicity-driven use cases but the agent must infer that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configureSettingsC
Modify MCP settings: toggle autoSave (save on every operation), autoRecordHistory, saveMode, history limit, and timeouts
| Name | Required | Description | Default |
|---|---|---|---|
| autoSave | No | Whether to auto-save after each operation (default: true) | |
| saveMode | No | Save mode: "project" (overwrite .aep), "snapshot" (backup copy), or "both" | |
| timeoutMs | No | Command execution timeout in milliseconds (default: 15000) | |
| maxHistory | No | Maximum number of history records and snapshots to keep (default: 50) | |
| aeExecutablePath | No | Path to AfterFX.exe for CLI fallback | |
| autoRecordHistory | No | Whether to record each action in history (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Modify' implies a mutation, but it does not state whether partial updates are merged or reset, whether changes persist across sessions or require a restart, or whether any permission is needed. Only the schema's default values hint at 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?
A single compact sentence that front-loads the verb and resource and then lists the configurable knobs. No filler, though the parenthetical gloss on autoSave is the only explanatory content.
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 an all-optional, six-parameter mutation tool with no annotations and no output schema, the description identifies what can be changed but omits persistence/restart behavior and what the call returns. Adequate minimum viability given the schema documents every parameter, but with a real gap around effect timing.
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 each of the six properties has its own description with defaults and enum meaning, so the schema already does the heavy lifting. The description only restates a subset of parameter names (and abbreviates 'history limit' / 'timeouts' rather than matching maxHistory / timeoutMs), adding no semantics beyond the schema. Baseline 3 applies.
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?
States a specific verb ('Modify') and resource ('MCP settings') and enumerates the affected settings (autoSave, autoRecordHistory, saveMode, history limit, timeouts), which lets an agent distinguish it from the read-only sibling getSettings. It stops short of naming that sibling explicitly, so it is clear but not fully differentiated.
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 never says when to use this tool versus getSettings (read the settings) or when settings should be changed. There are no prerequisites, no note about when changes take effect, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create3DLayerC
Create a 3D layer (solid, text, null, or shape) with 3D transforms pre-configured
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Layer name | |
| size | No | [width, height] dimensions (default: comp size) | |
| text | No | Text content (if layerType is "text") | |
| color | No | RGB color [0-1, 0-1, 0-1] (if layerType is "solid") | |
| scale | No | 3D scale [x, y, z] (100 = 100%) | |
| compName | No | Composition name | |
| position | No | 3D position [x, y, z] | |
| layerType | Yes | 3D layer type to create | |
| rotationX | No | X rotation in degrees | |
| rotationY | No | Y rotation in degrees | |
| rotationZ | No | Z rotation in degrees | |
| orientation | No | 3D orientation [x, y, z] in degrees |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It hints that 3D transforms are 'pre-configured' but does not disclose defaults, which composition the layer is added to, whether a comp must be active, or what happens on size/color conflicts. For a 12-parameter creation tool with zero annotation coverage, this is a substantial gap.
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 efficient sentence with no wasted words, front-loading the verb and resource. It is appropriately sized, though the brevity comes at the cost of the missing behavioral and usage detail noted elsewhere.
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 12-parameter mutation tool with no annotations and no output schema, the description is too thin. It omits the target composition context, defaults for 3D transforms, and how it relates to the near-identical sibling creators, leaving an agent without enough to call it confidently.
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%, so the schema already documents every parameter including the layerType enum and conditional usage of text/color. The description's type list merely restates the enum, adding no syntax or interaction detail beyond the structured fields. Baseline 3 applies.
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?
States a specific verb (Create) and resource (3D layer), and enumerates the creatable types (solid, text, null, shape). However, it does not distinguish itself from overlapping siblings like createSolidLayer, createTextLayer, and createNullObject, which appear to create the same layer types without the 3D transform prefix.
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?
There is no guidance on when to use this tool versus the sibling creators (createTextLayer, createSolidLayer, createNullObject) or versus set3DLayerTransform. The agent is left to infer that this is the 3D-enabled variant, but nothing states prerequisites or the conditions that select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createCameraB
Create a 1-node or 2-node 3D camera layer with focal presets, depth of field, aperture, and optional camera rig
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Camera layer name (default: "Camera 1") | |
| zoom | No | Camera zoom value in pixels (overrides focalLength) | |
| preset | No | Focal length preset (e.g. "35mm", "50mm") | |
| rigName | No | Name of the camera controller null (default: "Camera Controller") | |
| aperture | No | Aperture size in pixels (controls background blur amount) | |
| compName | No | Composition name (defaults to active comp) | |
| position | No | 3D position [x, y, z] | |
| blurLevel | No | Blur level percentage (default: 100) | |
| createRig | No | Automatically create a 3D Orbit Null rig parented to the camera | |
| irisShape | No | Iris bokeh shape | |
| rotationX | No | X rotation in degrees | |
| rotationY | No | Y rotation in degrees | |
| rotationZ | No | Z rotation in degrees | |
| cameraType | No | Camera type: "one-node" (free rotation without target point) or "two-node" (aims at Point of Interest, default) | |
| centerPoint | No | Initial center point [x, y] (defaults to comp center) | |
| focalLength | No | Custom focal length in mm | |
| orientation | No | 3D orientation [x, y, z] in degrees | |
| depthOfField | No | Enable/disable Depth of Field blur | |
| focusDistance | No | Focus distance in pixels (defaults to distance between camera and Point of Interest) | |
| pointOfInterest | No | 3D Point of Interest [x, y, z] (for two-node camera) |
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 behavioral disclosure. It does not mention side effects, permissions required, whether it modifies the active composition, or what it returns. It only restates features available via the schema.
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, front-loaded sentence that efficiently names the action and resource before listing capabilities. 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 20 parameters, no annotations, and no output schema, the description is thin. It covers the core purpose but omits behavioral context such as target composition, side effects, and return value. The rich schema partially compensates for parameter details, leaving the description 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 100%, so the schema fully documents all 20 parameters. The description adds only a high-level summary of a few features (focal presets, depth of field, aperture, camera rig), providing no syntax or default details beyond what the schema already provides.
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 a specific verb ('Create') and resource ('1-node or 2-node 3D camera layer'), and lists key features. It distinguishes implicitly from siblings like setCameraProperties by being a creation tool, but does not explicitly name alternatives.
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 explicit guidance on when to use this tool versus alternatives such as setCameraProperties or createCameraRig. The purpose implies usage but provides no when/when-not context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createCameraRigB
Create a professional industry-standard 3D Camera Rig with Target Null, Orbit Null controller, and parented Camera for effortless orbit and gimbal-lock-free animation
| Name | Required | Description | Default |
|---|---|---|---|
| rigName | No | Rig base name (default: "Camera Rig") | |
| compName | No | Composition name (defaults to active comp) | |
| distance | No | Camera standoff distance from target along Z axis (default: 1500) | |
| cameraName | No | Camera name (default: "Camera Rig Camera") | |
| targetPosition | No | 3D coordinates where the camera rig target is centered [x, y, z] (defaults to comp center) |
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 does disclose the compound structure it builds (two nulls plus a parented camera), which is genuine behavioral context. However, it omits mutation side-effects, whether it needs an active composition, undo behavior, and what it returns.
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 front-loaded sentence with no wasted clauses; the core action and its components come first. Minor marketing filler ('professional industry-standard', 'effortless') slightly dilutes it but does not hurt scanability.
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 five-parameter creation tool with no output schema and no annotations, the description explains what is built but says nothing about the return value (e.g. the created rig objects) or the composition prerequisite implied by the compName default. Adequate but with a real gap.
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% across all five parameters, so the schema already documents rigName, compName, distance, cameraName, and targetPosition with defaults. The description adds no parameter-level detail, so the 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?
States a specific verb (Create) and resource (3D Camera Rig), and names the concrete output structure — Target Null, Orbit Null controller, and parented Camera. It implicitly distinguishes from createCamera (single camera) and createNullObject, but never names those siblings, so the differentiation is inferential rather than explicit.
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 mentions the benefit (orbit and gimbal-lock-free animation) but gives no explicit when-to-use guidance and never points to alternatives like createCamera, createNullObject, or applyCameraMove. The agent must infer that this is for rig-based orbit work.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-compositionC
Create a new composition in Adobe After Effects
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the new composition | |
| width | No | Width in pixels (default: 1920) | |
| height | No | Height in pixels (default: 1080) | |
| bgColor | No | RGB background color [0-1, 0-1, 0-1] (default: [0,0,0]) | |
| duration | No | Duration in seconds (default: 10.0) | |
| frameRate | No | Frame rate in FPS (default: 30.0) | |
| pixelAspectRatio | No | Pixel aspect ratio (default: 1.0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only states that a composition is created. It omits key details like whether the project must be open, whether the new composition becomes active, permission requirements, 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?
The description is a single front-loaded sentence with no unnecessary words. It is concise, though its brevity leaves substantial gaps that are not addressed elsewhere.
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 creation tool with no annotations and no output schema, the description is too sparse. It does not explain the tool's effect on project state, what happens on naming conflicts, or any limitations, leaving the agent to infer important behavior.
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%, so the schema fully documents all seven parameters including defaults. The description adds no additional parameter semantics, so the baseline score of 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 a specific verb ('Create') and resource ('composition'), making it easy to distinguish from sibling creation tools like createCamera or createTextLayer. However, it does not explicitly differentiate itself from related composition tools (e.g., renameComposition, setCompositionProperties).
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 offers no guidance on when to use this tool versus alternatives, nor any prerequisites. It implies creation is needed to start a project, but does not state when a new composition is required or what happens if one already exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createLightC
Create a 3D light layer (Point, Spot, Parallel, Ambient) with intensity, color, shadows, and angle controls
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Light name (default: "Light 1") | |
| color | No | RGB color [0-1, 0-1, 0-1] | |
| compName | No | Composition name | |
| position | No | 3D position [x, y, z] | |
| coneAngle | No | Spot light cone angle in degrees (default: 90) | |
| intensity | No | Light intensity percentage (default: 100) | |
| lightType | No | Light type (default: "POINT") | |
| coneFeather | No | Spot light cone feather percentage (default: 50) | |
| castsShadows | No | Whether light casts shadows (default: false) | |
| shadowDarkness | No | Shadow darkness percentage (0-100) | |
| pointOfInterest | No | 3D target point [x, y, z] | |
| shadowDiffusion | No | Shadow diffusion in pixels |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a write operation and lists controllable features, but says nothing about side effects, defaults, permission requirements, or what happens when parameters are omitted. What it does say largely restates the schema.
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 front-loaded sentence that names the action and its major controls with no filler. It is efficient, though the parenthetical enum list slightly duplicates the schema's lightType values.
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 12-parameter mutation tool with no annotations and no output schema, the description is adequate but thin: the schema covers defaults and units, yet the description omits behavioral context such as required scoping (compName) and effects of shadow/angle settings.
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 all 12 parameters already document their units and defaults, so the baseline of 3 applies. The description adds no extra parameter meaning beyond naming a subset of the fields (intensity, color, shadows, angle).
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 names a specific verb ("Create") and resource ("3D light layer") and enumerates the supported variants (Point, Spot, Parallel, Ambient), which are the same values as the lightType enum. It is clearly distinct from siblings like createCamera, create3DLayer, or createSolidLayer, though it does not explicitly say so.
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?
There is no statement of when to use this tool versus alternatives, nor any prerequisite information (for example, whether a composition name must be supplied or which light type suits which situation). The agent must infer everything from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createNullObjectB
Create a null object layer for rigging, parenting, or animation controls
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Null layer name (default: "Null 1") | |
| compName | No | Composition name | |
| duration | No | Duration in seconds (defaults to comp duration) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state which composition the null lands in, what happens when compName is omitted, whether the new layer becomes selected, or whether it is reversible — significant gaps for a mutating 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?
A single well-formed sentence that front-loads the verb and resource and uses the trailing clause to convey purpose. Nothing is wasted, though it stops short of the compactness-plus-routing of a 5.
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 zero-required-param creation tool with full schema coverage and no output schema, the essentials are covered. It still omits default-comp behavior and post-creation effects that an agent would need when calling it without arguments.
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%, so the schema already documents name, compName, and duration with their defaults. The description adds no parameter meaning beyond that, so the baseline 3 applies.
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?
States a specific verb ('Create') plus a distinct resource ('null object layer') and even names the intent ('rigging, parenting, or animation controls'). The resource is clearly separable from siblings like createCamera, createTextLayer, or createSolidLayer, though it doesn't explicitly contrast itself with 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?
The phrase 'for rigging, parenting, or animation controls' gives implied usage context, so an agent can infer when a null is appropriate. However, there is no explicit when-not-to-use guidance and no routing to alternative layer-creation siblings, leaving selection mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createSolidLayerB
Create a solid color layer in the composition
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Solid layer name (default: "Solid") | |
| color | Yes | RGB color [0-1, 0-1, 0-1] | |
| width | No | Width in pixels (defaults to comp width) | |
| height | No | Height in pixels (defaults to comp height) | |
| compName | No | Composition name | |
| duration | No | Duration in seconds (defaults to comp duration) |
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 of behavioral disclosure. 'Create a solid color layer' implies a mutation that adds a new layer to the project, but the description does not mention side effects (e.g., changes to the active composition or selection), permissions required, reversibility, or whether the layer is returned.
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, front-loaded sentence with no wasted words. The purpose is stated immediately and clearly, making the description appropriately sized for a straightforward creation 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 that the tool is a mutation with no annotations and no output schema, the description is too sparse. It does not explain what happens upon success (e.g., whether a new layer is selected or returned) or any practical constraints (e.g., whether a composition must be active), leaving the agent uncertain about the full behavior.
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%, so the input schema already documents all six parameters, including defaults for name, width, height, and duration. The description adds no parameter-level details beyond what the schema provides, which is the baseline for full 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?
States a specific verb (Create), resource (solid color layer), and scope (in the composition). This is clearly distinguishable from siblings like createTextLayer, create3DLayer, createCamera, and createLight, which create different layer 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?
Usage is implied by the purpose: use this tool to add a solid color layer to a composition. However, there is no explicit guidance on when to choose this over alternatives (e.g., create3DLayer, createNullObject) or any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createTextLayerC
Create a 2D or 3D text layer with comprehensive typography (font, size, fill/stroke colors, tracking, leading, justification, allCaps/smallCaps), 3D orientations, and direct effects list
| Name | Required | Description | Default |
|---|---|---|---|
| font | No | Font PostScript name or family (e.g. "ArialMT", "MicrosoftYaHei", "PingFangSC-Regular") | |
| name | No | Layer name (defaults to text content) | |
| text | Yes | Text content to display | |
| color | No | Alias for fillColor [0-1, 0-1, 0-1] | |
| allCaps | No | Force all caps formatting | |
| effects | No | List of effects/plugins to immediately apply onto this text layer | |
| leading | No | Line spacing / leading in points | |
| compName | No | Composition name (defaults to active composition) | |
| fontSize | No | Font size in pixels (default: 50) | |
| isThreeD | No | Enable 3D layer switch (default: false) | |
| position | No | Layer position [x, y] or [x, y, z] | |
| tracking | No | Tracking / character spacing (e.g. 50, -20) | |
| applyFill | No | Enable/disable fill color (default: true) | |
| fillColor | No | RGB fill color [0-1, 0-1, 0-1] (e.g. [1, 1, 1] for white) | |
| rotationX | No | 3D X rotation in degrees | |
| rotationY | No | 3D Y rotation in degrees | |
| rotationZ | No | 3D Z rotation or 2D rotation in degrees | |
| smallCaps | No | Force small caps formatting | |
| applyStroke | No | Enable/disable stroke (default: false) | |
| orientation | No | 3D orientation [x, y, z] in degrees (for 3D text) | |
| strokeColor | No | RGB stroke color [0-1, 0-1, 0-1] | |
| strokeWidth | No | Stroke width in pixels (default: 1) | |
| justification | No | Paragraph justification (left, right, center, full) | |
| strokeOverFill | No | Render stroke over fill (default: false) |
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 does not state side effects (does it modify the active composition?), what the tool returns, whether an undo group is created, or permission requirements. For a multi-parameter mutation tool with zero annotation coverage this is a significant gap.
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, front-loaded sentence that leads with the action and then compresses the feature set efficiently. It stops just short of ideal because the tail-end enumeration reads like a parameter list rather than decision-relevant information, but there is no wasted prose.
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 24-parameter tool with no annotations and no output schema, the description is thin: it never states what is returned, what happens when compName is omitted, or how effects application interacts with the rest of the parameters. The rich schema compensates for parameter meaning, but the behavioral and return-value gaps keep this at a minimum-viable level.
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 24 well-documented parameters, so the schema already does the heavy lifting. The description only groups the parameter categories (font, size, colors, tracking, leading, justification, caps, 3D orientation, effects) without adding format or default detail beyond the schema, matching the baseline-3 case.
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?
States a specific verb and resource ('Create a 2D or 3D text layer') and enumerates the typography dimensions it covers. It does not explicitly distinguish itself from the sibling formatTextLayer or create3DLayer, so an agent must infer the difference, but the purpose itself is unambiguous.
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 when-to-use guidance and no alternatives named, even though siblings like formatTextLayer (modify existing text) and create3DLayer are natural confusions. The agent is left to infer that this is for the initial creation of a text layer rather than editing one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deleteLayerC
Delete a layer from the composition
| Name | Required | Description | Default |
|---|---|---|---|
| compName | No | Composition name | |
| layerName | No | Layer name | |
| layerIndex | No | Layer index |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It says 'delete' but never states that the operation is destructive/irreversible, whether it can be undone via the project history, or what happens if the named layer does not exist — all important 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?
A single, front-loaded sentence with no wasted words. It is efficient rather than padded, though its brevity is partly under-specification rather than disciplined concision.
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 destructive mutation tool with zero annotation coverage, no output schema, and identity parameters that are all optional, the description is thin. An agent has no information about failure modes, return value, or how the target layer is resolved.
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%, so the schema itself documents compName, layerName and layerIndex, which sets the baseline at 3. The description adds nothing about parameter interplay — notably that all three are optional, leaving unclear whether layerIndex takes precedence over layerName or whether compName is required to locate the layer.
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 gives a specific verb (delete) and resource (layer) with its scope (from the composition), so an agent immediately knows the operation. It does not, however, differentiate itself from adjacent siblings such as duplicateLayer or removeEffect, leaving the agent to infer the boundary from the name alone.
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?
There is no statement of when to use this tool versus alternatives, no prerequisites, and no mention of the undo/history siblings (rollback, getHistory) that a caller might need. Only the barest implied usage is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicateLayerC
Duplicate an existing layer in the composition
| Name | Required | Description | Default |
|---|---|---|---|
| compName | No | Composition name | |
| layerName | No | Layer name | |
| layerIndex | No | Layer index |
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 does not disclose where the duplicate is placed (above/below the original, top of stack), whether a name is auto-generated, whether existing layer references are affected, or what happens when the layer is not found. For a mutating/creating operation with zero annotation coverage, this is a substantial gap.
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 front-loaded sentence with no filler or redundancy. It is efficient, though arguably too terse given the ambiguity around layer identification and duplication placement.
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 no annotations, no output schema, and an unaddressed ambiguity about which of layerName/layerIndex identifies the target, the definition leaves the agent unable to call the tool confidently. Placement of the duplicate, return value, and error behavior are all unstated.
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%, so the baseline is 3. However, the schema descriptions are terse ('Composition name', 'Layer name', 'Layer index'), and the description adds nothing about whether name or index is the identifying input, or how the engine resolves the two given that 0 parameters are required.
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 states a specific verb and resource: duplicating an existing layer within a composition. It is unambiguous about what the tool does, but gives no differentiation from siblings such as deleteLayer or create3DLayer, so an agent must infer which situations call for duplication rather than creation.
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?
There is no when-to-use guidance, no mention of prerequisites (e.g., whether an active composition is required), and no pointer to alternatives like createTextLayer or createSolidLayer for producing new layers. The agent gets no help deciding between this tool and its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exportFrameB
Export a screenshot / state image of a specific frame or current time in a composition as PNG, and return base64 preview
| Name | Required | Description | Default |
|---|---|---|---|
| time | No | Time in seconds to capture | |
| frame | No | Frame number to capture (0-based) | |
| compName | No | Composition name (defaults to active comp) | |
| outputPath | No | Custom output file path for PNG image | |
| returnBase64 | No | Whether to return base64 data URI of the captured image (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the output format (PNG) and that it returns a base64 preview, which is useful behavioral context, but it omits side-effect details such as whether a file is written to disk by default, where, and any permission requirements for a capture 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?
A single front-loaded sentence that names the verb, resource, formats, and return value with no filler. Appropriately sized, though it is terse enough to leave gaps.
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 five-parameter, file-producing tool with no annotations and no output schema, the description covers purpose and return format but leaves the write side effects, defaults, and sibling routing unaddressed, so it is adequate rather than 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%, so the schema already documents all five parameters. The description reinforces the frame/time distinction and PNG/base64 output but adds no syntax or default information beyond what the schema provides; baseline 3 applies.
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?
States a specific verb (Export) and resource (screenshot/state image of a frame or current time), plus the output format (PNG). It does not differentiate itself from the related sibling exportPreviewVideo, but the purpose itself is unambiguous.
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 dual modes 'specific frame or current time' hint at how the tool is used, but there is no explicit when-to-use / when-not guidance and no reference to exportPreviewVideo as the alternative for motion/preview output.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exportPreviewVideoC
Quickly export a preview video for a specific frame range (e.g. frame A to frame B) with fast low-resolution rendering
| Name | Required | Description | Default |
|---|---|---|---|
| endTime | No | End time in seconds (alternative to endFrame) | |
| quality | No | Rendering quality level (default: "low") | |
| compName | No | Composition name | |
| endFrame | No | End frame number (default: 30) | |
| startTime | No | Start time in seconds (alternative to startFrame) | |
| outputPath | No | Target output video file path (.mp4 / .mov / .avi) | |
| resolution | No | Render resolution scale (default: "quarter" for ultra-fast export) | |
| startFrame | No | Start frame number (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It hints at the speed/quality trade-off ('quickly', 'fast low-resolution rendering'), which loosely matches the schema defaults, but it never discloses that this writes a file to outputPath, whether an existing file is overwritten, what dependencies are required (e.g. an open composition), or what is returned.
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 tight sentence with the action front-loaded and no filler. It is appropriately sized for the tool, though it could carry one or two more clauses of genuinely useful behavioral detail without bloat.
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 file-producing export tool with no annotations and no output schema, the description is minimally adequate. The 8 parameters are fully documented in the schema, but the write side effects, overwrite semantics, and required context for a preview render are left unaddressed.
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%, so the schema already documents all 8 parameters including defaults, enums, and time/frame alternatives. The description only echoes the frame-range concept ('frame A to frame B') and the low-res behavior, adding no syntax or format detail beyond the schema, so the baseline 3 applies.
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?
States a specific verb (export), resource (preview video), and scope (specific frame range with fast low-resolution rendering). The 'preview' framing implicitly contrasts with the single-frame exportFrame sibling, but it never names or explicitly differentiates from it, so it stops short of a 5.
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 no when-to-use / when-not-to-use guidance and does not name exportFrame as the alternative for non-video frame exports. Usage can only be inferred from the word 'preview'; no prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formatTextLayerB
Format an existing text layer: modify text content, font family/PostScript name, font size, fill/stroke colors, stroke width, tracking, leading, justification, allCaps/smallCaps
| Name | Required | Description | Default |
|---|---|---|---|
| font | No | Font PostScript name (e.g. "ArialMT", "MicrosoftYaHei", "PingFangSC-Regular") | |
| text | No | New text content | |
| allCaps | No | All caps formatting | |
| leading | No | Line spacing / leading in points | |
| compName | No | Composition name (defaults to active comp) | |
| fontSize | No | Font size in pixels | |
| tracking | No | Tracking / character spacing (e.g. 50, -20) | |
| applyFill | No | Enable/disable fill color | |
| fillColor | No | RGB fill color [0-1, 0-1, 0-1] | |
| layerName | No | Layer name | |
| smallCaps | No | Small caps formatting | |
| layerIndex | No | Layer index (1-based) | |
| applyStroke | No | Enable/disable stroke | |
| strokeColor | No | RGB stroke color [0-1, 0-1, 0-1] | |
| strokeWidth | No | Stroke width in pixels | |
| justification | No | Paragraph justification (left, right, center, full) | |
| strokeOverFill | No | Whether stroke renders over fill |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It indicates a mutation ('modify') but does not disclose whether changes are reversible, what permissions are needed, how omitted parameters behave, or what happens when the target layer 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 a single front-loaded sentence that begins with the core action and then lists supported attributes. It is dense but avoids filler; the list is long yet every item corresponds to an actual capability.
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 17-parameter mutation tool with no annotations and no output schema, the description is incomplete. It covers the parameter surface broadly but omits usage context, side effects, prerequisites, and return behavior that an agent would need to invoke it safely and correctly.
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%, so the schema already documents all 17 parameters in detail. The description lists many of the modifiable fields but adds no syntax, format, or behavioral meaning beyond what the schema provides, making the baseline score of 3 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 gives a specific verb and resource: 'Format an existing text layer,' and then enumerates the exact text attributes that can be modified. The word 'existing' implicitly distinguishes it from createTextLayer, and the text-specific scope separates it from broader layer-property 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 states what the tool does but gives no explicit guidance on when to use it versus alternatives such as createTextLayer, aiModifySelectedLayer, or setLayerProperties. There are no exclusions, prerequisites, or alternative-routing instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAvailableFontsA
Get list of available PostScript fonts registered in After Effects for typography styling
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Get list' implies a safe read and the PostScript qualifier usefully narrows the result set, but it never states whether the call is read-only, what the list contains (family names, styles, file paths), or whether ordering/pagination matters.
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 front-loaded sentence with no filler. The verb and resource come first and the qualifying scope follows, so nothing needs to be skimmed past.
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 zero-parameter, read-only enumeration with no output schema, the description covers what the tool does and implicitly what it returns ('list of ... fonts'). It stops short of describing the shape of the returned entries, but that gap is minor for a tool this simple.
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 takes zero parameters, so there is no parameter semantics to convey; the baseline for a parameterless tool is 4. The description correctly introduces no arguments.
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?
States a specific verb (get), resource (fonts), and a meaningful qualifier (PostScript fonts registered in After Effects). No sibling tool deals with fonts, so differentiation is inherent, though the description never explicitly frames itself against alternatives.
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 trailing phrase 'for typography styling' gestures at context but gives no explicit when-to-use guidance, prerequisites, or alternatives. An agent must infer that this is the lookup step before creating or formatting text layers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCompRendererB
Get composition 3D render engine and shader mode (Classic 3D, Advanced 3D, Cinema 4D) and list of available renderers
| Name | Required | Description | Default |
|---|---|---|---|
| compName | No | Composition name (defaults to active comp) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return shape (render engine, shader mode, list of available renderers), which is useful, but does not mention whether the operation is read-only, what happens if the comp doesn't exist, or any permission needs.
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 front-loaded sentence with no filler. Slightly run-on due to the parenthetical enumeration, but every element is relevant.
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 exists, so the description helpfully names what is returned (engine, shader mode, available renderers). For a simple zero-required-param read tool with full schema coverage, this is nearly complete, though it omits any error or default-comp behavior 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 100% and the single compName parameter is documented with its default in the schema. The description adds nothing about parameter meaning, so the baseline 3 applies.
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?
States a specific verb (get) and resource (composition 3D render engine and shader mode), and enumerates the possible engine values (Classic 3D, Advanced 3D, Cinema 4D). The get/set split from the sibling setCompRenderer is inferable but not named explicitly.
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 statement of when to use this versus alternatives, no prerequisites, no note that it is a safe read operation. Usage is only implied by the 'get' verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getEffectPropertiesB
Inspect all parameters, matchNames, types, and current values of an effect on a layer
| Name | Required | Description | Default |
|---|---|---|---|
| compName | No | Composition name | |
| layerName | No | Layer name | |
| effectName | No | Effect name | |
| layerIndex | No | Layer index | |
| effectIndex | No | Effect index on the layer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose the return content (parameter names, matchNames, types, values), which is genuine value beyond the schema, but says nothing about error behavior when the layer or effect is not found, or how the identifier parameters are resolved.
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 front-loaded sentence around the verb 'Inspect' with zero padding. It is efficient, though the enumerated return fields arrive in a dense list rather than being organized.
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 read-only inspection tool with no output schema and no annotations, the description conveys the shape of the return but leaves the identification model (five optional, seemingly redundant locator params) unexplained. Adequate but with a clear gap an agent would have to guess around.
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%, so all five parameters are already documented in structured data and the baseline of 3 applies. The description adds nothing about how compName/layerName/effectName/layerIndex/effectIndex combine to identify the target — notably, all five are optional with no stated resolution rule.
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?
States a specific verb (Inspect) and resource (effect on a layer) and enumerates the returned attributes (parameters, matchNames, types, current values). It distinguishes itself implicitly from the mutation siblings applyEffect/setEffectProperties/removeEffect, but never names them or contrasts explicitly.
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?
There is no statement of when to use this versus alternatives. The read-only nature is inferable from 'Inspect' amid a cluster of set/apply/remove siblings, but the description offers no condition, no prerequisite, and no exclusion to route the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-helpA
Get help, command list, property reference, and troubleshooting guidance for After Effects MCP
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Help topic |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It is evidently a read-only documentation fetch and it discloses the categories of content returned, which is reasonable behavioral context for a harmless lookup, but it says nothing about whether the topic argument is optional or what a default call returns.
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, front-loaded with the verb and the resource, with no filler. Nothing could be trimmed without losing content.
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 one-parameter, optional-argument help tool with no output schema, the description is adequate but leaves gaps: it doesn't indicate that topic is optional or that a bare call returns general help, and it doesn't hint at what each topic yields. It is minimally sufficient rather than 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% and the enum fully enumerates the topic values, so the schema already documents the single parameter. The description adds nothing about the topic argument, so the baseline 3 applies.
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?
States a specific verb ('Get') and enumerates the resource types returned (help, command list, property reference, troubleshooting guidance). It is clearly distinguishable from all sibling tools, which are AE mutation/query actions rather than documentation lookups, though it doesn't explicitly contrast itself with 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?
Usage is implied by the tool's nature – an agent reaches for it when it needs documentation – but the description never states when to call it, what each topic covers, or when it is unnecessary. No alternatives or exclusions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getHistoryB
Get the execution history log of all operations performed via MCP, including snapshot and rollback status
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of entries to return (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It partially discharges this by disclosing that results include snapshot and rollback status, but it says nothing about ordering, pagination, or whether this is a read-only operation, leaving gaps for an unannotated 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?
A single front-loaded sentence that communicates the resource and key return contents with no filler. Appropriately sized for a one-parameter read 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?
For a simple paged read tool, the description covers the purpose and hints at return contents, but with no output schema and no annotations it should say more about the shape of the log entries or default behavior. Adequate but with visible 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 100% and the single 'limit' parameter is fully documented in the schema (default: 20). The description adds no parameter meaning beyond that, so the baseline of 3 applies.
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?
It names a specific verb (Get) and resource (execution history log of all operations performed via MCP), and adds scope detail about what the log contains (snapshot and rollback status). This is clearly distinct from the many mutation siblings, though it does not explicitly name a sibling it is not.
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 states what the tool returns but gives no when-to-use guidance, no conditions, and no alternatives. With siblings like 'rollback' and 'get-results' present, some routing context would help, but none is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getInstalledPluginsB
Query installed effects, plugins, and matchNames in After Effects
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Filter by name keyword (e.g. "glow", "blur", "noise") | |
| category | No | Filter by effect category (e.g. "Blur & Sharpen", "Color Correction", "Stylize", "Generate") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. "Query" implies a read-only operation and the text discloses the return contents (effects, plugins, matchNames), but it does not explicitly confirm non-destructiveness, mention permissions, pagination, or return format.
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 efficient sentence with no waste, and the core purpose is front-loaded. It could be tighter given the somewhat list-like enumeration, but overall it is well-sized for a simple query 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?
For a two-optional-parameter read tool with no output schema and no annotations, the description partly compensates by naming the returned items (effects, plugins, matchNames), but it omits the read-only confirmation and any guidance on result shape or when to invoke it.
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 both parameters (search, category) are fully documented with examples in the schema. The description adds no syntax or format detail beyond what the schema already provides, so baseline 3 applies.
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?
States a specific verb (Query) and resource (installed effects, plugins, matchNames in After Effects). The word "installed" distinguishes it from applied-effect siblings like getEffectProperties and setEffectProperties, though it never names those alternatives. Clear but lacks explicit sibling differentiation.
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?
Usage is only implied: an agent can infer this is a discovery tool to run before applyEffect, but the description never says when to use it or when to prefer a sibling like getEffectProperties. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getKeyframeInfoB
Get detailed information on all keyframes for a property including values, times, interpolation, and speed/influence curves
| Name | Required | Description | Default |
|---|---|---|---|
| compName | No | Composition name | |
| layerName | No | Layer name | |
| layerIndex | No | Layer index (1-based) | |
| propertyName | Yes | Property name to inspect |
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 behavioral disclosure. It indicates a read operation by saying 'Get detailed information', but does not mention any side effects, required permissions, or rate limits. The detailed list of returned fields adds some value but does not cover all behavioral 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?
The description is a single, efficient sentence that front-loads the purpose and lists the key returned data. It is appropriately sized and structured for an API tool description, with 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?
There is no output schema, so the description should explain return values. It lists some returned fields (values, times, interpolation, speed/influence curves) which is helpful, but it does not cover all potential return data such as whether the keyframes are for multiple dimensions or contain additional metadata. Additionally, behavioral aspects like whether it requires a selected composition or layer are not mentioned. For a read tool with 4 parameters and no annotations, it is minimally complete but has 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 100%, so the schema already documents all four parameters. The description does not add any meaning beyond what the schema provides; it only specifies what information is returned, not how parameters affect the output. Baseline score of 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 retrieves detailed information on keyframes for a property, including specific data points like values, times, interpolation, and speed/influence curves. This distinguishes it from sibling tools like 'setLayerKeyframe' or 'getLayerInfo' by focusing specifically on keyframe details.
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 the tool (to get keyframe info) but does not explicitly compare it to alternatives or state when not to use it. The context of sibling tools suggests it is for reading keyframe data, but no explicit guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getLayerInfoA
Get detailed information about a layer (position, scale, rotation, 3D status, effects, masks) or all layers in a composition
| Name | Required | Description | Default |
|---|---|---|---|
| compName | No | Composition name | |
| layerName | No | Layer name (optional) | |
| layerIndex | No | Layer index (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the burden. 'Get' strongly implies a read-only, non-mutating call and the description lists what is returned, but it never explicitly states read-only behavior, side effects, permissions, or output format. 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?
A single front-loaded sentence that opens with the verb and resource and keeps the field enumeration compact. No filler or redundancy, though the parenthetical list is slightly long.
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?
There is no output schema, so the description correctly compensates by naming the returned fields and both operating modes. For a low-complexity read tool this is nearly complete; only the safety/permission profile is left unstated.
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%, so baseline is 3, but the description adds meaning beyond the schema by clarifying that the optional layerName/layerIndex parameters are the switch between 'a layer' and 'all layers in a composition' — the schema only says 'optional' without explaining the omitted-case behavior.
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?
States a specific verb (Get) and resource (layer information) and enumerates the returned fields (position, scale, rotation, 3D status, effects, masks), plus the dual scope of one layer vs all layers in a composition. It does not differentiate itself from the many get* siblings like getKeyframeInfo or getEffectProperties, so it stops short of a 5.
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?
Usage is only implied: omitting layerName/layerIndex switches to 'all layers in a composition', which hints at when each mode applies. There is no explicit when-to-use, when-not, or named alternative among the dozens of get* siblings, so it sits at the implied-usage level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getLayerMaterialOptionsB
Get 3D material/shader options for a 3D layer (casts shadows, light transmission, ambient, diffuse, specular, metal, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| compName | No | Composition name | |
| layerName | No | Layer name | |
| layerIndex | No | Layer index (1-based) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden, and it does supply useful context about what data the call surfaces (the material/shader property set). However, it says nothing about whether the layer must already be a 3D layer, what happens if the layer is 2D, or permission/error behavior. It is a safe read by implication of 'Get', but no behavior is disclosed beyond that implication.
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 front-loaded sentence with the verb and resource first, followed by a compact enumeration. The parenthetical list is slightly long but it earns its place by substituting for a missing output schema.
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 three-parameter read tool this is close to adequate, and the parenthetical enumeration partially compensates for the absent output schema by naming the fields returned. It still lacks any indication of the return structure, error conditions, or 2D-vs-3D precondition, leaving modest 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 100% and all three parameters (compName, layerName, layerIndex) are documented in the schema itself. The description adds no parameter-level meaning, so the baseline of 3 applies — the schema fully does the work.
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?
States a specific verb ('Get') and resource ('3D material/shader options for a 3D layer'), and the parenthetical enumeration of the option categories (shadows, transmission, ambient, diffuse, specular, metal) concretely scopes what is returned. It is distinguishable from the sibling setLayerMaterialOptions, though the read-vs-write contrast is left implicit rather than stated.
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?
There is no explicit when-to-use guidance, no statement of prerequisites, and no named alternative (e.g., 'call this before setLayerMaterialOptions to discover valid values'). The read-only intent of a 'Get' verb is inference, not instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getProjectInfoA
Get general project information: file path, dirty status, list of all compositions and items
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it usefully discloses the return contents (file path, dirty status, compositions, items) in the absence of an output schema. However, it does not state that this is a read-only, side-effect-free operation, nor mention permissions or any behavioral limits.
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 front-loaded sentence with a colon-delimited list of return fields. No filler and nothing redundant.
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?
This is a simple zero-parameter getter, and since no output schema exists, the description does the work of naming the key return fields. It is largely sufficient, though it could spell out the return structure a bit more given the missing output schema.
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 takes zero parameters, so per the rubric the baseline is 4. There are no parameters whose meaning needs clarifying, and schema coverage is 100%.
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 states a specific verb and resource ('Get general project information') and enumerates the payload (file path, dirty status, compositions, items). This is clear enough to distinguish from layer-level getters like getLayerInfo or getSettings, though it does not explicitly name those siblings.
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?
There is no when-to-use, when-not-to-use, or alternative-naming guidance. The agent must infer the use case purely from the enumerated return fields, and nothing tells it when to prefer this over getSettings, getHistory, or getLayerInfo.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-resultsC
Retrieve results of a previously executed command or the latest command result
| Name | Required | Description | Default |
|---|---|---|---|
| commandId | No | Specific command ID to retrieve, or omit for the latest result |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It does not state what happens when no result exists, whether results expire or are cleared, the return shape, or error behavior — leaving the agent without any behavioral context 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?
A single front-loaded sentence with no filler; the core action and both modes are stated immediately. It is efficiently sized, though it could carry more substance without becoming bloated.
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 no output schema and no annotations, the description should describe what is actually returned (raw stdout, structured data, errors). It does not, so an agent cannot anticipate the response of 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?
Schema coverage is 100%, and the schema already explains 'Specific command ID to retrieve, or omit for the latest result.' The description's mention of the latest result merely restates the schema, so the 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 gives a clear verb-plus-resource ('Retrieve results of a previously executed command') and distinguishes the two retrieval modes (specific command vs. latest). It does not, however, differentiate itself from nearby siblings like getHistory or rollback, which an agent might confuse for retrieving prior execution output.
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?
There is no explicit when-to-use or when-not-to-use guidance. The agent is left to infer that this pairs with a command-execution tool such as run-script, and no alternative (e.g. getHistory) is named or excluded.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getSettingsA
Get current MCP settings and connection status to After Effects
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the returned content (settings plus connection status), which is genuinely behavioral information. However, it says nothing about whether this is a pure read, whether it can fail or hang when After Effects is not running, or what 'connection status' resolves to.
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 front-loaded sentence with no filler; the purpose and scope are stated immediately.
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 zero-parameter, no-output-schema read tool, the description covers what is retrieved and from where, which is enough to invoke it correctly. It could add a note on the diagnostic use case relative to configureSettings, but nothing essential is missing.
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 takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies.
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 states a specific verb ('Get') and two concrete resources ('MCP settings' and 'connection status to After Effects'). It is clearly distinguishable from the sibling configureSettings (read vs. configure), though it does not name that sibling explicitly.
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?
There is no guidance on when to call this versus alternatives such as configureSettings, nor any precondition (e.g., that it is useful for diagnosing whether the bridge/AE connection is live). Usage is only implied by the verb 'Get'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
importAssetB
Import 3D models (.obj, .gltf, .glb), images (.png, .jpg, .psd), vectors/SVG (.svg, .ai), video (.mp4, .mov) or audio into AE project and optionally add as a layer in a composition
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional custom name for footage/layer | |
| scale | No | Initial scale [x, y] or [x, y, z] | |
| compName | No | If specified, immediately adds the imported asset as a layer into this composition | |
| filePath | Yes | Absolute file path of the asset to import | |
| isThreeD | No | Make the added layer a 3D layer (default: false) | |
| position | No | Initial position [x, y] or [x, y, z] | |
| sequence | No | Import as image sequence (default: false) | |
| convertToShape | No | If importing SVG or Illustrator vector, convert to native AE Shape Layer (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the import formats and the optional layer-adding side effect, but says nothing about project-state mutation, whether re-importing duplicates footage, overwrite behavior, or undo semantics for what is fundamentally a write 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?
A single front-loaded sentence leading with the verb and the format list, then the optional layer behavior. Efficient, though the long format enumeration is dense; it is not bloated.
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 an 8-parameter mutation tool with no annotations and no output schema, the description covers formats and the two operating modes but omits behavioral context (error handling on missing files, re-import behavior, return value). 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 100%, so every parameter (name, scale, compName, filePath, isThreeD, position, sequence, convertToShape) is already documented in the schema. The description only touches compName's effect ('add as a layer in a composition') and adds no format/syntax detail beyond the schema, so the baseline 3 applies.
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?
Specific verb ('Import') plus resource ('assets into AE project'), with an explicit enumeration of supported formats (.obj/.gltf/.glb, images, SVG/AI, video, audio) and the optional layer-creation mode. This clearly distinguishes it from sibling creation tools like createSolidLayer or create3DLayer.
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 the use case (bring external media into the project, optionally as a layer) but gives no explicit when-to-use/when-not guidance and names no alternatives. The optional-layer phrasing hints at the two modes but does not tell the agent which sibling to prefer or when.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
installBridgeC
Automatically detect After Effects installations and install the mcp-bridge-auto.jsx panel script to ScriptUI Panels
| Name | Required | Description | Default |
|---|---|---|---|
| targetDir | No | Optional custom ScriptUI Panels directory path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it omits that this writes to the user's filesystem, whether it overwrites an existing panel, whether AE must be closed, whether it is idempotent, and what happens if no installation is found. 'Automatically detect' hints at multi-version behavior but does not say whether it installs to one or all detected copies.
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?
One efficiently packed sentence with the action front-loaded and no filler. It is slightly overloaded with the literal filename, but nothing is wasted.
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 one-parameter, side-effecting install tool with no annotations and no output schema, the description covers what it does and where it writes but leaves the agent without prerequisites, idempotency, or result information (e.g. which installs were detected). Just enough to call it, not enough to call it confidently.
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 single parameter is optional with its own description, so the baseline is 3. The phrase 'ScriptUI Panels' in the description loosely explains what targetDir overrides (the default install location), adding 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 gives a specific verb (install) and a concrete resource (the mcp-bridge-auto.jsx panel script) plus the exact destination (ScriptUI Panels), which no sibling tool covers. It does not need sibling differentiation because no other installer-type tool exists, but it also stops short of stating a scope limitation an agent could compare against.
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?
There is no statement of when this should run (e.g. first-time setup, before other bridge tools work) or how it relates to getInstalledPlugins, which is the nearest sibling. An agent must infer that this is a prerequisite step rather than being told.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
removeEffectC
Remove an effect from a layer
| Name | Required | Description | Default |
|---|---|---|---|
| compName | No | Composition name | |
| layerName | No | Layer name | |
| effectName | No | Effect name | |
| layerIndex | No | Layer index | |
| effectIndex | No | Effect index on the layer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and fails it: it does not say whether removal is destructive/undoable, whether it errors when the named effect or layer does not exist, or what happens to keyframes and properties attached to the removed effect. For a mutation tool with zero annotation coverage this is a meaningful gap.
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 front-loaded sentence with zero filler; the verb and target lead. It is arguably too terse given the mutation semantics, but there is no structural waste.
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?
A destructive mutation with no annotations, no output schema, and no statement of success/failure behavior or side effects. Given the sibling context (applyEffect, setEffectProperties, reorderEffect), the agent needs at least a hint about preconditions and reversibility that the description never provides.
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%, so the five params (compName, layerName, layerIndex, effectName, effectIndex) are already documented, giving a baseline of 3. The description does not clarify the ambiguity inherent in the schema, namely that layer and effect can be addressed either by name or by index and that all five params are optional.
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?
States a specific verb (Remove) and resource (effect from a layer), which an agent can act on directly and implicitly distinguishes it from applyEffect/addEffect siblings. It stops short of naming any sibling or scope constraint (e.g., effect must already exist on that layer), so it is clear but not fully differentiated.
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 when-to-use guidance, no prerequisites, and no mention of the obvious alternative family (applyEffect, reorderEffect, setEffectEnabled). The use case is inferable from the name alone, but the description itself adds nothing about context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
renameCompositionC
Rename an existing composition in Adobe After Effects
| Name | Required | Description | Default |
|---|---|---|---|
| newName | Yes | New name for the composition | |
| compName | No | Current name of the composition (defaults to active composition) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and discloses almost nothing beyond the bare action. It does not say what happens to layer references, expressions, or rendered output that point at the old name, whether the rename is undoable, or what error surfaces if the composition 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?
A single front-loaded sentence with zero waste. It is appropriately sized, though the terseness reflects missing information rather than disciplined editing.
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?
This is a mutation tool with no annotations and no output schema, so the description must cover behavior, and it does not. An agent cannot tell whether the operation is safe, reversible, or what it returns.
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%, so both parameters are already documented in the schema, including the useful default that compName falls back to the active composition. The description adds no syntax, naming-constraint, or collision-handling detail beyond the schema, so baseline 3 applies.
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?
States a specific verb ('Rename') and resource ('composition') with the host application named. It distinguishes itself from most siblings, but does not differentiate from setCompositionProperties, which could plausibly also rename a composition.
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 when-to-use guidance, no prerequisites, and no mention of alternatives such as setCompositionProperties. The agent must infer entirely from the name that this is the rename path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reorderEffectC
Reorder an effect in the layer effect stack (move up or down)
| Name | Required | Description | Default |
|---|---|---|---|
| compName | No | Composition name | |
| newIndex | Yes | Target index in the effect stack (1-based) | |
| layerName | No | Layer name | |
| effectName | No | Effect name to move | |
| layerIndex | No | Layer index (1-based) | |
| effectIndex | No | Effect index to move |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses only that this reorders within the effect stack, saying nothing about permissions, out-of-range index handling, whether the operation is reversible, or the response. For a mutation tool with zero annotation coverage this is a significant gap.
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 tight sentence with the action front-loaded and no wasted words. The trailing parenthetical adds marginal confusion rather than value, keeping it short of a 5.
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 6 parameters, no annotations, and no output schema, the description does not explain how to identify the target effect (name-based vs index-based params) or what newIndex must be. For this complexity level the description is too thin to fully guide a 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 100%, so all six parameters (including the two ways to identify the effect: layerName/effectName vs layerIndex/effectIndex) are already documented in the schema. The description adds no parameter meaning beyond that, which is the expected baseline 3.
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?
States a specific verb and resource ('Reorder an effect in the layer effect stack'), which clearly separates it from siblings like applyEffect, removeEffect, and setEffectProperties. However, it does not name a sibling it is not, and the parenthetical 'move up or down' slightly conflicts with the schema's absolute 'newIndex'.
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 indication of when to use this tool versus alternatives such as setEffectProperties or applyEffect, and no prerequisites (e.g., effect must already exist on the layer). Usage is only implied by the verb 'reorder'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rollbackA
Rollback / undo the last mutating operation in After Effects
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It does add real behavioral information by scoping to a single 'last mutating operation' (one level of undo, read operations excluded), but it is silent on irreversibility, what happens when there is nothing to roll back, and permissions.
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 short sentence that is front-loaded with the action and target, containing no filler or redundancy. Every word contributes to identifying the operation.
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 zero-parameter tool with no output schema, the description need not explain return values, but as a state-mutating operation with no annotations it should disclose failure behavior and whether the rollback is itself reversible. The 'last mutating operation' scoping helps but leaves these 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?
The tool takes zero parameters and the schema is empty, so there is nothing for the description to disambiguate. Baseline of 4 applies since no parameter semantics are required.
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 gives a specific verb pair (rollback/undo) and names the exact target resource ('the last mutating operation in After Effects'), so an agent can distinguish it from siblings like getHistory. It stops short of explicitly contrasting itself with any sibling tool, which keeps it from a 5.
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 phrase 'undo the last mutating operation' implies the context of use, and the scoping to mutating (not read) operations gives some routing value. However, it never states when to prefer this over alternatives such as getHistory or run-script, nor any exclusions, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run-scriptC
Execute arbitrary ExtendScript JavaScript code directly inside Adobe After Effects with full DOM access
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | The ExtendScript JavaScript code to execute | |
| description | No | Optional brief description of what the script does |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses only capability ('arbitrary' code, 'full DOM access'). It says nothing about destructive potential, lack of rollback, whether scripts run synchronously, error handling, or security constraints — critical omissions for an arbitrary-code-execution 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?
A single front-loaded sentence with zero filler; the verb and the capability scope come first. Nothing redundant or padding.
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 high-complexity, high-risk arbitrary-code tool with no annotations and no output schema, the description is too thin. It omits risk profile, execution semantics, and any notion of what the call produces or how failures surface.
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% with only two self-explanatory parameters (script, description), so the schema already does the heavy lifting. The description adds no format, language, or syntax guidance beyond what the schema provides, warranting the baseline 3.
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 states a specific verb (Execute) and resource (arbitrary ExtendScript JavaScript code) with the scope qualifier 'directly inside Adobe After Effects with full DOM access.' An agent can tell this is a generic code-execution escape hatch, distinct from the specific effect/layer/composition siblings, though no sibling is named explicitly.
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?
There is no guidance on when to use this versus the ~50 specific sibling tools (e.g., applyEffect, setLayerProperties). It never states the intended use case ('operations not covered by dedicated tools') or any when-not condition, leaving the agent to infer that this is the fallback for uncovered operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
saveProjectA
Save the current After Effects project file, or save a copy to a new file path
| Name | Required | Description | Default |
|---|---|---|---|
| saveAsPath | No | Optional file path to save as a new .aep file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose the two write modes and that saving targets an .aep file, but it omits overwrite semantics for an existing saveAsPath, permission/error behavior, and whether the operation returns the written path.
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?
One sentence, zero padding, with the primary action front-loaded and the alternative mode stated immediately after. Every clause carries 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 one-parameter, zero-annotation tool with no output schema, the description covers both execution modes adequately. It is slightly thin on post-save behavior (return value, failure modes) that an agent might want given the absence of an output schema.
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% and the single optional parameter is fully documented in the schema. The description echoes 'new file path' and adds that it produces a .aep copy, but adds no syntax, absolute-path requirement, or overwrite rule beyond the schema baseline.
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 a specific verb+resource ('Save the current After Effects project file') and distinguishes two distinct modes: in-place save versus save-as to a new path. It is unambiguous, though it does not explicitly contrast itself with any sibling tool (no other save tool exists among the siblings).
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?
Usage is implied by the phrasing: omit the path to overwrite the current project, supply 'saveAsPath' to write a copy. There is no explicit statement of preconditions (e.g. a project must be open) or when-not-to-use guidance, so the agent must infer the branch condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set3DLayerTransformC
Set 3D transform properties on a layer (position, orientation, rotationX, rotationY, rotationZ, scale, anchor point)
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | 3D scale [x, y, z] (100 = 100%) | |
| compName | No | Composition name | |
| position | No | 3D position [x, y, z] | |
| layerName | No | Layer name | |
| rotationX | No | X rotation in degrees | |
| rotationY | No | Y rotation in degrees | |
| rotationZ | No | Z rotation in degrees | |
| layerIndex | No | Layer index (1-based) | |
| anchorPoint | No | 3D anchor point [x, y, z] | |
| orientation | No | 3D orientation [x, y, z] in degrees |
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. 'Set' implies mutation, but it does not disclose whether the layer must already be a 3D layer, whether unspecified transform values are left untouched or reset, permission requirements, or reversibility. For a 10-parameter mutation tool this is a significant gap.
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 front-loaded sentence with no waste; the parenthetical property list is efficient. It could arguably add one routing clause without bloating.
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 rich schema covers all 10 parameters, but with no annotations and no output schema the description should still convey mutation behavior, 3D-layer prerequisites, and layer-identification semantics (compName vs layerName vs layerIndex). It is minimally adequate rather than 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%, so every parameter is already documented with units (degrees, 100 = 100%) and 3-element array shapes. The description only re-lists property names and adds no syntax or constraint detail beyond the schema, so the baseline 3 applies.
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?
States a specific verb+resource ('Set 3D transform properties on a layer') and enumerates the exact properties it controls. It is reasonably distinguishable from siblings like setLayerProperties (2D/general) and setLayerKeyframe, though it does not name an alternative explicitly.
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 when-to-use guidance, no exclusions, and no indication of how this differs from setLayerProperties or setLayerKeyframe. The agent must infer that this is the 3D-specific variant on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setCameraPropertiesB
Set or modify properties on an existing 3D camera layer (position, pointOfInterest, rotations, zoom, depthOfField, focusDistance, aperture, iris, or auto-lock focus to a layer)
| Name | Required | Description | Default |
|---|---|---|---|
| zoom | No | Camera zoom / focal length in pixels | |
| aperture | No | Aperture in pixels (controls blur strength) | |
| compName | No | Composition name (defaults to active comp) | |
| position | No | New 3D position [x, y, z] | |
| blurLevel | No | Blur level percentage (0 - 500) | |
| irisShape | No | Iris bokeh blade shape | |
| rotationX | No | X rotation in degrees | |
| rotationY | No | Y rotation in degrees | |
| rotationZ | No | Z rotation in degrees | |
| cameraName | No | Camera layer name | |
| cameraType | No | Switch camera between one-node (no auto-orient) and two-node (auto-orient to point of interest) | |
| cameraIndex | No | Camera layer index (1-based) | |
| orientation | No | 3D orientation [x, y, z] in degrees | |
| depthOfField | No | Enable/disable Depth of Field | |
| irisRotation | No | Iris rotation angle in degrees | |
| focusDistance | No | Focus distance in pixels | |
| irisRoundness | No | Iris roundness percentage | |
| irisAspectRatio | No | Iris aspect ratio (anamorphic bokeh stretching) | |
| pointOfInterest | No | New 3D Point of Interest [x, y, z] | |
| lockFocusToLayer | No | Name or index of target layer to permanently lock camera focusDistance to, keeping the target razor sharp |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies mutation and requires an existing camera, but says nothing about partial-update semantics (whether omitted properties are left untouched or reset), undo/reversibility, permission requirements, or how errors surface when the named camera 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?
A single sentence with the verb and target front-loaded, which is efficient. The long trailing enumeration of property names repeats what the schema already lists, so it is slightly overlong rather than perfectly tight.
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 20-parameter mutation tool with no annotations and no output schema, the description covers the transform/optical properties but is silent on how the target camera is addressed (cameraName/cameraIndex/compName), on cameraType switching, and on the fact that all parameters are optional and independently applied.
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%, so all 20 parameters are already documented at the field level; baseline 3 applies. The parenthetical list largely restates schema properties and omits the selection-related parameters (cameraName, cameraIndex, compName) and cameraType, so it adds little meaning 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 names a specific verb ('set or modify'), a specific resource ('3D camera layer'), and enumerates the property families affected. The word 'existing' distinguishes it from createCamera and createCameraRig, though it does not explicitly distinguish it from applyCameraMove or setLayerProperties.
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?
Usage is only implied: the tool operates on an 'existing' camera layer, so a camera must already exist. There is no statement of when to prefer this over applyCameraMove, trackCameraToLayer, or the generic setLayerProperties, and no prerequisite or exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setCompositionPropertiesC
Modify properties of an existing composition including name, dimensions (width/height), duration, framerate, and background color
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | New width in pixels | |
| height | No | New height in pixels | |
| bgColor | No | RGB background color [0-1, 0-1, 0-1] | |
| newName | No | Optional new name for the composition | |
| compName | No | Composition name (defaults to active composition) | |
| duration | No | New duration in seconds | |
| frameRate | No | New frame rate in FPS | |
| pixelAspectRatio | No | Pixel aspect ratio |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full behavioral burden. It states that properties are modified but says nothing about reversibility/undo, whether unspecified properties are preserved, whether changing width/height/duration affects existing layers or keyframes, or which composition is targeted when none is named. 'Modify' alone is thin 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?
A single, front-loaded sentence with no filler, and the verb and affected resource lead the line. It is efficient, though a slightly longer treatment of scope and defaults would have been justified for an 8-parameter mutation 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?
For an 8-parameter mutation tool with no annotations and no output schema, the description covers the headline capabilities but leaves gaps: it never mentions the compName selector (or the active-composition default), the pixelAspectRatio option, or what a caller should expect after resizing. It is 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%, so every parameter is already documented in the schema, which sets the baseline at 3. The description restates a subset of the parameters (name, width/height, duration, framerate, bgColor) but omits compName and pixelAspectRatio and adds no format or unit detail beyond what the schema already provides.
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 gives a specific verb (Modify) plus the resource (an existing composition) and enumerates the editable attributes, so the agent immediately knows what the tool does. It fails to distinguish itself from the sibling renameComposition, which overlaps with the 'name' portion of this tool's scope, so it does not earn a 5.
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?
There is no guidance on when to use this tool versus alternatives. The sibling list contains renameComposition (name-only change) and setCompRenderer, yet the description never states when this broader property tool is preferred over the narrower one, nor any prerequisite such as needing an open project or active composition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setCompRendererA
Switch composition 3D render engine (e.g. "ADBE Advanced 3D" for PBR & 3D models, "ADBE Cinema 4D" for extrusions, "ADBE Classic 3D")
| Name | Required | Description | Default |
|---|---|---|---|
| compName | No | Composition name | |
| renderer | Yes | Target 3D render engine: "ADBE Advanced 3D", "ADBE Cinema 4D", or "ADBE Classic 3D" |
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 says nothing about whether switching the renderer is destructive/reversible, whether it requires a selected composition, what happens if compName is omitted, or how existing 3D layers are affected. For a mutation tool this is a real gap.
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 front-loaded sentence with the core action first. The nested parentheses make the example list slightly dense, but there is no filler and every clause carries 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 simple two-parameter tool with no output schema this is nearly adequate, but with zero annotations a mutation tool should at least state the default for the optional compName and whether the change is a normal undoable edit. The core purpose is covered but the operational context is thin.
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%, so the baseline is 3, but the description goes beyond the schema's bare value list by explaining what each engine value is for (Advanced 3D for PBR/models, Cinema 4D for extrusions). It still says nothing about the optional compName parameter's default behavior.
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?
States a specific verb+resource ('Switch composition 3D render engine') that an agent can immediately act on. It also implicitly distinguishes itself from the sibling getCompRenderer by being the mutating counterpart, and the parenthetical enumerates the concrete engine values.
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 explicit when-to-use, prerequisites, or exclusions are given. The parenthetical hints at selection criteria ('PBR & 3D models', 'extrusions'), which is useful implied guidance, but the agent must infer that this is the setter for the engine read by getCompRenderer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setEffectEnabledC
Enable or disable (bypass) an effect on a layer
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | True to enable effect, false to disable/bypass | |
| compName | No | Composition name | |
| layerName | No | Layer name | |
| effectName | No | Effect name | |
| layerIndex | No | Layer index (1-based) | |
| effectIndex | No | Effect index on layer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully clarifies that disabling means 'bypass' rather than removal, but says nothing about whether the effect must already exist, how the target layer/effect is resolved among the six params, or what happens on an invalid target.
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 tight sentence with zero filler, front-loading the core action. Nothing is wasted.
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 six-parameter mutation tool with no annotations and no output schema, the description is thin. It does not explain how the layer/effect is identified (compName vs layerName vs layerIndex, effectName vs effectIndex), which is the main ambiguity an agent would face.
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%, so the schema already documents all six parameters, and the description only re-states the enabled semantics ('bypass'). Baseline 3 applies when the schema does the heavy lifting.
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?
States a specific verb pair (enable/disable) and the exact resource and scope (an effect on a layer). It is distinguishable from siblings like removeEffect and setEffectProperties. It lacks explicit naming of those siblings, so it falls short of a 5.
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?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as setEffectProperties or removeEffect. Usage is only implied by the verb; the agent gets no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setEffectPropertiesC
Set parameter values or keyframes on an applied effect/plugin
| Name | Required | Description | Default |
|---|---|---|---|
| compName | No | Composition name | |
| layerName | No | Layer name | |
| effectName | No | Effect name (e.g. "Gaussian Blur") | |
| layerIndex | No | Layer index | |
| properties | Yes | Key-value map of property names and target values (e.g. { "Blurriness": 25 } or with time: { "Blurriness": { time: 1.0, value: 25 } }) | |
| effectIndex | No | Effect index on the layer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies mutation and discloses the dual value/keyframe capability, but says nothing about required permissions, whether existing values are overwritten, or error behavior when the effect/layer 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?
A single front-loaded sentence with no wasted words. It is efficient, though its extreme brevity contributes to the missing guidance noted in other dimensions.
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 6-parameter mutation tool with no annotations and no output schema, one terse sentence is insufficient. It omits prerequisites, sibling disambiguation (setEffectPropertyKeyframe), and overwrite semantics that an agent needs to call it correctly.
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%, so all six parameters are already documented in the schema, including the key-value map format. The description adds no additional meaning about compName/layerName/effectIndex resolution or the properties map beyond what the schema states, so the baseline of 3 applies.
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?
States a specific verb (Set) and resource (parameter values or keyframes on an applied effect/plugin). However, it does not differentiate itself from the close sibling setEffectPropertyKeyframe, so an agent cannot tell from the description alone when this plural form is preferred over the singular keyframe 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 gives no when-to-use guidance, no prerequisites (e.g. the effect must already be applied), and no routing to alternatives such as applyEffect or setEffectPropertyKeyframe. Usage is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setEffectPropertyKeyframeC
Animate an effect parameter by adding a keyframe at a specific time with easing curve interpolation
| Name | Required | Description | Default |
|---|---|---|---|
| time | Yes | Timestamp in seconds to set keyframe | |
| value | No | Target value for the parameter at this keyframe | |
| compName | No | Composition name | |
| layerName | No | Layer name | |
| effectName | No | Effect name (e.g. "Gaussian Blur", "Glow") | |
| layerIndex | No | Layer index (1-based) | |
| effectIndex | No | Effect index on the layer | |
| propertyName | Yes | Parameter name on the effect (e.g. "Blurriness", "Glow Radius", "Threshold") | |
| keyframeInterpolation | No | Easing interpolation type (default: "ease") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It conveys that a keyframe is added with easing, but does not disclose whether an existing keyframe at the same time is overwritten, whether the change is undoable, what permissions/selection context are required, or what the call returns. For a mutation tool this is a substantial gap.
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 well-formed sentence with the core action front-loaded and no filler. It is appropriately sized, though it is too terse to carry the behavioral detail the tool needs.
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 schema is rich and fully self-describing, and no output schema exists, so much of the calling contract is covered. However, with nine parameters, no annotations, and a mutation side effect, the one-line description leaves usage context and overwrite/return behavior unaddressed.
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%, so every parameter is already documented, including the interpolation enum and defaults. The description adds only a generic restatement ('specific time with easing curve interpolation'), which does not extend meaning beyond the schema. 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?
States a specific verb (add keyframe to animate) and resource (effect parameter), with scope narrowed to effect-level properties rather than layer properties. This separates it from setLayerKeyframe implicitly, but the distinction is never made explicit, so an agent must infer it from the word 'effect'.
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 when-to-use guidance, no exclusions, and no mention of the sibling setLayerKeyframe (for layer transforms) or setEffectProperties (for static values). The agent gets no help choosing among the keyframe- and effect-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setKeyframeVelocityC
Adjust the speed and influence velocity curves (Graph Editor curve) of a keyframe on a property
| Name | Required | Description | Default |
|---|---|---|---|
| time | No | Timestamp in seconds to target nearest keyframe | |
| preset | No | Pre-configured velocity curve preset ("dynamicSnap" = 75% influence modern snappy curve) | |
| inSpeed | No | Incoming speed (value change/second, default: 0) | |
| compName | No | Composition name | |
| keyIndex | No | Keyframe index (1-based, defaults to 1 or matched by time) | |
| outSpeed | No | Outgoing speed (value change/second, default: 0) | |
| layerName | No | Layer name | |
| layerIndex | No | Layer index (1-based) | |
| inInfluence | No | Incoming influence percentage (0.1 to 100%, default: 33.33) | |
| outInfluence | No | Outgoing influence percentage (0.1 to 100%, default: 33.33) | |
| propertyName | Yes | Property name to adjust (e.g. "Position", "Scale", "Opacity", "Rotation", or effect property) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it only restates the operation. It omits whether the target keyframe must pre-exist, what happens when time matches no keyframe, whether preset and the individual in/out values interact or override each other, and whether the change is undoable.
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 front-loaded sentence with no filler. The parenthetical is mildly redundant but does help disambiguate 'velocity curves' for newcomers, so it still 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 an 11-parameter mutation tool with no annotations and no output schema, the description is thin: it does not explain the preset-vs-manual-value interaction, the keyframe-targeting priority (time vs keyIndex), or error behavior. Schema documentation covers the field-level detail, keeping this 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%, with units and defaults spelled out for every parameter (e.g. inInfluence 0.1-100%, default 33.33; keyIndex 1-based). The description adds nothing beyond that, so the 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?
States a specific verb (Adjust) and resource (speed and influence velocity curves of a keyframe on a property), and parenthetically clarifies the Graph Editor concept. It is clearly a velocity/bezier-editing tool rather than a value-setting one, though it never names siblings like setLayerKeyframe to sharpen the boundary.
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 when-to-use, when-not-to-use, or alternative guidance is given. With siblings such as setLayerKeyframe, setEffectPropertyKeyframe, and setEffectProperties in the same namespace, an agent gets no help deciding which tool applies, nor any stated precondition that a keyframe must already exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setLayerExpressionC
Add, modify, or remove an expression on a layer property
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | No | Whether the expression is enabled (default: true) | |
| compName | No | Composition name | |
| layerName | No | Layer name | |
| expression | Yes | Expression string (e.g. "wiggle(2, 20)"), or null/empty string to remove expression | |
| layerIndex | No | Layer index | |
| propertyName | Yes | Property name (e.g. "Position", "Opacity", "Rotation") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the entire behavioral burden. It does convey the three mutation modes including removal, but says nothing about permission requirements, whether an existing expression is silently overwritten, error behavior on invalid expressions, or the effect on already-keyframed values.
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 front-loaded sentence that enumerates the exact action set with zero filler. It is appropriately sized, though the same brevity is what leaves usage and behavioral gaps.
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 no-annotation, no-output-schema mutation tool with six parameters, the description is only minimally sufficient. It names the operation but omits layer-targeting guidance (compName vs layerName vs layerIndex) and any failure or overwrite semantics an agent would need before calling it.
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%, so all six parameters (including the name/index layer-selection pair and the null-to-remove expression semantics) are already documented in the schema. The description adds no syntax or selection-priority detail beyond that, so the baseline 3 applies.
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?
States a specific verb set (add, modify, remove) against a specific resource (an expression on a layer property), which is unambiguous on its own. It does not, however, differentiate itself from near-neighbors like setLayerProperties or setLayerKeyframe, so an agent must infer the boundary from the name alone.
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?
There is no guidance on when to reach for this tool versus setLayerProperties (static values) or setLayerKeyframe (keyframed values). No prerequisites, no mention of what happens if the expression is invalid or the referenced property does not exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setLayerKeyframeC
Add a keyframe to a layer property at a specific timestamp with optional interpolation
| Name | Required | Description | Default |
|---|---|---|---|
| time | Yes | Time in seconds where the keyframe should be set | |
| value | Yes | Keyframe value (number or array of numbers) | |
| compName | No | Composition name (defaults to active composition) | |
| layerName | No | Layer name | |
| layerIndex | No | Layer index (1-based) | |
| propertyName | Yes | Property name (e.g. "Position", "Scale", "Rotation", "Opacity", or effect property) | |
| keyframeInterpolation | No | Keyframe easing type |
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 of behavioral disclosure for a mutation tool. It does not say what happens to an existing keyframe at the same timestamp (overwrite vs. error), whether permissions are required, or how the keyframe interacts with later velocity edits. 'Optional interpolation' is the only behavioral hint offered.
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 well-formed sentence with the action front-loaded, no wasted clauses, and no repetition. It is appropriately sized, though it could carry one more sentence of behavior without becoming bloated.
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 schema is fully described and the core action is clear, but for a 7-parameter mutation tool with no annotations and no output schema, the definition leaves behavioral questions unanswered. Write semantics (overwrite behavior, error conditions) are the notable gap.
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%, so the schema already documents all seven parameters, which sets the baseline at 3. The description adds 'at a specific timestamp' (time) and 'optional interpolation' (keyframeInterpolation), but these only echo existing field names rather than adding format or constraint 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?
States a specific verb and resource: 'Add a keyframe to a layer property at a specific timestamp'. The phrase 'layer property' implicitly separates it from setEffectPropertyKeyframe, which handles effect properties. However, it never names that sibling or any alternative, so differentiation is left to inference.
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?
There is no explicit when-to-use guidance, no prerequisites, and no routing to alternatives such as setEffectPropertyKeyframe or setKeyframeVelocity. The 'layer property' wording hints at scope but stops short of telling an agent when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setLayerMaskC
Create or modify layer masks (shape vertices, mode, feather, opacity, expansion, inverted)
| Name | Required | Description | Default |
|---|---|---|---|
| compName | No | Composition name | |
| inverted | No | Invert the mask | |
| maskMode | No | Mask blend mode | |
| maskName | No | Mask name (e.g. "Mask 1") | |
| layerName | No | Layer name | |
| maskIndex | No | Mask index (1-based) | |
| maskShape | No | Mask shape vertex data | |
| layerIndex | No | Layer index | |
| maskFeather | No | Mask feather [x, y] in pixels | |
| maskOpacity | No | Mask opacity (0-100) | |
| maskExpansion | No | Mask expansion in pixels |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It signals a mutation ('Create or modify') and lists changeable attributes, but says nothing about what happens on create vs. modify, whether an existing mask is overwritten, permission/auth needs, or error conditions for an 11-parameter 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?
A single front-loaded sentence with the purpose first and the attribute list second; it is compact and readable. The parenthetical enumeration is somewhat redundant against the schema, keeping it just below top marks.
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 an 11-parameter, zero-required, nested-object mutation tool with no annotations and no output schema, the description omits far too much: which parameters are needed to create vs. modify, how masks are identified (name vs. index), and how it relates to addLayerMask. The definition is inadequate for the tool's 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 100%, so the schema already documents every parameter and the baseline is 3. The description's parenthetical field list (shape vertices, mode, feather, opacity, expansion, inverted) merely restates a subset of parameter names without adding units, defaults, or interaction rules.
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?
States a specific verb+resource ('Create or modify layer masks') and enumerates the attributes it touches, so the agent knows what the tool operates on. However, it does not distinguish itself from the sibling addLayerMask, and 'Create or modify' actively overlaps with that sibling's apparent purpose, leaving the boundary unclear.
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?
There is no when-to-use guidance, no prerequisites (e.g. that a comp and layer must already exist), and no mention of the alternative addLayerMask. Given the sibling overlap, the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setLayerMaterialOptionsC
Configure 3D material options and shaders on a 3D layer (shadows, lights, ambient, diffuse, specular, shininess, metal, roughness)
| Name | Required | Description | Default |
|---|---|---|---|
| metal | No | Metal reflection percentage (0-100) | |
| ambient | No | Ambient reflection percentage (0-100) | |
| diffuse | No | Diffuse reflection percentage (0-100) | |
| compName | No | Composition name | |
| layerName | No | Layer name | |
| roughness | No | Surface roughness percentage in Advanced 3D (0-100) | |
| layerIndex | No | Layer index (1-based) | |
| castsShadows | No | Casts shadows ("off", "on", "only") | |
| transparency | No | Material transparency percentage (0-100) | |
| acceptsLights | No | Accepts lights ("off", "on") | |
| acceptsShadows | No | Accepts shadows ("off", "on", "only") | |
| customProperties | No | Any custom material properties | |
| lightTransmission | No | Light transmission percentage (0-100) | |
| specularIntensity | No | Specular intensity percentage (0-100) | |
| specularShininess | No | Specular shininess percentage (0-100) | |
| reflectionCoefficient | No | Reflection coefficient percentage (0-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies mutation but says nothing about whether all 16 parameters must be supplied, whether omitted properties are preserved, permission requirements, or reversibility/undo behavior — significant gaps for a setter with zero annotation coverage.
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 front-loaded sentence that leads with the verb and resource before the property list. It is appropriately sized, though the trailing enumeration is somewhat redundant with the schema.
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 16-parameter mutation tool with no annotations and no output schema, the description is too thin: it omits partial-update behavior, the 3D-layer precondition, and any pointer to getLayerMaterialOptions for reading current values. The schema covers parameter detail but the description leaves the operational context incomplete.
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 every parameter has its own description with units and ranges, so the schema does the heavy lifting. The parenthetical list in the description largely duplicates parameter names already documented in the schema rather than adding new meaning (defaults, interactions, or partial-update semantics).
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 states a specific verb (Configure) and resource (3D material options and shaders on a 3D layer), and enumerates the affected properties, so an agent can identify the operation. It does not, however, distinguish itself from the obvious sibling getLayerMaterialOptions or other layer-setting 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?
There is no guidance on when to use this tool versus alternatives such as getLayerMaterialOptions or setLayerProperties, and no stated prerequisites (e.g. that the layer must already be a 3D layer). The agent must infer the context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setLayerPropertiesB
Set properties of a layer (position, scale, rotation, opacity, blendMode, threeDLayer, trackMatteType, enabled, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| compName | No | Composition name | |
| layerName | No | Layer name | |
| layerIndex | No | Layer index | |
| properties | Yes | Properties object to update |
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 does not disclose whether this is a mutating operation, what happens on partial failure, whether changes are undoable, or what permissions are needed. However, the enumeration of properties gives concrete evidence about the scope of the mutation.
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 efficient sentence that front-loads the verb and resource then lists properties. No wasted words, though the property enumeration is somewhat redundant with the schema and could be trimmed.
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 mutation tool with nested object properties, no annotations, and no output schema, the description is inadequate. It does not explain return behavior, error handling, whether unchanged properties persist, or how layer targeting works when both layerName and layerIndex are provided. The agent is left to infer critical operational details.
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%, so the schema already documents all parameters including layerName, layerIndex, and every property in the nested object. The description's list of properties is redundant with the schema and adds no syntax, format, or constraint details beyond what is already there. Baseline 3 is appropriate when the schema does the heavy lifting.
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?
States a specific verb+resource: 'Set properties of a layer' and enumerates property categories (position, scale, rotation, opacity, blendMode, etc.). This is clearly distinguishable from sibling tools like setLayerKeyframe, setLayerMask, or setLayerExpression. However, the description does not differentiate from the sibling 'batchSetLayerProperties' – which appears to do the same thing for multiple layers – leaving the agent to guess which tool to use for a single-layer update.
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 when-to-use or when-not-to-use guidance is provided. The agent receives no help distinguishing this from 'batchSetLayerProperties' (which likely handles multiple layers) or from property-specific setters like setEffectProperties. The description is purely declarative and provides no selection logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trackCameraToLayerB
Link a 3D camera to track a target layer: look_at (lock Point of Interest), follow_position (camera follows target layer movement), or focus_distance (auto-focus keeps target in sharp focus)
| Name | Required | Description | Default |
|---|---|---|---|
| compName | No | Composition name (defaults to active comp) | |
| trackMode | Yes | Tracking mode: "look_at" aims camera at target, "follow_position" maintains camera offset as target moves, "focus_distance" locks focus distance to target | |
| cameraName | No | Camera layer name | |
| cameraIndex | No | Camera layer index (1-based) | |
| targetLayerName | No | Name of the target layer to track | |
| targetLayerIndex | No | Index of the target layer to track |
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 explains what each tracking mode does behaviorally (aim, follow offset, lock focus), but omits whether it creates expressions/constraints, whether it is reversible, what permissions or preconditions are required, and what happens to prior tracking links.
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 front-loaded sentence establishing the action and then the three modes. Efficient, though the parenthetical glosses make it slightly run-on rather than crisply itemized.
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 6-parameter rigging tool with no annotations and no output schema, the description covers purpose and mode semantics but leaves out preconditions, side effects on existing tracking, and error behavior, so an agent lacks enough to invoke it confidently in edge cases.
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%, so the schema already documents compName, cameraName, cameraIndex, targetLayerName, targetLayerIndex and the trackMode enum in detail. The description's mode gloss largely duplicates the enum description, adding no syntax or precedence detail (e.g. name vs index).
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?
States a specific verb and resource: 'Link a 3D camera to track a target layer', and enumerates the three tracking modes. The purpose is unambiguous, though it doesn't explicitly distinguish itself from related camera siblings like createCameraRig or setCameraProperties.
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 three modes are presented as alternatives, which implicitly guides mode selection, but there is no guidance on when to use this tool versus createCameraRig, applyCameraMove, or setCameraProperties, and no prerequisites (e.g. camera and target layer must already exist).
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.
54 tool updates
v1.0.0- First observed
addLayerMask - First observed
addTextAnimator - First observed
aiModifySelectedLayer - First observed
applyCameraMove - First observed
applyEffect - First observed
batchSetLayerProperties - First observed
configureSettings - First observed
create-composition - First observed
create3DLayer - First observed
createCamera - First observed
createCameraRig - First observed
createLight - First observed
createNullObject - First observed
createSolidLayer - First observed
createTextLayer - First observed
deleteLayer - First observed
duplicateLayer - First observed
exportFrame - First observed
exportPreviewVideo - First observed
formatTextLayer - First observed
get-help - First observed
get-results - First observed
getAvailableFonts - First observed
getCompRenderer - First observed
getEffectProperties - First observed
getHistory - First observed
getInstalledPlugins - First observed
getKeyframeInfo - First observed
getLayerInfo - First observed
getLayerMaterialOptions - First observed
getProjectInfo - First observed
getSettings - First observed
importAsset - First observed
installBridge - First observed
removeEffect - First observed
renameComposition - First observed
reorderEffect - First observed
rollback - First observed
run-script - First observed
saveProject - First observed
set3DLayerTransform - First observed
setCameraProperties - First observed
setCompositionProperties - First observed
setCompRenderer - First observed
setEffectEnabled - First observed
setEffectProperties - First observed
setEffectPropertyKeyframe - First observed
setKeyframeVelocity - First observed
setLayerExpression - First observed
setLayerKeyframe - First observed
setLayerMask - First observed
setLayerMaterialOptions - First observed
setLayerProperties - First observed
trackCameraToLayer
TDQS
Scored across 54 tools
Most tools target distinct operations, but several property setters overlap in practice: setLayerProperties, set3DLayerTransform, setLayerMaterialOptions, and setEffectProperties all modify layer/effect state with unclear boundaries. Mask tools addLayerMask vs setLayerMask and layer creators create3DLayer vs createSolidLayer/createNullObject/createTextLayer also require reading descriptions closely to choose correctly.
The set is mostly camelCase with a consistent verb_noun pattern (e.g., applyEffect, setLayerProperties, getProjectInfo). A handful of tools break the pattern with hyphenated names: create-composition, run-script, get-results, get-help, which slightly reduces predictability.
54 tools is an extreme tool count for a single MCP server, well beyond the 3-15 range that supports reliable agent selection. While After Effects is a broad domain, this surface is heavily fragmented and likely overwhelms an agent choosing among many granular setters and creators.
Coverage is extensive across compositions, layers, effects, cameras, text, 3D, import/export, project state, and history/rollback. Minor gaps remain, such as deleting or duplicating compositions, explicit 2D shape-layer creation, parenting controls, and keyframe removal operations.
Maintenance
Related MCP Connectors
- tonpitOAuthcom.tonpit
Video production studio for AI agents: AI media, motion graphics as code, timeline and export.
AI editor to build, animate & export layered short-form video projects via one tool catalog.
AI video editor for agents and humans: timeline, captions, color, audio and generation as MCP tools.
Create AI animations and export transparent sprite sheets, alpha video, frames, and game assets.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables AI assistants to control Adobe After Effects through the MCP protocol, including composition creation, layer management, and animation.13126 npmMIT
- -licenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to control Adobe After Effects through a standardized MCP protocol, providing tools for composition creation, layer management, and animation.-
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to control Adobe After Effects to create videos programmatically, with commands for comps, layers, effects, and rendering.8 npm23MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to operate Adobe After Effects with the dexterity of an editor: reading projects, creating and rigging layers, setting real velocity curves, animating text, building native SVG-based shapes, applying effects, expressions, masks, and viewing render snapshots to verify results.1716 npm1MIT