Skip to main content
Glama

After Effects MCP (Model Context Protocol) Server

Release License: MIT

NOTE

中文安装与使用教程

针对 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:从 GitHub Releases 下载完整安装包(推荐开箱即用)

  1. 前往 Releases 页面 下载完整打包程序 after-effects-mcp-v1.1.0-complete.zip(内含已编译的 dist/index.js、dist/scripts/mcp-bridge-auto.jsx、内置 DOVER-Mobile 视频评分模型、内置 MMS/CTC 字幕强制对齐模型、内置 ffmpeg.exe 解码器以及一键安装脚本 install-bridge.bat 和专门的安装说明 INSTALL_GUIDE.md)。

  2. 解压到固定目录(例如 D:\after-effects-mcp),双击运行 install-bridge.bat(自动完成依赖校验、清理 AE 主菜单残留备份并安装 mcp-bridge-auto.jsx)。

  3. 如需手动安装面板脚本,也可直接将 dist/scripts/mcp-bridge-auto.jsx(或单独下载 mcp-bridge-panel-v1.1.0.jsx.zip)复制到您的 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 脚本权限

  1. 打开 Adobe After Effects。

  2. 进入首选项设置:

    • Windows:菜单栏点击 编辑 (Edit) -> 首选项 (Preferences) -> 脚本和表达式 (Scripting & Expressions)。

    • macOS:菜单栏点击 After Effects -> 首选项 (Preferences) -> 脚本和表达式 (Scripting & Expressions)。

  3. 勾选 “允许脚本写入文件和访问网络” (Allow Scripts to Write Files and Access Network)。

  4. 点击“确定”保存设置。


步骤 3:在 AE 中启动桥接面板

  1. 在 After Effects 顶部菜单栏点击 窗口 (Window)。

  2. 在下拉菜单底部找到并点击 mcp-bridge-auto.jsx。

  3. 面板打开后,您可将其停靠在工作区任意位置(如合成窗口旁或控制面板组中)。

  4. 面板会自动建立心跳并开始监听,保持面板开启即可,全程无需任何手动操作。


步骤 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: aftr

常用功能与工具示例

工具名称

功能描述

create-composition

创建指定宽高、帧率、时长的合成

renameComposition

重命名指定或当前活动的合成

setCompositionProperties

动态修改合成分辨率、时长、帧率、背景色

createTextLayer

创建 2D/3D 文本图层(字号、字距、字体、填色/描边、居中对齐、直接附加发光等特效)

addTextAnimator

添加逐字打字机、3D字符翻转、弹跳缩放、波浪抖动等全套文字动画器

createCamera / applyCameraMove

创建电影级 3D 摄像机并执行环绕 (Orbit)、推拉 (Dolly)、横移 (Truck)、手持微晃 (Handheld) 等运镜

setKeyframeVelocity

精确调节速度曲线影响度 (Influence) 与速度 (Speed),内置 dynamicSnap、extremeSnap 等强缓动预设

applyEffect / setEffectProperties

添加与修改内置或第三方插件(Glow、Trapcode、Sapphire、Element 3D 等)

exportFrame

截取合成指定时刻的完整画面并生成 PNG 截图快照

exportPreviewVideo

快速导出指定帧区间的低清预览视频

analyzeAudioRhythm

【v1.1 新增】 提取音频精确 BPM、4/4 小节重拍、多频段鼓点 (Kick/Snare/Hi-Hat)、能量包络及前奏/铺垫/高潮爆发分段

applyBeatMarkersToComp

【v1.1 新增】 自动在 AE 合成或图层时间线上注入重拍、鼓点与强冲击标记点

alignLyricsWithMMS

【v1.1 新增】 基于内置 MMS-Align / CTC-Segmentation 声学模型与 Silero VAD v6,精准计算歌词每个词/字的起止毫秒时间与鼓点偏差

createAlignedLyricLayers

【v1.1 新增】 根据 MMS/CTC 声学对齐结果一键在 AE 合成中生成精准卡点的 3D 动态字幕图层

evaluateVideoWithDOVER

【v1.1 新增】 调用内置官方 DOVER-Mobile (ConvNeXtV2-Femto-3D) 模型对渲染视频进行技术质量、美学质量及音画同步率打分(0-100分)并给出修改建议

analyzeMusicEmotionWithMusiCNN

【v1.2 新增】 基于内置 MusiCNN (musicnn_mood_va.onnx) 提取 50 维情绪/配器/结构标签、连续 Russell 情绪环(效价/唤醒度/张力)曲线,并结合 AudioLyricPoseNet 输出双人角色 7 自由度骨骼运动学姿态

createArticulatedCharacterRig

【v1.2 新增】 一键生成男/女 3D 关节剪影角色(男士短发收腰制服与领带 / 女士飘带百褶裙),具备腰部铰链三角函数锁骨绑定(俯仰零脱节)与布尔并集防内部断线

create3DSaberSymbolOrPortal

【v1.2 新增】 一键创建 3840x3840 无截断 3D Saber 能量符号/传送门(含眼泪内世界自动 3D 子级缩放重置补偿)

inspectFrameAestheticsAndClipping

【v1.2 新增】 运行内置 FastSal-NIMA-Lite (fastsal_nima_lite.onnx) 模型检测渲染帧的 3D 发光矩形边缘截断、字幕遮挡与美学评分 (1-10分)

fixLayerGlowAndBoundsClipping

【v1.2 新增】 自动遍历合成修复发光边界截断,智能在前级挂载 ADBE Grow Bounds 并将小尺寸 Saber 纯色图层扩展重置

cleanBridgeBackups

【v1.1 新增】 自动扫描并清理 AE 主菜单与 ScriptUI Panels 中的残留备份文件,防止主菜单堆积

rollback

撤销上一步操作并安全恢复工程



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:

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-bridge

Option B: Manual Installation (From GitHub Release)

  1. Go to the Releases page and download mcp-bridge-panel-v1.0.0.zip.

  2. Extract mcp-bridge-auto.jsx.

  3. Copy mcp-bridge-auto.jsx into your After Effects ScriptUI Panels folder:

    • 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

  1. Open Adobe After Effects.

  2. Open Preferences:

    • Windows: Edit -> Preferences -> Scripting & Expressions

    • macOS: After Effects -> Preferences -> Scripting & Expressions

  3. Ensure "Allow Scripts to Write Files and Access Network" is checked.

  4. Click OK.


Step 3: Launch the Bridge Panel in After Effects

  1. In After Effects, navigate to the top menu: Window.

  2. Select mcp-bridge-auto.jsx near the bottom of the menu.

  3. Dock the panel anywhere in your workspace.

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

68 tools
addLayerMaskC

Add a new mask to a layer (rectangle, ellipse, polygon, or custom bezier shape) with mode, feather, and opacity

NameRequiredDescriptionDefault
boundsNoBounds [left, top, width, height] for rectangle or ellipse
closedNoWhether mask shape is closed (default: true)
featherNoMask feather [x, y] in pixels
opacityNoMask opacity 0-100 (default: 100)
compNameNoComposition name
invertedNoInvert mask (default: false)
maskModeNoMask blending mode (default: "add")
maskNameNoMask name (default: "Mask 1")
verticesNoList of 2D vertex coordinates [[x,y],...] for polygon/custom
expansionNoMask expansion / offset in pixels (default: 0)
layerNameNoLayer name
shapeTypeYesMask geometry type
inTangentsNoIn-tangents for bezier control points
layerIndexNoLayer index (1-based)
outTangentsNoOut-tangents for bezier control points

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)

