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:手动下载与安装(从 Release 下载)

  1. 前往 Releases 页面 下载 mcp-bridge-panel-v1.0.0.zip。

  2. 解压得到 mcp-bridge-auto.jsx 文件。

  3. 将该文件复制到您的 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: after-effects-mcp

常用功能与工具示例

工具名称

功能描述

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

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

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

54 tools
addLayerMaskC

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

ParametersJSON Schema
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)

ParametersJSON Schema
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

ParametersJSON Schema
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.

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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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.

configureSettingsC

Modify MCP settings: toggle autoSave (save on every operation), autoRecordHistory, saveMode, history limit, and timeouts

ParametersJSON Schema
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

ParametersJSON Schema
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.

createCameraB

Create a 1-node or 2-node 3D camera layer with focal presets, depth of field, aperture, and optional camera rig

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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.

exportFrameB

Export a screenshot / state image of a specific frame or current time in a composition as PNG, and return base64 preview

ParametersJSON Schema
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

ParametersJSON Schema
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.

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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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.

installBridgeC

Automatically detect After Effects installations and install the mcp-bridge-auto.jsx panel script to ScriptUI Panels

ParametersJSON Schema
NameRequiredDescriptionDefault
targetDirNoOptional custom ScriptUI Panels directory path

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 omits that this writes to the user's filesystem, whether it overwrites an existing panel, whether AE must be closed, whether it is idempotent, and what happens if no installation is found. 'Automatically detect' hints at multi-version behavior but does not say whether it installs to one or all detected copies.

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

Conciseness4/5

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

One efficiently packed sentence with the action front-loaded and no filler. It is slightly overloaded with the literal filename, but nothing is wasted.

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

Completeness3/5

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

For a one-parameter, side-effecting install tool with no annotations and no output schema, the description covers what it does and where it writes but leaves the agent without prerequisites, idempotency, or result information (e.g. which installs were detected). Just enough to call it, not enough to call it confidently.

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

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 parameter is optional with its own description, so the baseline is 3. The phrase 'ScriptUI Panels' in the description loosely explains what targetDir overrides (the default install location), adding marginal value beyond the schema.

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

Purpose4/5

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

The description gives a specific verb (install) and a concrete resource (the mcp-bridge-auto.jsx panel script) plus the exact destination (ScriptUI Panels), which no sibling tool covers. It does not need sibling differentiation because no other installer-type tool exists, but it also stops short of stating a scope limitation an agent could compare against.

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

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 this should run (e.g. first-time setup, before other bridge tools work) or how it relates to getInstalledPlugins, which is the nearest sibling. An agent must infer that this is a prerequisite step rather than being told.

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

removeEffectC

Remove an effect from a layer

ParametersJSON Schema
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

ParametersJSON Schema
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)

ParametersJSON Schema
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.

rollbackA

Rollback / undo the last mutating operation in After Effects

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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)

ParametersJSON Schema
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)

ParametersJSON Schema
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

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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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

ParametersJSON Schema
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)

ParametersJSON Schema
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)

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

ParametersJSON Schema
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)

ParametersJSON Schema
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. 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

B3/5.0

Scored across 54 tools

Disambiguation3/5

Most tools target distinct operations, but several property setters overlap in practice: setLayerProperties, set3DLayerTransform, setLayerMaterialOptions, and setEffectProperties all modify layer/effect state with unclear boundaries. Mask tools addLayerMask vs setLayerMask and layer creators create3DLayer vs createSolidLayer/createNullObject/createTextLayer also require reading descriptions closely to choose correctly.

Naming Consistency4/5

The set is mostly camelCase with a consistent verb_noun pattern (e.g., applyEffect, setLayerProperties, getProjectInfo). A handful of tools break the pattern with hyphenated names: create-composition, run-script, get-results, get-help, which slightly reduces predictability.

Tool Count1/5

54 tools is an extreme tool count for a single MCP server, well beyond the 3-15 range that supports reliable agent selection. While After Effects is a broad domain, this surface is heavily fragmented and likely overwhelms an agent choosing among many granular setters and creators.

Completeness4/5

Coverage is extensive across compositions, layers, effects, cameras, text, 3D, import/export, project state, and history/rollback. Minor gaps remain, such as deleting or duplicating compositions, explicit 2D shape-layer creation, parenting controls, and keyframe removal operations.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI assistants to control Adobe After Effects through a standardized MCP protocol, providing tools for composition creation, layer management, and animation.
    -
  • 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
    16 npm
    1
    MIT