NameRequiredDescriptionDefault
presetNoBuilt-in text animation preset to apply
compNameNoComposition name (defaults to active comp)
durationNoAnimation duration in seconds (default: 1.5)
layerNameNoLayer name
startTimeNoAnimation start time in seconds (default: 0)
layerIndexNoLayer index (1-based)
propertiesNoCustom animator properties to apply
animatorNameNoText animator name (default: "Animator 1")
rangeSelectorNoRange selector configuration
wigglySelectorNoWiggly selector configuration

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
promptYesNatural language prompt describing how to modify the layer (e.g. "做个平滑淡入加弹跳落入动效", "加赛博朋克发光并随时间呼吸闪烁")
compNameNoComposition name (defaults to active comp)
layerNameNoLayer name (defaults to active/first layer)
layerIndexNoLayer index (1-based)
attachScreenshotNoWhether to capture and send current frame screenshot to AI (default: true)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

alignLyricsWithMMSB

Perform frame-accurate forced alignment of lyrics/subtitles against an audio file using bundled MMS-Align / CTC-Segmentation (Neural CTC ONNX + Silero VAD v6 + Viterbi CTC-Segmentation trellis). Returns exact word-level and line-level timestamps, confidence scores, LRC drift corrections, and nearest drum beat offsets.

NameRequiredDescriptionDefault
endTimeNoOptional end time in seconds to filter alignment
audioPathYesPath to the audio file (.mp3, .wav, .flac, .m4a)
startTimeNoOptional start time in seconds to filter alignment
lyricsTextNoOptional raw lyrics text or LRC-formatted text string
lrcFilePathNoOptional path to a .lrc lyric file (if omitted, automatically looks for a matching .lrc file or uses lyricsText)
snapWordsToBeatsNoWhether to automatically snap word entrances within tolerance to the nearest drum/beat transient (default: false)
maxSnapToleranceMsNoMaximum tolerance in milliseconds when snapping words to beats (default: 75)

TDQS

B3.2/5.0
Behavior3/5

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 add genuine context: the models are bundled (MMS-Align, CTC ONNX, Silero VAD v6, Viterbi trellis) so no external setup is implied, and it discloses the return payload (word/line timestamps, confidence, LRC drift corrections, drum-beat offsets). It says nothing about runtime cost, accuracy limits, or failure behavior (e.g., missing LRC, speechless audio) for what is presumably a heavy inference job.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the action and file target before listing outputs, so an agent gets the gist immediately. The parenthetical model stack ('Neural CTC ONNX + Silero VAD v6 + Viterbi CTC-Segmentation trellis') is largely decorative and could be trimmed without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter inference tool with no annotations and no output schema, the description covers purpose and return contents but leaves gaps: how its output feeds siblings like createAlignedLyricLayers, what happens when no lyrics source is found, and expected cost/duration. Adequate to start, incomplete for confident invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 7 parameters and a baseline of 3 applies. The description adds only indirect hints — snapWordsToBeats is reflected in the 'nearest drum beat offsets' output mention and LRC handling in 'LRC drift corrections' — with no extra format or interaction details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Perform frame-accurate forced alignment of lyrics/subtitles against an audio file') and names the concrete pipeline used, which is unmistakable against siblings like applyBeatMarkersToComp or createAlignedLyricLayers. It never explicitly says how it differs from those neighbors, so an agent must infer the boundary itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 guidance and no routing to alternatives, despite several plausible siblings (analyzeAudioRhythm, analyzeMusicEmotionWithMusiCNN, createAlignedLyricLayers) that an agent could confuse it with. Prerequisites such as needing an existing LRC file or the audio containing vocals are left entirely implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

analyzeAudioRhythmA

Extract exact BPM, beat grid, 4/4 downbeats, sub-band drum onsets (Kick 20-150Hz, Snare 150-2500Hz, Hi-Hat 2500-10500Hz), major impact points, energy envelope, and structural sections (Intro / Buildup / Climax Drop / Outro) from an audio or video file to help align VFX, camera cuts, and text animations to music.

NameRequiredDescriptionDefault
maxBpmNoMaximum BPM search bound (default: 190)
minBpmNoMinimum BPM search bound (default: 70)
endTimeNoOptional end time in seconds to analyze
audioPathYesAbsolute or relative path to the audio or video file (.mp3, .wav, .flac, .m4a, .mp4)
startTimeNoOptional start time in seconds to analyze
sensitivityNoDrum onset detection sensitivity from 0.1 to 1.0 (default: 0.55)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With zero annotations the description must carry the load, and it does disclose what the operation yields in concrete terms (specific frequency bands, downbeat meter, section taxonomy), which is real behavioral detail rather than a restatement of the name. It omits notable traits such as expected runtime on long files, whether analysis is deterministic, or behavior on files with no detectable beat, so it is not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence with a tightly packed enumeration where each item (bands, sections, energy envelope) carries information. The parenthetical Hz ranges and section names make it long but not padded; minor cost is that a reader must scan the whole list to find the input expectation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates the return payload (BPM, beat grid, downbeats, onsets, energy, sections), and all six inputs are documented in the schema. It is sufficient to call correctly; only latency and edge-case behavior are unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with minBpm/maxBpm defaults, sensitivity range, and time-window semantics all documented in the schema. The description adds nothing about these knobs (e.g. when to widen the BPM bounds or lower sensitivity), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Extract') plus the exact resources produced: BPM, beat grid, 4/4 downbeats, sub-band drum onsets with Hz ranges, energy envelope, and named structural sections. This is unmistakably different from the sibling audio tool analyzeMusicEmotionWithMusiCNN (emotion) and from applyBeatMarkersToComp (which consumes markers rather than extracting them), so an agent can route without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The trailing clause 'to help align VFX, camera cuts, and text animations to music' implies the downstream use case, which is useful context. However, it never states when to pick this over the sibling analyzeMusicEmotionWithMusiCNN or applyBeatMarkersToComp, and gives no prerequisites or exclusions, leaving the choice to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

analyzeMusicEmotionWithMusiCNNA

Analyze an audio file using the bundled MusiCNN (musicnn_mood_va.onnx, Pons & Serra 2019 multi-scale timbral+temporal CNN) + AudioLyricPoseNet (audio_lyric_pose_net.onnx). Returns 50 music emotion/instrument/vocal/structure tags, continuous Russell Circumplex Valence-Arousal-Tension trajectories, emotional turning points, and per-window 3D camera + Boy/Girl 7-joint character acting choreography.

NameRequiredDescriptionDefault
topKNoNumber of top mood/music tags to return per segment (default: 6)
endTimeNoEnd time in seconds
audioPathYesAbsolute path to the audio file (.mp3, .wav, .flac, .m4a)
startTimeNoStart time in seconds (default: 0)
windowSecNoWindow duration in seconds for emotion curve if no LRC is provided (default: 3.5)
lyricsTextNoOptional raw LRC or plain lyrics text to fuse lyric affect with MusiCNN audio features for character pose generation
lrcFilePathNoOptional path to .lrc file so each lyric line receives its own MusiCNN emotion & AudioLyricPoseNet acting direction

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses the bundled models, optional lyric fusion, and the kinds of outputs including per-window camera and character choreography, but it omits runtime expectations, file limitations, side effects, whether files are written, and permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and the output list is relevant, so most content earns its place. However, it is a single dense run-on sentence, and the model citation parenthetical adds detail that is not essential for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 must explain return values; it does so by enumerating the tag set, trajectory data, turning points, and choreography outputs. Parameters are fully documented in the schema, but operational context for this complex analysis tool remains thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter already has documented meaning. The description adds no additional parameter semantics such as value ranges, default behavior nuances, or interactions beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: analyze an audio file for music emotion using named bundled models. The output scope (50 tags, valence-arousal-tension trajectories, turning points, character choreography) clearly separates it from rhythm-focused siblings like analyzeAudioRhythm.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, and no named alternative is compared. The only routing hint is that lyricsText/lrcFilePath can fuse lyric affect, but an agent is not told when to choose this tool over analyzeAudioRhythm, alignLyricsWithMMS, or createAlignedLyricLayers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

applyBeatMarkersToCompA

Analyze audio beats & drum hits and automatically inject labeled markers (Downbeats, Beats, Kick, Snare, Major Impacts) into an After Effects composition or target layer.

NameRequiredDescriptionDefault
endTimeNoEnd time in seconds
compNameNoTarget composition name (defaults to active composition)
audioPathYesPath to the audio file to analyze
layerNameNoOptional layer name to place markers on (if omitted, places markers on the composition timeline)
startTimeNoStart time in seconds
markerModeNoWhich rhythm events to add as markers (default: downbeats_and_impacts)
clearExistingMarkersNoClear existing markers before adding (default: false)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does disclose the concrete side effect and its artifacts (labeled Downbeats, Beats, Kick, Snare, Major Impacts) and where they land (comp timeline vs. layer), but it never says what happens to pre-existing markers, whether the operation is undoable, or that audio analysis is potentially slow/long-running.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence: verb first, parenthetical label list second, target third. No filler or repetition; it could be marginally tighter by folding the label list into the marker-mode phrase, but it is well structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter mutation tool with full schema coverage and no output schema, the definition covers purpose and result artifacts adequately. What is missing — return value/analysis latency, failure on unreadable audio, and interaction with existing markers — is moderate rather than fatal, but with zero annotations the description should have picked up more of that slack.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 including the `markerMode` enum. The description adds only light mapping between the listed marker labels and the marker-mode choices, and says nothing about the semantics of `startTime`/`endTime` or `clearExistingMarkers` beyond what the schema states. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb chain ("Analyze audio beats & drum hits and automatically inject labeled markers") plus the concrete resource (markers in an After Effects composition or target layer). An agent can tell what it does, though it never names the sibling `analyzeAudioRhythm`, so the boundary between analysis-only and analysis-plus-marker-injection 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the effect ("inject markers into a composition or target layer") but there are no explicit when-to-use/when-not statements and no prerequisites such as needing an open project or a valid audio file. The presence of the closely related `analyzeAudioRhythm` sibling makes the absence of a routing sentence a real gap.

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 (手持呼吸感)

NameRequiredDescriptionDefault
angleNoAngle in degrees for orbit, pan, or whip pan (e.g. 45, 90, 180, 360)
easingNoKeyframe easing curve (default: "cinematic")
compNameNoComposition name (defaults to active comp)
distanceNoDistance in pixels for dolly/truck/boom movements
durationNoMovement duration in seconds (default: 2.5)
moveTypeYesCinematic camera move type
directionNoDirection of movement
startTimeNoMovement start time in seconds (default: 0)
cameraNameNoCamera layer name (defaults to first camera)
cameraIndexNoCamera layer index (1-based)
targetLayerNameNoTarget layer to orbit around, look at, or dolly toward
targetLayerIndexNoTarget layer index (1-based)
handheldIntensityNoHandheld shake intensity level (for "handheld_shake" moveType)

TDQS

A3.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
compNameNoComposition name
layerNameNoLayer name
effectNameYesEffect name or matchName (e.g. "Gaussian Blur", "ADBE Gaussian Blur 2", "Glow", "ADBE CurvesCustom", "Deep Glow", etc.)
layerIndexNoLayer index
propertiesNoInitial properties to set on the effect immediately upon adding

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

NameRequiredDescriptionDefault
updatesYesArray of layer property update operations
compNameNoComposition name

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

cleanBridgeBackupsB

Scan After Effects ScriptUI Panels and clean up any backup/duplicate jsx files that cause clutter in the Window menu

NameRequiredDescriptionDefault
targetDirNoOptional custom ScriptUI Panels directory path

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It says the tool deletes backup/duplicate files (destructive), but it does not state whether deletion is permanent, whether a confirmation prompt exists, what permissions are needed, or where the default scan occurs. This is a significant gap for a destructive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that states the scan target, cleanup action, and user-visible benefit without any wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 a destructive operation, the description should explain irreversibility, default behavior, and what 'scan' reports. It only provides the high-level purpose, leaving essential behavioral details missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one optional parameter (targetDir) with 100% schema description coverage. The description does not mention the parameter at all, but the schema already explains it clearly, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (scan and clean up) and resource (backup/duplicate jsx files in After Effects ScriptUI Panels), plus the user-facing consequence (Window menu clutter). No sibling tool performs this function, but the description does not explicitly distinguish it from siblings, so a 4 is appropriate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it—when backup/duplicate jsx files cause clutter in the Window menu—but does not explicitly state when to use it versus alternatives or mention any prerequisites or exclusions. Usage is inferable but not explicit.

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

NameRequiredDescriptionDefault
autoSaveNoWhether to auto-save after each operation (default: true)
saveModeNoSave mode: "project" (overwrite .aep), "snapshot" (backup copy), or "both"
timeoutMsNoCommand execution timeout in milliseconds (default: 15000)
maxHistoryNoMaximum number of history records and snapshots to keep (default: 50)
aeExecutablePathNoPath to AfterFX.exe for CLI fallback
autoRecordHistoryNoWhether to record each action in history (default: true)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
nameNoLayer name
sizeNo[width, height] dimensions (default: comp size)
textNoText content (if layerType is "text")
colorNoRGB color [0-1, 0-1, 0-1] (if layerType is "solid")
scaleNo3D scale [x, y, z] (100 = 100%)
compNameNoComposition name
positionNo3D position [x, y, z]
layerTypeYes3D layer type to create
rotationXNoX rotation in degrees
rotationYNoY rotation in degrees
rotationZNoZ rotation in degrees
orientationNo3D orientation [x, y, z] in degrees

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

create3DSaberSymbolOrPortalB

Create an unclipped 3840x3840 3D Video Copilot Saber energy symbol or portal (heart, infinity, teardrop_portal with optional parented inner world & automatic 3D child scale-reset, clock_ring, or fracture_wall).

NameRequiredDescriptionDefault
nameNoLayer name
colorNoSaber RGB glow color [0-1, 0-1, 0-1]
inPointNoIn point in seconds
compNameNoComposition name (defaults to active composition)
coreSizeNoSaber core size (default: 4.2)
outPointNoOut point in seconds
positionNo3D start position [x, y, z]
glowSpreadNoSaber glow spread (default: 0.40)
symbolTypeYes3D Saber mask geometry preset
endPositionNoOptional 3D end position [x, y, z] (e.g., for falling teardrop)
glowIntensityNoSaber glow intensity (default: 48)
createInnerWorldForTeardropNoWhen symbolType is teardrop_portal, automatically create a parented inner infinity world with [100,100,100] scale-compensation fix

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses the 'unclipped 3840x3840' output size, the automatic 3D child scale-reset, and the parented inner world for teardrop_portal, which are genuine behavioral traits. However it omits whether the Saber plugin must be installed, which composition layers are written to, and what the tool returns or whether it 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence with no filler, but it is dense and stuffs an enum list into a description where the schema already defines the same five values, so a portion does not earn its place. The nested parentheses make it harder to parse at a glance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter creation tool with no annotations and no output schema, the description covers purpose and some behavior but leaves gaps: no return value, no indication of which comp the layers land in beyond the compName parameter default, and no plugin-dependency note. It is adequate but incomplete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 12 parameters, including units and defaults. The description adds only marginal meaning, mainly that the inner-world flag applies only to teardrop_portal and that endPosition supports a falling teardrop. 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states a specific verb+resource: creates a 3D Video Copilot Saber energy symbol or portal, and enumerates the preset shapes. No sibling tool overlaps with this purpose, so differentiation is implicit rather than stated, which keeps it just below a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 alternatives (e.g. createSolidLayer or applyEffect), no prerequisites such as requiring the Saber plugin installed, and no exclusions. The agent must infer usage entirely from the name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

createAlignedLyricLayersC

Run MMS-Align / CTC-Segmentation on audio + lyrics and automatically generate (or re-align) 3D kinetic typography text layers in the After Effects composition with beat-locked pop/fade animations.

NameRequiredDescriptionDefault
endTimeNoOptional end time in seconds
compNameNoTarget composition name in After Effects (defaults to active comp)
fontSizeNoFont size in pixels (default: 88)
audioPathYesPath to the audio file (.mp3, .wav, etc.)
startTimeNoOptional start time in seconds
lyricsTextNoOptional raw lyrics or LRC text
granularityNoCreate one text layer per lyric line ("line") or per individual word ("word", default: "line")
lrcFilePathNoOptional path to .lrc file
threeDLayerNoEnable 3D layer switch and Z-pop kinetic entrance (default: true)
snapWordsToBeatsNoSnap text entrances to nearest beat within 75ms (default: true)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden. It establishes that this is a mutating, layer-creating operation inside a live comp, but says nothing about whether existing aligned layers are destroyed or duplicated on re-align, whether the run requires the bridge/plugin to be live, expected runtime for MMS alignment, or whether the result 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence with the action and outcome front-loaded and no filler. It is packed with domain jargon (MMS-Align, CTC-Segmentation) that may cost some readers, but every clause adds information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a ten-parameter, annotation-free mutation tool with no output schema, the description establishes the pipeline and output artifact but omits what is returned (layer names, count, timing data), what happens when neither lyricsText nor lrcFilePath is supplied, and what state the comp is left in. Adequate as an introduction, incomplete as the sole documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all ten parameters are already documented, which sets the baseline at 3. The description only indirectly touches parameters by mentioning audio, lyrics, 3D layers, and beat-locked timing, without adding syntax, format, or precedence rules beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific pipeline (MMS-Align / CTC-Segmentation) and a concrete output artifact (3D kinetic typography text layers in the After Effects composition) with beat-locked pop/fade animations. That is far more specific than the name alone. It stops short of a 5 because it never distinguishes itself from close siblings like alignLyricsWithMMS or applyBeatMarkersToComp, which sound like subsets of this same pipeline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use statement and no exclusion or routing to alternatives, even though alignLyricsWithMMS and applyBeatMarkersToComp cover overlapping ground. The parenthetical '(or re-align)' hints that the tool also re-processes already-created layers, but the agent must infer that the tool creates layers when none exist and overwrites when they do.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

createArticulatedCharacterRigB

Create a 3D 7-joint articulated character silhouette rig (distinct masculine Boy with short hair, broad shoulders, blazer & tie; or feminine Girl with flowing hair ribbon & pleated skirt) with trigonometrically locked spine (zero body separation when leaning), Merge Paths Type 2 (Boolean Union), unclipped glow (Grow Bounds + Glow2), and emotional pose presets.

NameRequiredDescriptionDefault
nameNoLayer name
scaleNoCharacter size multiplier (default: 1.0)
facingNoDirection the profile faces (default: right for boy, left for girl)
genderYesCharacter silhouette anatomy: "boy" (short hair, broad shoulders, straight trousers, front tie) or "girl" (flowing hair ribbon, pleated skirt)
inPointNoIn point in seconds
compNameNoComposition name (defaults to active composition)
outPointNoOut point in seconds
positionNo3D position [x, y, z]
rimColorNoRGB rim stroke color [0-1, 0-1, 0-1]
fillColorNoRGB fill color [0-1, 0-1, 0-1]
heartColorNoRGB glowing heart-ember color [0-1, 0-1, 0-1]
posePresetNoEmotional acting preset (default: reach_gently)
poseKeyframesNoOptional custom pose keyframes generated by AudioLyricPoseNet

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose genuine behavioral traits: the spine is trigonometrically locked so the body never separates when leaning, paths are boolean-unioned, and the glow is bounds-grown to avoid clipping. What it omits is equally important for a creation tool — whether a new composition is made or layers are added to the existing one, what side effects occur, and any permission/plugin requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single sentence with the verb front-loaded and no filler, but it is overloaded with parenthetical jargon and reads as a feature dump rather than a scannable definition. Splitting the core action from the rendering guarantees would improve parseability without adding length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter creation tool with full schema coverage and no output schema, the description is close to sufficient — it conveys what is built and key visual invariants. The remaining gap is what the caller gets back (a comp, a set of layers, a precomp) and whether the operation requires an open composition, which no structured field covers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all 13 parameters, including the boy/girl anatomy and the enum values — the description largely restates these. Its only real added value is the '7-joint' framing, which implicitly maps to the seven rotation fields in poseKeyframes (arms, legs, head, torso, hair/tie sway).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource: 'Create a 3D 7-joint articulated character silhouette rig', which an agent can immediately map to a layer-creation action and distinguish from siblings like create3DSaberSymbolOrPortal or createTextLayer. The remainder is a dense feature list (Merge Paths Type 2, Grow Bounds + Glow2) that adds specificity but obscures the core statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, when not to, or what prerequisites apply (3D renderer enabled, Glow2/Merge Paths plugin availability, active composition required). Nor does it explain when to pick posePreset versus supplying custom poseKeyframes, even though both are exposed.

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

NameRequiredDescriptionDefault
nameNoCamera layer name (default: "Camera 1")
zoomNoCamera zoom value in pixels (overrides focalLength)
presetNoFocal length preset (e.g. "35mm", "50mm")
rigNameNoName of the camera controller null (default: "Camera Controller")
apertureNoAperture size in pixels (controls background blur amount)
compNameNoComposition name (defaults to active comp)
positionNo3D position [x, y, z]
blurLevelNoBlur level percentage (default: 100)
createRigNoAutomatically create a 3D Orbit Null rig parented to the camera
irisShapeNoIris bokeh shape
rotationXNoX rotation in degrees
rotationYNoY rotation in degrees
rotationZNoZ rotation in degrees
cameraTypeNoCamera type: "one-node" (free rotation without target point) or "two-node" (aims at Point of Interest, default)
centerPointNoInitial center point [x, y] (defaults to comp center)
focalLengthNoCustom focal length in mm
orientationNo3D orientation [x, y, z] in degrees
depthOfFieldNoEnable/disable Depth of Field blur
focusDistanceNoFocus distance in pixels (defaults to distance between camera and Point of Interest)
pointOfInterestNo3D Point of Interest [x, y, z] (for two-node camera)

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
rigNameNoRig base name (default: "Camera Rig")
compNameNoComposition name (defaults to active comp)
distanceNoCamera standoff distance from target along Z axis (default: 1500)
cameraNameNoCamera name (default: "Camera Rig Camera")
targetPositionNo3D coordinates where the camera rig target is centered [x, y, z] (defaults to comp center)

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
nameYesName of the new composition
widthNoWidth in pixels (default: 1920)
heightNoHeight in pixels (default: 1080)
bgColorNoRGB background color [0-1, 0-1, 0-1] (default: [0,0,0])
durationNoDuration in seconds (default: 10.0)
frameRateNoFrame rate in FPS (default: 30.0)
pixelAspectRatioNoPixel aspect ratio (default: 1.0)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
nameNoLight name (default: "Light 1")
colorNoRGB color [0-1, 0-1, 0-1]
compNameNoComposition name
positionNo3D position [x, y, z]
coneAngleNoSpot light cone angle in degrees (default: 90)
intensityNoLight intensity percentage (default: 100)
lightTypeNoLight type (default: "POINT")
coneFeatherNoSpot light cone feather percentage (default: 50)
castsShadowsNoWhether light casts shadows (default: false)
shadowDarknessNoShadow darkness percentage (0-100)
pointOfInterestNo3D target point [x, y, z]
shadowDiffusionNoShadow diffusion in pixels

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
nameNoNull layer name (default: "Null 1")
compNameNoComposition name
durationNoDuration in seconds (defaults to comp duration)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

NameRequiredDescriptionDefault
nameNoSolid layer name (default: "Solid")
colorYesRGB color [0-1, 0-1, 0-1]
widthNoWidth in pixels (defaults to comp width)
heightNoHeight in pixels (defaults to comp height)
compNameNoComposition name
durationNoDuration in seconds (defaults to comp duration)

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

NameRequiredDescriptionDefault
fontNoFont PostScript name or family (e.g. "ArialMT", "MicrosoftYaHei", "PingFangSC-Regular")
nameNoLayer name (defaults to text content)
textYesText content to display
colorNoAlias for fillColor [0-1, 0-1, 0-1]
allCapsNoForce all caps formatting
effectsNoList of effects/plugins to immediately apply onto this text layer
leadingNoLine spacing / leading in points
compNameNoComposition name (defaults to active composition)
fontSizeNoFont size in pixels (default: 50)
isThreeDNoEnable 3D layer switch (default: false)
positionNoLayer position [x, y] or [x, y, z]
trackingNoTracking / character spacing (e.g. 50, -20)
applyFillNoEnable/disable fill color (default: true)
fillColorNoRGB fill color [0-1, 0-1, 0-1] (e.g. [1, 1, 1] for white)
rotationXNo3D X rotation in degrees
rotationYNo3D Y rotation in degrees
rotationZNo3D Z rotation or 2D rotation in degrees
smallCapsNoForce small caps formatting
applyStrokeNoEnable/disable stroke (default: false)
orientationNo3D orientation [x, y, z] in degrees (for 3D text)
strokeColorNoRGB stroke color [0-1, 0-1, 0-1]
strokeWidthNoStroke width in pixels (default: 1)
justificationNoParagraph justification (left, right, center, full)
strokeOverFillNoRender stroke over fill (default: false)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
compNameNoComposition name
layerNameNoLayer name
layerIndexNoLayer index

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
compNameNoComposition name
layerNameNoLayer name
layerIndexNoLayer index

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

evaluateVideoWithDOVERA

Score a rendered video (.mp4, .mov, .avi) using the bundled DOVER-Mobile (Disentangled Objective Video Quality Evaluator - ConvNeXtV2-Femto-3D ONNX) model. Returns Technical Quality Score (0-100), Aesthetic Quality Score (0-100), Fused Overall Score (0-100), Audio-Visual Beat Sync Score (0-100), dataset percentiles, per-segment diagnostics, and actionable AI improvement feedback.

NameRequiredDescriptionDefault
endTimeNoOptional end time in seconds to evaluate
audioPathNoOptional path to original audio file if the preview video was rendered without audio, used to compute Audio-Visual Rhythm Sync Score
startTimeNoOptional start time in seconds to evaluate
videoPathYesPath to the rendered video file (.mp4, .mov, .avi) to evaluate

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does disclose useful behavior: analysis runs on a bundled local ONNX model (no external service), and it lists the full output surface, implying a non-destructive read. However, it omits runtime/latency expectations for a video model, failure modes for unsupported files, and what happens when videoPath has no audio and audioPath is omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and model, followed by the return payload in one dense sentence with no filler. The parenthetical model expansion is verbose but informative; nothing is repeated from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by enumerating every returned score and diagnostic field, which is exactly what the agent needs to interpret results. Remaining gaps are operational (latency, error cases, audio-absent behavior) rather than about what the tool produces.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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, giving a baseline of 3. The description adds only indirect value by naming the Audio-Visual Beat Sync Score, which hints at audioPath's role, but it does not clarify startTime/endTime behavior (e.g., how segment scores are aggregated over a partial range).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Score') plus resource ('rendered video') and names the exact model (DOVER-Mobile, ConvNeXtV2-Femto-3D ONNX) and supported formats. It also enumerates the returned score types (Technical, Aesthetic, Fused, Audio-Visual Beat Sync), which makes it unmistakable against siblings like analyzeAudioRhythm or inspectFrameAestheticsAndClipping.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'rendered video' signals it belongs after export/preview rendering. There is no explicit when-to-use / when-not, and no routing against clearly adjacent siblings such as inspectFrameAestheticsAndClipping (single-frame clipping/aesthetics) or analyzeAudioRhythm (beat analysis), leaving the agent to infer which to pick.

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

NameRequiredDescriptionDefault
timeNoTime in seconds to capture
frameNoFrame number to capture (0-based)
compNameNoComposition name (defaults to active comp)
outputPathNoCustom output file path for PNG image
returnBase64NoWhether to return base64 data URI of the captured image (default: true)

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
endTimeNoEnd time in seconds (alternative to endFrame)
qualityNoRendering quality level (default: "low")
compNameNoComposition name
endFrameNoEnd frame number (default: 30)
startTimeNoStart time in seconds (alternative to startFrame)
outputPathNoTarget output video file path (.mp4 / .mov / .avi)
resolutionNoRender resolution scale (default: "quarter" for ultra-fast export)
startFrameNoStart frame number (default: 0)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

exportWithAMEB

Send composition to Adobe Media Encoder (AME) render queue for high-quality background rendering and encoding

NameRequiredDescriptionDefault
compNameNoComposition name to export (defaults to active comp)
outputPathNoTarget output video file path (.mp4 / .mov / .prores)
renderImmediatelyNoWhether to start rendering in AME immediately (default: false)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full disclosure burden. It does convey that work is queued in an external app and that rendering does not start unless renderImmediately is set, but it omits whether the call blocks, whether it returns a job/render identifier, what happens when AME is unavailable, and whether an existing file at outputPath is overwritten.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the action and target, with zero filler and no repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema is fully described and there is no output schema to explain, but for a tool that hands work to an external application the description should at least mention the AME dependency and what the agent gets back. Without those, an agent cannot plan around the call's asynchronous nature.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each of the three parameters is already documented in the schema, including the default-to-active-comp behavior and the renderImmediately default. The description adds no syntax, format, or constraint detail beyond that, which is the baseline case.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (send) and resource (composition) plus the destination system (Adobe Media Encoder render queue), and 'high-quality background rendering' implicitly separates it from preview exports. It stops short of naming the sibling it displaces (exportPreviewVideo / exportFrame), so the boundary is inferred 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'high-quality' and 'background rendering' suggest a final-quality render rather than a quick preview, which lets an agent guess it should prefer exportPreviewVideo for fast checks. No explicit when-to-use or when-not-to-use guidance, and no prerequisites such as AME needing to be installed or running.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fixLayerGlowAndBoundsClippingB

Automatically repair 3D glow and Saber rectangular boundary clipping across a layer or an entire composition by inserting ADBE Grow Bounds before ADBE Glow2 and expanding small 3D Saber solids to 3840x3840 while recentering their masks.

NameRequiredDescriptionDefault
compNameNoComposition name (defaults to active composition)
layerNameNoOptional layer name (if omitted, repairs all layers in the composition)
growPixelsNoGrow Bounds pixel radius (default: 280)
layerIndexNoOptional 1-based layer index
expandSaberSolidsToSizeNoMinimum width/height for 3D Saber solids (default: 3840)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose the core mutation behavior: inserting ADBE Grow Bounds before ADBE Glow2, expanding small Saber solids, and recentering masks. It still does not state whether the repair is reversible, how existing effects are handled, what happens on failure, or what result 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that first states the repair purpose and then explains the mechanism. It is dense with domain jargon but efficient and contains no obvious filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The purpose and mechanism are adequately explained, and the five optional parameters are fully covered by the schema. Completeness is limited by the lack of annotations and output schema: the description does not clarify safety, idempotency, failure behavior, or what the agent should expect after the repair.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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, layerName, growPixels, layerIndex, and expandSaberSolidsToSize. The description reinforces the 3840 solid expansion behavior but does not add much parameter-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: repairing 3D glow and Saber rectangular boundary clipping across a layer or composition. It is very clear about what the tool does, though it does not explicitly differentiate itself from nearby diagnostic tools such as inspectFrameAestheticsAndClipping.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose: use this when glow or Saber bounds clipping needs automatic repair, and choose layer scope via layerName vs composition scope. However, there is no explicit when-to-use guidance, no exclusions, and no named alternative for merely inspecting clipping.

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

NameRequiredDescriptionDefault
fontNoFont PostScript name (e.g. "ArialMT", "MicrosoftYaHei", "PingFangSC-Regular")
textNoNew text content
allCapsNoAll caps formatting
leadingNoLine spacing / leading in points
compNameNoComposition name (defaults to active comp)
fontSizeNoFont size in pixels
trackingNoTracking / character spacing (e.g. 50, -20)
applyFillNoEnable/disable fill color
fillColorNoRGB fill color [0-1, 0-1, 0-1]
layerNameNoLayer name
smallCapsNoSmall caps formatting
layerIndexNoLayer index (1-based)
applyStrokeNoEnable/disable stroke
strokeColorNoRGB stroke color [0-1, 0-1, 0-1]
strokeWidthNoStroke width in pixels
justificationNoParagraph justification (left, right, center, full)
strokeOverFillNoWhether stroke renders over fill

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
compNameNoComposition name (defaults to active comp)

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
compNameNoComposition name
layerNameNoLayer name
effectNameNoEffect name
layerIndexNoLayer index
effectIndexNoEffect index on the layer

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
topicNoHelp topic

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

NameRequiredDescriptionDefault
limitNoNumber of entries to return (default: 20)

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
searchNoFilter by name keyword (e.g. "glow", "blur", "noise")
categoryNoFilter by effect category (e.g. "Blur & Sharpen", "Color Correction", "Stylize", "Generate")

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

NameRequiredDescriptionDefault
compNameNoComposition name
layerNameNoLayer name
layerIndexNoLayer index (1-based)
propertyNameYesProperty name to inspect

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

NameRequiredDescriptionDefault
compNameNoComposition name
layerNameNoLayer name (optional)
layerIndexNoLayer index (optional)

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

NameRequiredDescriptionDefault
compNameNoComposition name
layerNameNoLayer name
layerIndexNoLayer index (1-based)

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
commandIdNoSpecific command ID to retrieve, or omit for the latest result

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
nameNoOptional custom name for footage/layer
scaleNoInitial scale [x, y] or [x, y, z]
compNameNoIf specified, immediately adds the imported asset as a layer into this composition
filePathYesAbsolute file path of the asset to import
isThreeDNoMake the added layer a 3D layer (default: false)
positionNoInitial position [x, y] or [x, y, z]
sequenceNoImport as image sequence (default: false)
convertToShapeNoIf importing SVG or Illustrator vector, convert to native AE Shape Layer (default: false)

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

inspectFrameAestheticsAndClippingA

Inspect a rendered After Effects frame (.png, .jpg) using the bundled FastSal-NIMA-Lite (fastsal_nima_lite.onnx) visual saliency & aesthetic neural model plus geometric luminance-cliff boundary detector. Detects 3D glow/Saber rectangular clipping, subtitle-subject occlusion, spatial saliency center, and NIMA aesthetic score (1-10).

NameRequiredDescriptionDefault
imagePathYesAbsolute path to the rendered frame image (.png or .jpg)

TDQS

A3.6/5.0
Behavior3/5

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 the bundled FastSal-NIMA-Lite model, the luminance-cliff detector, and the four detection targets, but it does not state that the operation is read-only, describe side effects or failure modes, or explain the return format. It does not contradict any annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that immediately names the action and resource, then lists the analyses performed. It is dense with model jargon but every clause earns its place by naming a detector or detection target; slight structural separation would improve readability, but it is not bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex inspection tool with no annotations and no output schema, so the description should ideally explain return structure and operational constraints. It does list the detection targets and the NIMA score range, which helps an agent understand the purpose, but it omits the shape of the results, thresholds, and whether the operation is purely read-only. It is adequate for invocation but incomplete for interpreting results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single imagePath parameter, and the schema already documents that it is an absolute path to a .png or .jpg frame. The description adds 'rendered After Effects frame' context but no additional path syntax, constraints, or alternatives beyond the schema. With the schema doing the heavy lifting, a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: inspect a rendered After Effects frame (.png, .jpg). It clearly distinguishes this from sibling tools by focusing on frame-level visual inspection using a saliency/aesthetic model and boundary detector, and it names the concrete signals it returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear enough to infer usage: inspect a rendered frame for clipping, occlusion, saliency, and aesthetic score. However, it never states when to choose this over siblings such as evaluateVideoWithDOVER or fixLayerGlowAndBoundsClipping, nor does it give exclusions or prerequisites. Usage is implied rather than explicitly guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

installBridgeB

Automatically detect After Effects installations and install the mcp-bridge-auto.jsx panel script to ScriptUI Panels (with automatic menu backup cleanup)

NameRequiredDescriptionDefault
targetDirNoOptional custom ScriptUI Panels directory path

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description carries the full burden, and it does disclose real side effects: it scans for AE installations, writes a .jsx file into the ScriptUI Panels directory, and performs automatic menu backup cleanup. It omits whether an existing install is overwritten, idempotency, required file permissions, and whether a restart is needed — significant gaps for a filesystem-mutating tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the core action, with the backup-cleanup caveat tucked into a parenthetical rather than buried mid-sentence. Dense but no wasted clauses.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 should say what comes back (e.g. which installations were detected, whether installation succeeded) and whether AE must be relaunched; it says none of that. For a one-parameter setup tool it is adequate but leaves real operational questions unanswered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single optional parameter with 100% schema description coverage ('Optional custom ScriptUI Panels directory path'), so the schema already does the work. The description adds the useful implication that the directory is auto-detected by default, but gives no format or example for the override.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (install) and resource (the mcp-bridge-auto.jsx panel script placed into ScriptUI Panels), plus the auto-detection step. It partially separates itself from siblings like cleanBridgeBackups by mentioning built-in menu backup cleanup, though it never names those siblings directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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 the setup step that must precede the bridge-dependent tools. There is no explicit 'use when' statement, no mention of prerequisites (e.g. whether After Effects must be closed or restarted), and no pointer to cleanBridgeBackups or rollback as alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

precomposeLayersC

Precompose selected layers into a new nested sub-composition (precomp) with custom name

NameRequiredDescriptionDefault
compNameNoParent composition name (defaults to active comp)
layerNamesNoList of layer names to precompose
precompNameYesName for the new sub-composition / precomp
layerIndicesNoList of 1-based layer indices to precompose

TDQS

C2.9/5.0
Behavior2/5

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 mentions the new nested sub-composition and custom name but omits important mutation behavior: what happens to source layers, whether they are replaced or moved, how naming conflicts are handled, and whether the active composition is used by default.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted text. Its terseness is appropriate structurally, though it leaves behavioral gaps that are assessed elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the definition is incomplete. An agent lacks sufficient context about side effects, required preconditions, and how the resulting precomp relates to the parent composition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented. The description only echoes 'selected layers' and 'custom name' without adding clarity about the alternative layerNames/layerIndices inputs or the compName default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: precompose layers into a new nested sub-composition. It is clear what the tool does, but it does not differentiate itself from related composition-creation or layer-manipulation siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, no prerequisites, and no explanation of how layerNames and layerIndices interact or should be chosen. The phrase 'selected layers' implies a selection workflow but does not clarify it.

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

NameRequiredDescriptionDefault
compNameNoComposition name
layerNameNoLayer name
effectNameNoEffect name
layerIndexNoLayer index
effectIndexNoEffect index on the layer

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
newNameYesNew name for the composition
compNameNoCurrent name of the composition (defaults to active composition)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)

NameRequiredDescriptionDefault
compNameNoComposition name
newIndexYesTarget index in the effect stack (1-based)
layerNameNoLayer name
effectNameNoEffect name to move
layerIndexNoLayer index (1-based)
effectIndexNoEffect index to move

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

reorderLayerC

Reorder a layer vertically in the layer stack (moveBefore, moveAfter, moveToBeginning, moveToEnd, setIndex)

NameRequiredDescriptionDefault
compNameNoComposition name
newIndexNoSpecific new 1-based layer index for setIndex operation
layerNameNoLayer name to reorder
operationYesReorder operation
layerIndexNoLayer index to reorder
targetLayerNameNoTarget reference layer name for moveBefore/moveAfter
targetLayerIndexNoTarget reference layer index for moveBefore/moveAfter

TDQS

C2.9/5.0
Behavior2/5

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 only says the layer moves vertically. It omits whether a composition must be specified, how the layer is identified (name vs. index), what happens when the target does not exist, and whether keyframes or parenting are affected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tightly written sentence with the core behavior front-loaded and the operation list provided as a compact parenthetical. There is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a seven-parameter mutation tool with no annotations and no output schema, the description leaves key operational details unresolved. The schema is rich, but the agent still lacks guidance on parameter combinations and side effects that are essential for calling it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already documented, including the operation enum and 1-based newIndex. The description repeats the operation enum but adds no new detail about choosing between layerName/layerIndex or targetLayerName/targetLayerIndex.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Reorder a layer vertically in the layer stack') and enumerates the five supported operations. It is clear what the tool does, though it does not explicitly distinguish itself from nearby siblings such as reorderEffect or setLayerProperties.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use or when-not-to-use guidance and names no alternatives. An agent must infer which of the five operations or target-reference parameters to choose without any stated conditions.

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

NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

NameRequiredDescriptionDefault
scriptYesThe ExtendScript JavaScript code to execute
descriptionNoOptional brief description of what the script does

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
saveAsPathNoOptional file path to save as a new .aep file

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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)

NameRequiredDescriptionDefault
scaleNo3D scale [x, y, z] (100 = 100%)
compNameNoComposition name
positionNo3D position [x, y, z]
layerNameNoLayer name
rotationXNoX rotation in degrees
rotationYNoY rotation in degrees
rotationZNoZ rotation in degrees
layerIndexNoLayer index (1-based)
anchorPointNo3D anchor point [x, y, z]
orientationNo3D orientation [x, y, z] in degrees

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)

NameRequiredDescriptionDefault
zoomNoCamera zoom / focal length in pixels
apertureNoAperture in pixels (controls blur strength)
compNameNoComposition name (defaults to active comp)
positionNoNew 3D position [x, y, z]
blurLevelNoBlur level percentage (0 - 500)
irisShapeNoIris bokeh blade shape
rotationXNoX rotation in degrees
rotationYNoY rotation in degrees
rotationZNoZ rotation in degrees
cameraNameNoCamera layer name
cameraTypeNoSwitch camera between one-node (no auto-orient) and two-node (auto-orient to point of interest)
cameraIndexNoCamera layer index (1-based)
orientationNo3D orientation [x, y, z] in degrees
depthOfFieldNoEnable/disable Depth of Field
irisRotationNoIris rotation angle in degrees
focusDistanceNoFocus distance in pixels
irisRoundnessNoIris roundness percentage
irisAspectRatioNoIris aspect ratio (anamorphic bokeh stretching)
pointOfInterestNoNew 3D Point of Interest [x, y, z]
lockFocusToLayerNoName or index of target layer to permanently lock camera focusDistance to, keeping the target razor sharp

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

NameRequiredDescriptionDefault
widthNoNew width in pixels
heightNoNew height in pixels
bgColorNoRGB background color [0-1, 0-1, 0-1]
newNameNoOptional new name for the composition
compNameNoComposition name (defaults to active composition)
durationNoNew duration in seconds
frameRateNoNew frame rate in FPS
pixelAspectRatioNoPixel aspect ratio

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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")

NameRequiredDescriptionDefault
compNameNoComposition name
rendererYesTarget 3D render engine: "ADBE Advanced 3D", "ADBE Cinema 4D", or "ADBE Classic 3D"

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

NameRequiredDescriptionDefault
enabledYesTrue to enable effect, false to disable/bypass
compNameNoComposition name
layerNameNoLayer name
effectNameNoEffect name
layerIndexNoLayer index (1-based)
effectIndexNoEffect index on layer

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
compNameNoComposition name
layerNameNoLayer name
effectNameNoEffect name (e.g. "Gaussian Blur")
layerIndexNoLayer index
propertiesYesKey-value map of property names and target values (e.g. { "Blurriness": 25 } or with time: { "Blurriness": { time: 1.0, value: 25 } })
effectIndexNoEffect index on the layer

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
timeYesTimestamp in seconds to set keyframe
valueNoTarget value for the parameter at this keyframe
compNameNoComposition name
layerNameNoLayer name
effectNameNoEffect name (e.g. "Gaussian Blur", "Glow")
layerIndexNoLayer index (1-based)
effectIndexNoEffect index on the layer
propertyNameYesParameter name on the effect (e.g. "Blurriness", "Glow Radius", "Threshold")
keyframeInterpolationNoEasing interpolation type (default: "ease")

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
timeNoTimestamp in seconds to target nearest keyframe
presetNoPre-configured velocity curve preset ("dynamicSnap" = 75% influence modern snappy curve)
inSpeedNoIncoming speed (value change/second, default: 0)
compNameNoComposition name
keyIndexNoKeyframe index (1-based, defaults to 1 or matched by time)
outSpeedNoOutgoing speed (value change/second, default: 0)
layerNameNoLayer name
layerIndexNoLayer index (1-based)
inInfluenceNoIncoming influence percentage (0.1 to 100%, default: 33.33)
outInfluenceNoOutgoing influence percentage (0.1 to 100%, default: 33.33)
propertyNameYesProperty name to adjust (e.g. "Position", "Scale", "Opacity", "Rotation", or effect property)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
enabledNoWhether the expression is enabled (default: true)
compNameNoComposition name
layerNameNoLayer name
expressionYesExpression string (e.g. "wiggle(2, 20)"), or null/empty string to remove expression
layerIndexNoLayer index
propertyNameYesProperty name (e.g. "Position", "Opacity", "Rotation")

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
timeYesTime in seconds where the keyframe should be set
valueYesKeyframe value (number or array of numbers)
compNameNoComposition name (defaults to active composition)
layerNameNoLayer name
layerIndexNoLayer index (1-based)
propertyNameYesProperty name (e.g. "Position", "Scale", "Rotation", "Opacity", or effect property)
keyframeInterpolationNoKeyframe easing type

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)

NameRequiredDescriptionDefault
compNameNoComposition name
invertedNoInvert the mask
maskModeNoMask blend mode
maskNameNoMask name (e.g. "Mask 1")
layerNameNoLayer name
maskIndexNoMask index (1-based)
maskShapeNoMask shape vertex data
layerIndexNoLayer index
maskFeatherNoMask feather [x, y] in pixels
maskOpacityNoMask opacity (0-100)
maskExpansionNoMask expansion in pixels

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)

NameRequiredDescriptionDefault
metalNoMetal reflection percentage (0-100)
ambientNoAmbient reflection percentage (0-100)
diffuseNoDiffuse reflection percentage (0-100)
compNameNoComposition name
layerNameNoLayer name
roughnessNoSurface roughness percentage in Advanced 3D (0-100)
layerIndexNoLayer index (1-based)
castsShadowsNoCasts shadows ("off", "on", "only")
transparencyNoMaterial transparency percentage (0-100)
acceptsLightsNoAccepts lights ("off", "on")
acceptsShadowsNoAccepts shadows ("off", "on", "only")
customPropertiesNoAny custom material properties
lightTransmissionNoLight transmission percentage (0-100)
specularIntensityNoSpecular intensity percentage (0-100)
specularShininessNoSpecular shininess percentage (0-100)
reflectionCoefficientNoReflection coefficient percentage (0-100)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
compNameNoComposition name
layerNameNoLayer name
layerIndexNoLayer index
propertiesYesProperties object to update

TDQS

B3.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)

NameRequiredDescriptionDefault
compNameNoComposition name (defaults to active comp)
trackModeYesTracking mode: "look_at" aims camera at target, "follow_position" maintains camera offset as target moves, "focus_distance" locks focus distance to target
cameraNameNoCamera layer name
cameraIndexNoCamera layer index (1-based)
targetLayerNameNoName of the target layer to track
targetLayerIndexNoIndex of the target layer to track

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 14 tool updatesv1.1.0
    • AddedalignLyricsWithMMS
    • AddedanalyzeAudioRhythm
    • AddedanalyzeMusicEmotionWithMusiCNN
    • AddedapplyBeatMarkersToComp
    • AddedcleanBridgeBackups
    • Addedcreate3DSaberSymbolOrPortal
    • AddedcreateAlignedLyricLayers
    • AddedcreateArticulatedCharacterRig
    • AddedevaluateVideoWithDOVER
    • AddedexportWithAME
    • AddedfixLayerGlowAndBoundsClipping
    • AddedinspectFrameAestheticsAndClipping
    • AddedprecomposeLayers
    • AddedreorderLayer
  2. 54 tool updatesv1.0.0
    • First observedaddLayerMask
    • First observedaddTextAnimator
    • First observedaiModifySelectedLayer
    • First observedapplyCameraMove
    • First observedapplyEffect
    • First observedbatchSetLayerProperties
    • First observedconfigureSettings
    • First observedcreate-composition
    • First observedcreate3DLayer
    • First observedcreateCamera
    • First observedcreateCameraRig
    • First observedcreateLight
    • First observedcreateNullObject
    • First observedcreateSolidLayer
    • First observedcreateTextLayer
    • First observeddeleteLayer
    • First observedduplicateLayer
    • First observedexportFrame
    • First observedexportPreviewVideo
    • First observedformatTextLayer
    • First observedget-help
    • First observedget-results
    • First observedgetAvailableFonts
    • First observedgetCompRenderer
    • First observedgetEffectProperties
    • First observedgetHistory
    • First observedgetInstalledPlugins
    • First observedgetKeyframeInfo
    • First observedgetLayerInfo
    • First observedgetLayerMaterialOptions
    • First observedgetProjectInfo
    • First observedgetSettings
    • First observedimportAsset
    • First observedinstallBridge
    • First observedremoveEffect
    • First observedrenameComposition
    • First observedreorderEffect
    • First observedrollback
    • First observedrun-script
    • First observedsaveProject
    • First observedset3DLayerTransform
    • First observedsetCameraProperties
    • First observedsetCompositionProperties
    • First observedsetCompRenderer
    • First observedsetEffectEnabled
    • First observedsetEffectProperties
    • First observedsetEffectPropertyKeyframe
    • First observedsetKeyframeVelocity
    • First observedsetLayerExpression
    • First observedsetLayerKeyframe
    • First observedsetLayerMask
    • First observedsetLayerMaterialOptions
    • First observedsetLayerProperties
    • First observedtrackCameraToLayer

TDQS

C2.8/5.0

Scored across 68 tools

Disambiguation2/5

Several tools have overlapping boundaries: create3DLayer overlaps createTextLayer/createNullObject/createSolidLayer, setLayerProperties overlaps set3DLayerTransform, and addLayerMask overlaps setLayerMask. The large number of highly specialized AI/VFX tools also makes it hard to know which tool is appropriate for a general editing task.

Naming Consistency2/5

Most tool names use camelCase, but there are clear deviations such as create-composition, run-script, get-results, and get-help. Prefix patterns are also inconsistent, mixing createX, setXProperties, applyX, getX, and long AI-specific names.

Tool Count1/5

68 tools is far beyond a well-scoped surface for an agent, even for a complex application like After Effects. Many tools are niche AI analysis or repair operations that dilute the core editing workflow and increase selection burden.

Completeness4/5

Coverage is broad across compositions, layers, effects, cameras, lights, text, masks, keyframes, import/export, and project settings. Minor lifecycle gaps remain, such as no explicit composition deletion or layer parenting tools, but run-script provides a general escape hatch.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables 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.
    17
    6 npm
    1
    MIT
  • A
    license
    C
    quality
    C
    maintenance
    Enables AI assistants and applications to control Adobe After Effects through the Model Context Protocol, including creating compositions, managing layers, and animating properties via keyframes and expressions.
    13
    140 npm
    MIT