Skip to main content
Glama
TheLlamainator

After Effects MCP Server

After Effects MCP Server

Node.js After%20Effects Build License: MIT

Control Adobe After Effects through MCP using a bridge panel running inside AE. This project is optimized for practical automation workflows: effects, presets, keyframing, markers, and audio-aware tooling.


Highlights

  • Full composition and layer automation.

  • Deep effect inspection and property editing.

  • Advanced effect graph controls (temporal + spatial).

  • Preset search/list/apply workflows.

  • Marker and audio automation, including waveform-to-marker pipelines.

  • Installed effect catalog discovery (list-available-effects).

Related MCP server: After Effects MCP Server

Feature Matrix

Area

Capabilities

Composition

Create, inspect project/compositions, get clip frame ranges

Layers

Text/shape/solid/adjustment creation, transform/property updates, centering

Animation

Layer keyframes, expressions, effect keyframes with graph controls

Effects

Apply by name/matchName, list layer effects recursively, edit any effect property, remove effects

Presets

Apply .ffx, list/search preset libraries

Markers

Add single marker (comp/layer), add markers in bulk

Audio

Set channel levels, inspect audio metadata, analyze WAV waveform, detect peaks

Requirements

  • Adobe After Effects

  • Node.js 18+

  • npm

In After Effects, enable:

  • Edit -> Preferences -> Scripting & Expressions -> Allow Scripts to Write Files and Access Network

Quick Start

  1. Clone and install:

git clone https://github.com/TheLlamainator/after-effects-mcp.git
cd after-effects-mcp
npm install
  1. Build:

npm run build
  1. Install bridge script:

npm run install-bridge
  1. Restart After Effects and open:

  • Window -> mcp-bridge-auto.jsx

  • Keep this panel open during MCP usage.

MCP Client Config

Use an absolute path to build/index.js.

{
  "mcpServers": {
    "AfterEffectsMCP": {
      "command": "node",
      "args": ["<absolute-path-to-repo>/build/index.js"]
    }
  }
}

Add to VS Code

If you use an MCP-capable VS Code extension, add this server in that extension's MCP server settings.

Use:

  • command: node

  • args: ["<absolute-path-to-repo>/build/index.js"]

Example snippet many extensions accept:

{
  "mcpServers": {
    "AfterEffectsMCP": {
      "command": "node",
      "args": ["C:\\Users\\<you>\\Documents\\Projects\\AEMCP\\build\\index.js"]
    }
  }
}

Then:

  1. Restart VS Code.

  2. Open After Effects and keep Window -> mcp-bridge-auto.jsx open.

  3. Call a simple tool like get-help or run-script with getProjectInfo.

Add to Claude Desktop

Edit Claude Desktop config and add the MCP server entry.

Typical Windows config location:

  • %APPDATA%\\Claude\\claude_desktop_config.json

Example:

{
  "mcpServers": {
    "AfterEffectsMCP": {
      "command": "C:\\Program Files\\nodejs\\node.exe",
      "args": [
        "C:\\Users\\<you>\\Documents\\Projects\\AEMCP\\build\\index.js"
      ]
    }
  }
}

After saving:

  1. Fully restart Claude Desktop.

  2. Open AE bridge panel.

  3. Verify with tools/list in logs or by calling a known tool.

Add to Claude Code

Configure the same server command/args in your Claude Code MCP configuration.

Use this server definition:

{
  "AfterEffectsMCP": {
    "command": "node",
    "args": ["<absolute-path-to-repo>/build/index.js"]
  }
}

Then:

  1. Restart Claude Code or reload MCP servers.

  2. Ensure After Effects is open with mcp-bridge-auto.jsx panel running.

  3. Test with get-results after a queued command.

Architecture Graph

flowchart LR
    A[AI Client<br/>VS Code / Claude Desktop / Claude Code] --> B[MCP Server<br/>build/index.js]
    B --> C[Bridge Files<br/>ae_command.json / ae_mcp_result.json]
    C --> D[After Effects Bridge Panel<br/>mcp-bridge-auto.jsx]
    D --> E[Adobe After Effects]
    E --> D
    D --> C
    C --> B
    B --> A

Command Flow Graph

sequenceDiagram
    participant Client as MCP Client
    participant Server as MCP Server
    participant Bridge as AE Bridge Panel
    participant AE as After Effects

    Client->>Server: tools/call (example: apply-effect)
    Server->>Server: write ae_command.json
    Server-->>Client: queued response (or waits)
    Bridge->>Bridge: poll command file
    Bridge->>AE: execute command
    AE-->>Bridge: result/error
    Bridge->>Bridge: write ae_mcp_result.json
    Client->>Server: get-results
    Server-->>Client: final result JSON

Typical Runtime Flow

  1. Start your MCP client (it starts this server).

  2. Keep AE bridge panel open.

  3. Call tools.

  4. If response says queued, call get-results after 1-3 seconds.

Note: some AE operations finish slightly after tool timeout windows; get-results usually contains the final state.

Tool Catalog

General

  • run-script

  • get-results

  • get-help

Composition and Layer Utilities

  • create-composition

  • create-adjustment-layer

  • center-layers

  • get-layer-clip-frames

Effects and Presets

  • apply-effect

  • add-any-effect

  • mcp_aftereffects_applyEffect

  • apply-effect-template

  • list-layer-effects

  • list-available-effects

  • set-effect-property

  • set-effect-keyframe

  • remove-effect

  • apply-preset

  • list-presets

  • search-presets

Markers and Audio

  • add-marker

  • add-markers-bulk

  • set-audio-levels

  • get-audio-info

  • analyze-audio-waveform

Diagnostics and Helpers

  • test-animation

  • run-bridge-test

  • mcp_aftereffects_get_effects_help

Audio to Marker Workflow

  1. get-audio-info on target layer.

  2. Copy sourceFilePath.

  3. analyze-audio-waveform with optional numPoints.

  4. Convert peakTimes to markers[].

  5. add-markers-bulk.

Project Layout

  • src/index.ts - MCP server and tool definitions

  • src/scripts/mcp-bridge-auto.jsx - AE bridge panel

  • install-bridge.js - bridge installer

Development

Build:

npm run build

Install bridge:

npm run install-bridge

Run server directly:

node build/index.js

Troubleshooting

Server does not start

  • Run npm run build.

  • Check MCP logs for startup exceptions (for example duplicate tool registration).

Commands queue but do not complete

  • Ensure AE bridge panel is open.

  • Confirm AE scripting/network permission is enabled.

  • Retry and call get-results after a short delay.

Results appear stale

  • Reopen bridge panel.

  • Send a new command and then call get-results.

Program Files install fails

  • Expected without elevated permissions.

  • User AppData script paths are usually sufficient.

License

MIT. See LICENSE.

Inspo

https://github.com/Dakkshin/after-effects-mcp

I took the base code from them but added a lot

Available Tools

30 tools
add-any-effectB

Add any After Effects effect to a layer by matchName or display name.

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based index of the target composition in the project panel.
layerIndexYes1-based index of the target layer within the composition.
effectYesEffect identifier. Prefer matchName for reliability (e.g., 'ADBE Gaussian Blur 2').
effectSettingsNoOptional parameters to set immediately after adding the effect.

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 must carry the burden of behavioral disclosure. It only describes the action without mentioning side effects, failure modes, prerequisites, or success indicators. This leaves significant transparency gaps.

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?

The description is a single 14-word sentence that directly states the core function. It is front-loaded, concise, and every word contributes meaning.

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 is incomplete. It does not explain what happens after adding the effect (return value, errors), how effectSettings are applied, or any constraints (e.g., valid layer types). For a tool with 4 parameters and flexible behavior, more context is needed.

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 schema provides 100% coverage for all parameters with descriptions. The tool description adds the clarification that display names are accepted (not just matchName), which is not explicit in the schema. However, this is a minor addition beyond the already-complete 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?

The description clearly states the verb 'Add', the resource 'After Effects effect to a layer', and the specific method 'by matchName or display name'. This distinguishes it from sibling tools like apply-effect or apply-effect-template by emphasizing its general applicability and the naming convention.

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 'any After Effects effect' implies a general-purpose use case, and the parameter hint about preferring matchName gives some context. However, there is no explicit guidance on when to choose this tool over alternatives like apply-effect, nor any exclusions or prerequisites.

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

add-markerC

Add a marker to a layer or composition at a specified time. Markers can include a comment, label color, chapter name, URL and duration.

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based composition index.
markerTypeNo'layer' (default) or 'comp' for a composition marker.
layerIndexNoTarget layer index (required for layer markers).
layerNameNoTarget layer name (alternative to layerIndex).
timeInSecondsNoTime in seconds where the marker is placed. Defaults to current time.
commentNoMarker comment / label text.
durationNoMarker duration in seconds (0 = point marker).
chapterNoChapter name associated with the marker.
urlNoURL to open when the marker is reached (for web export).
labelNoLabel color index (0 = none, 1-16 map to AE label colors).

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 mentions marker attributes but fails to disclose behaviors like the default time (current time), default marker type ('layer'), or potential side effects (e.g., modifying the composition). For a mutation tool, this is insufficient.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the action and target, and contains no unnecessary words. Every sentence contributes meaning.

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 tool has 10 parameters, no output schema, and no annotations, yet the description provides minimal context. It does not explain required parameters (compIndex), the distinction between layer and composition markers, or how it differs from the sibling add-markers-bulk. The complexity demands more than this.

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 10 parameters. The description adds marginal value by listing the marker attributes (comment, label color, chapter, URL, duration) but does not explain parameter relationships or defaults 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 clearly states 'Add a marker to a layer or composition at a specified time' with a specific verb and resource, and lists what markers can include. However, it does not explicitly distinguish from the sibling tool add-markers-bulk, which is very similar.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, no mention of prerequisites, and no exclusions. The description simply states what it does without providing usage context.

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

add-markers-bulkA

Add multiple layer or composition markers at once. Use this after analyze-audio-waveform to place markers at detected peaks, or to add any set of markers in a single call.

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based composition index.
markerTypeNo'layer' (default) or 'comp' for composition-level markers.
layerIndexNoTarget layer index (required for layer markers).
layerNameNoTarget layer name (alternative to layerIndex).
markersYesArray of markers to add.

TDQS

A3.8/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 behavioral burden. It only states the operation (add) but does not disclose side effects, prerequisites (e.g., valid comp or layer), edge cases, or whether it appends to existing markers. For a write operation, more transparency is expected.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose, and the second sentence gives actionable use context. Zero wasted words.

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?

Given moderate tool complexity and full schema coverage, the description covers purpose and primary workflow (audio waveform peaks). With no annotations or output schema, it could still mention potential errors or limits, but the current description is sufficient for basic correct use.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already well documented. The description adds the high-level intent (bulk adding) but no additional parameter-specific semantics beyond what the schema provides, aligning with the baseline for full schema 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?

Clear verb 'Add' with resource 'markers' and explicit bulk scope ('multiple', 'at once'). Distinguishes from sibling 'add-marker' by emphasizing batch operation and supports both layer and composition markers.

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

Usage Guidelines4/5

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

Explicitly states when to use: after analyze-audio-waveform to place detected peaks, or for any batch marker addition. Does not name alternative single-marker add-marker, but the context is clear enough.

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

analyze-audio-waveformA

Analyze a WAV audio file to extract waveform amplitude data and detect peaks/transients. First call get-audio-info to retrieve the sourceFilePath, then pass it here. Returns normalized amplitude values (0-1) at evenly spaced time intervals plus an array of peak times where transients are detected.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesAbsolute path to the WAV audio file (obtained from get-audio-info sourceFilePath).
numPointsNoNumber of amplitude samples to return (default: 200). Higher = more detail.

TDQS

A4/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 does disclose the return format (normalized amplitudes and peak times) and the WAV file requirement, but it does not explicitly state that the operation is read-only or describe potential errors or limitations, leaving some gaps in transparency.

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?

The description is two sentences, front-loaded with purpose and output details, and the second sentence provides essential workflow context. Every sentence contributes meaningful information without redundancy.

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?

The description covers the prerequisite (get-audio-info), input parameters via the schema, and the output format. It lacks details on edge cases or performance implications, but for a moderately simple analysis tool, it is sufficiently complete to guide an agent.

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 both filePath and numPoints clearly documented. The description adds context about the output but does not provide additional semantic meaning for the parameters beyond what the schema already includes, 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.

Purpose5/5

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

The description clearly states the tool's function: analyzing WAV audio to extract waveform amplitude data and detect peaks/transients. This specific verb+resource combination distinguishes it from sibling tools like get-audio-info, which retrieves metadata rather than analyzing the waveform.

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

Usage Guidelines4/5

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

The description gives explicit usage guidance by instructing to first call get-audio-info to obtain the sourceFilePath, establishing a clear prerequisite and sequential workflow. However, it does not mention when not to use this tool or suggest alternatives, so it falls slightly short of the top score.

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

apply-effectC

Apply an effect to a layer in After Effects

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based index of the target composition in the project panel.
layerIndexYes1-based index of the target layer within the composition.
effectNoGeneric effect identifier. Can be either exact display name or matchName.
effectIdentifierNoAlias for effect. Can be either exact display name or matchName.
effectNameNoDisplay name of the effect to apply (e.g., 'Gaussian Blur').
effectMatchNameNoAfter Effects internal name for the effect (more reliable, e.g., 'ADBE Gaussian Blur 2').
effectCategoryNoOptional category for filtering effects.
presetPathNoOptional path to an effect preset file (.ffx).
effectSettingsNoOptional parameters for the effect (e.g., { 'Blurriness': 25 }).

TDQS

C2.6/5.0
Behavior1/5

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

Since there are no annotations, the description carries the full burden of revealing behavioral traits, but it only restates the action 'Apply an effect.' It does not mention side effects, reversibility, requirements, or return behavior, providing essentially no beyond-name transparency.

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 short sentence with no unnecessary words, making it concise and front-loaded. However, it is somewhat sparse and could have used the spare space to add useful context, so it does not reach a perfect score.

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?

With 9 parameters, no output schema, no annotations, and many overlapping sibling tools, the description is severely underspecified. It does not address return values, expected behavior, parameter selection strategies, or relationship to other tools, making it inadequate 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?

The input schema already provides descriptions for all 9 parameters, giving 100% coverage, so the baseline is 3. The description itself adds no parameter guidance and does not help disambiguate the overlapping effect identifiers (e.g., effect vs effectName vs effectMatchName), but it is not required to due to schema coverage.

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 the action ('Apply'), the object ('an effect'), and the target scope ('to a layer in After Effects'). However, it does not distinguish this tool from sibling tools like add-any-effect or apply-effect-template, so it lacks 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 Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives, nor any prerequisites, exclusions, or conditions. It is a bare statement of action without contextual usage advice.

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

apply-effect-templateB

Apply a predefined effect template to a layer in After Effects

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based index of the target composition in the project panel.
layerIndexYes1-based index of the target layer within the composition.
templateNameYesName of the effect template to apply.
customSettingsNoOptional custom settings to override defaults.

TDQS

B3.2/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 only states the action without explaining important traits like whether existing effects are replaced, whether the operation is reversible, or what 'applying a template' actually entails (e.g., adding multiple effects, modifying layer properties).

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?

The description is a single, direct sentence with no filler words. It efficiently communicates the core action and target resource, earning its place without redundancy.

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 the tool's moderate complexity (4 parameters, optional nested object, no output schema), the description is too sparse. It fails to explain what a 'predefined effect template' is, how customSettings override defaults, or any side effects, leaving the agent without enough context to predict the tool's 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%, with clear descriptions for compIndex, layerIndex, templateName (including an enum of available templates), and customSettings. The description adds no parameter-specific information, so the baseline of 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?

The description clearly specifies the action ('Apply') and the resource ('a predefined effect template to a layer in After Effects'). It distinguishes from sibling tools like 'apply-effect' by emphasizing 'predefined template', which implies a package of effects rather than a single 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?

The description provides no guidance on when to use this tool versus alternatives such as 'apply-effect' or 'apply-preset'. It does not mention any prerequisites, selection requirements, or scenarios where a template would be preferred over a simple effect or preset.

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

apply-presetB

Apply an After Effects .ffx preset file to a layer.

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based index of the target composition in the project panel.
layerIndexYes1-based index of the target layer within the composition.
presetPathYesAbsolute path to the .ffx preset file.

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 burden of behavioral disclosure. It states the action but does not explain whether the preset replaces existing effects, what compatibility requirements exist, or what the result/consequences are on the layer. This is a significant gap 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.

Conciseness5/5

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

The description is a single, focused sentence that conveys the core action without unnecessary words. It is front-loaded with the verb and resource, making it instantly understandable.

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?

The tool is a simple mutation, but the description lacks critical behavioral context (e.g., side effects, prerequisites) and there is no output schema to describe return values. With no annotations, the description should be more comprehensive to be complete for an agent.

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 input schema has 100% description coverage for all three parameters (compIndex, layerIndex, presetPath). The description adds no extra meaning beyond the schema, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the specific action: applying an After Effects .ffx preset file to a layer. It distinguishes itself from sibling tools like apply-effect (which likely applies effects by name) by specifying the preset file format.

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 is given on when to use this tool versus alternatives like apply-effect, apply-effect-template, or other preset-related tools. The description implies usage (applying a preset) but does not provide context, prerequisites, or exclusions.

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

center-layersA

Center one layer, selected layers, or all layers in a composition.

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based composition index.
layerIndexNoTarget layer index when centering a single layer.
layerNameNoTarget layer name when centering a single layer.
selectedOnlyNoCenter only selected layers in the composition.
allLayersNoCenter all layers in the composition.

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states the action without mentioning side effects, such as modifying layer position values, whether the operation is reversible, or how nesting/anchors are handled. For a mutation tool, this is a notable gap.

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 redundancy. Every word contributes to conveying the tool's purpose, achieving high efficiency.

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?

The tool has 5 parameters, but the description omits how they interact (e.g., whether allLayers overrides other selectors, or if selectedOnly is ignored when layerName is set). Given no output schema or annotations, this missing behavioral context is a significant gap for 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 parameters are already well-documented. The description adds no extra semantics beyond echoing selectors like 'selected layers' and 'all layers'. It does not clarify precedence or combinations, but baseline 3 is appropriate since schema handles explanations.

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 clearly states a specific verb ('Center') and resource ('one layer, selected layers, or all layers in a composition'), distinguishing it from all sibling tools. It immediately communicates the tool's core functionality without ambiguity.

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

Usage Guidelines4/5

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

The description implies clear usage contexts: centering individual layers, selected layers, or all layers. While it doesn't explicitly mention alternatives or when-not-to-use, there are no close sibling tools for centering, so the scope is evident and consumers can infer appropriate scenarios.

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

create-adjustment-layerA

Create an adjustment layer in the specified composition (or active comp).

ParametersJSON Schema
NameRequiredDescriptionDefault
compNameNoComposition name. If omitted, active composition is used.
nameNoLayer name (default: Adjustment Layer).
positionNoLayer position [x,y] or [x,y,z].
sizeNoLayer size [width,height]. Defaults to comp dimensions.
startTimeNoLayer start time in seconds.
durationNoLayer duration in seconds.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description carries the full burden. It only states that it creates an adjustment layer but does not disclose any behavioral traits such as side effects, error handling, or what happens if the comp isn't found. For a 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.

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It states the verb and resource clearly, making it both concise and structured.

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 the tool's simplicity, the description plus schema provide a reasonable understanding. However, it lacks information about return values or error behavior, and with no annotations, it's only minimally complete for a mutation 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?

Input schema coverage is 100% with all six parameters described in the schema. The tool description itself adds no parameter details, but the schema already provides sufficient meaning, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Create an adjustment layer') and the target ('in the specified composition (or active comp)'). It is specific and distinct from sibling tools like create-composition or apply-effect.

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 (when creating an adjustment layer in a comp), but it does not explicitly mention alternatives, exclusions, or prerequisites. There's no guidance like 'use this instead of create-composition'.

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

create-compositionA

Create a new composition in After Effects with specified parameters

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the composition
widthYesWidth of the composition in pixels
heightYesHeight of the composition in pixels
pixelAspectNoPixel aspect ratio (default: 1.0)
durationNoDuration in seconds (default: 10.0)
frameRateNoFrame rate in frames per second (default: 30.0)
backgroundColorNoBackground color of the composition (RGB values 0-255)

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 burden. It discloses that the tool creates a new composition but doesn't mention default behavior (e.g., default duration/frameRate if omitted) or whether it overrides an existing comp. The schema provides defaults for some parameters, but the description adds no extra behavioral context. Since creation tools are generally non-destructive (new resource), the lack of warning is acceptable, but the description could mention that existing comps are not affected.

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?

The description is a single sentence with no filler words. It is front-loaded with the action ('Create') and resource ('a new composition'), making it immediately clear. Every word serves a purpose, and it is neither verbose nor under-specified.

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 creation tool with a rich schema (7 parameters, all documented), the description doesn't need to explain return values (no output schema). It could mention that the composition is added to the project panel or the current project, but this is implied by 'in After Effects.' The lack of annotations and output schema lowers the burden, but the description could be a bit more explicit about the context (e.g., the composition is created in the active project). Overall, it is minimally complete but not exceptional.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description's phrase 'specified parameters' is generic. Consequently, the description adds no extra meaning beyond the schema. A baseline 3 is appropriate since 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?

The description states the verb ('Create') and resource ('a new composition in After Effects'), which clearly identifies the tool's function. It doesn't distinguish from sibling tools explicitly, but siblings like 'create-adjustment-layer' are different enough that no confusion is likely. A more specific mention of parameters like width/height/duration would strengthen it, but the current wording is adequate.

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 gives the context ('Create a new composition in After Effects') but no explicit when-to-use or alternatives. It implies that this is the go-to tool for creating comps, especially since siblings don't include another composition creator. However, no prerequisites or exclusions are mentioned, making it minimally adequate.

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

get-audio-infoA

Get audio metadata, source file path, existing markers, and audio level keyframes for a layer in After Effects.

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based composition index.
layerIndexNoTarget layer index.
layerNameNoTarget layer name (alternative to layerIndex).

TDQS

A4/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. It lists the exact data returned (metadata, source path, markers, keyframes), which provides some transparency. However, it does not explicitly state that the operation is read-only or describe behavior on missing layers, though 'Get' implies no side effects. This is adequate but not highly detailed.

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?

The description is a single, information-dense sentence that front-loads the verb and resource. It lists the four types of data retrieved without unnecessary elaboration, earning full marks for conciseness.

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 simple get tool with no output schema, the description lists all the expected return values. It does not detail output format or error conditions, but these omissions are minor given the tool's straightforward read-only nature. The description provides enough context for typical usage.

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 input schema has 100% coverage with descriptions for all parameters, so the schema already explains each parameter. The description adds no extra parameter-level detail, such as how layerName and layerIndex interact. With full schema coverage, the baseline score of 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?

The description clearly states the tool's function: 'Get audio metadata, source file path, existing markers, and audio level keyframes for a layer in After Effects.' It uses a specific verb ('Get') and resource ('audio info'), and it differs from siblings like 'set-audio-levels' and 'analyze-audio-waveform' by focusing on reading existing data.

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

Usage Guidelines4/5

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

The context is clear: use this tool when you need to retrieve audio-related information for a layer. It does not explicitly mention alternatives or when not to use it, but the descriptive text and tool name imply a read-only retrieval role. Since it does not mention exclusions, it earns a 4.

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 on using the After Effects MCP integration

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/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 only restates the purpose ('Get help') without disclosing what the help output contains, whether it lists commands, returns usage examples, or requires further input. Behavior is largely opaque.

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?

Single sentence of 11 words, front-loaded with the verb 'Get'. No filler or redundancy; every word earns its place.

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 help tool, the description is largely complete, clearly stating the scope ('After Effects MCP integration'). The absence of an output schema means a description of the return format would have been useful, but this is a minor gap given the simplicity.

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 has zero parameters and the schema is an empty object with 100% coverage. No parameter documentation is needed; the baseline for 0-param tools is 4, and the description doesn't misrepresent any parameters.

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 clearly states 'Get help on using the After Effects MCP integration', with a specific verb and resource. It distinguishes itself from sibling tools that perform specific operations like apply-effect or run-script.

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 implied usage is when the user needs assistance with the MCP integration, but there is no explicit when-to-use guidance or mention of alternatives. It doesn't reference more specific help tools like mcp_aftereffects_get_effects_help.

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

get-layer-clip-framesB

Get a layer's clip start/end frames, source frame range, and duration in frames.

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based composition index.
layerIndexNoTarget layer index.
layerNameNoTarget layer name if not using layerIndex.

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It implies a read-only operation via 'Get', but does not explain error behavior (e.g., layer not found), return format, or whether the tool relies on a selected layer when layerName/layerIndex are omitted.

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?

The description is a single, front-loaded sentence with no unnecessary words. It conveys the tool's purpose and output data efficiently.

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?

The tool has no output schema and no annotations, and the description does not clarify critical context like layer selection resolution (layerName vs layerIndex), whether compIndex is sufficient alone, or what happens if the layer is missing. This leaves important gaps for an agent trying to invoke the tool 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 explains all three parameters. The description adds no extra parameter-level detail, staying at the baseline 3 for schema-complete cases.

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 uses a specific verb ('Get') and clearly names the resource ('a layer's clip start/end frames, source frame range, and duration in frames'). It unambiguously states what the tool returns and is distinct from sibling tools, none of which focus on retrieving layer timing data.

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 usage is implied by the purpose (use when you need clip frame information), but there is no explicit guidance on when to use layerName vs layerIndex, or whether one is required beyond compIndex. No alternatives are mentioned, though no sibling tool directly competes.

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

get-resultsB

Get results from the last script executed in After Effects

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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. 'Get' implies a read-only operation, but there is no mention of behavior if no script has been run, whether results are cleared, or what the return payload looks like. The description is minimal and lacks depth.

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?

The description is a single, front-loaded sentence with no wasteful words. It earns a perfect score for conciseness.

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 the tool's simplicity (no params, no output schema, no annotations), the description is minimally complete but leaves gaps about result format and error conditions. It is adequate but not rich enough to be genuinely helpful.

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 has zero parameters, so the baseline is 4. The description does not need to explain parameter semantics, and the empty schema confirms no parameters exist.

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 the tool retrieves results from the last executed script, using a specific verb and resource. It is distinguishable from sibling tools like run-script or get-help, though it does not explicitly differentiate itself from similar getter 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 gives no guidance on when to use this tool versus alternatives, nor does it mention prerequisites like having run a script first. It implies usage after script execution but does not state this explicitly.

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

list-available-effectsA

List all effects available in this After Effects installation, with optional text filter.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoOptional text filter. Matches effect name, matchName, and category.
includeObsoleteNoInclude obsolete effects (default: false).
maxResultsNoMaximum results to return (default: 5000).

TDQS

A3.5/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It mentions the optional text filter but does not disclose default behavior like exclusion of obsolete effects or result limits, which are only in the schema. For a read-only listing, this is minimal but not misleading.

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 of 13 words that is front-loaded with the action and scope. No unnecessary words or repetition, making it highly concise and well-structured.

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 tool is low-complexity, but with no output schema or annotations, the description needs to carry more context. It omits details about the return format and default filtering behavior, though the schema covers parameter specifics. 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 coverage is 100%, so the baseline is 3. The description only mentions the optional filter, which maps to the query parameter, but adds no extra meaning beyond the schema's own parameter descriptions.

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 clearly states the action (List) and the resource (effects available in this After Effects installation). It distinguishes from sibling tools like list-layer-effects by specifying installation-level scope, making the purpose 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 guidance is provided on when to use this tool versus alternatives such as list-layer-effects or search-presets. The description does not mention any exclusions or trade-offs, leaving the agent to infer usage from the name alone.

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

list-layer-effectsC

List effects on a layer, with optional recursive property details.

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based index of the target composition in the project panel.
layerIndexYes1-based index of the target layer within the composition.
includePropertiesNoInclude effect property trees (default: false).
includeValuesNoInclude current values for non-group properties (default: false).
maxDepthNoMaximum property recursion depth when includeProperties is true (default: 2).

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 of behavioral disclosure. It implies a read operation ('List') but does not explicitly state safety, edge-case behavior, or how recursion affects output. The optional recursion hint is present but underelaborated.

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?

The description is a single, concise sentence with no redundant words. It front-loads the primary action and mentions the optional capability efficiently.

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 there is no output schema, the description should explain what the returned list looks like or what 'effects' includes. It also lacks context about parameter relationships (e.g., maxDepth only matters when includeProperties is true) and does not mention any limitations or prerequisites.

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. The description adds the phrase 'recursive property details' which loosely maps to includeProperties/maxDepth, but it does not meaningfully enhance understanding beyond the already-detailed 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 clearly states the tool's action ('List effects on a layer') and indicates an optional feature ('recursive property details'). While it doesn't explicitly differentiate from sibling tools like list-available-effects, the focus on 'on a layer' makes the purpose clear enough.

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 is provided on when to use this tool versus alternatives. There is no mention of when to prefer list-layer-effects over list-available-effects or other inspection tools, nor any exclusions or prerequisites.

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

list-presetsA

List available After Effects .ffx presets from common or provided folders.

ParametersJSON Schema
NameRequiredDescriptionDefault
presetRootsNoOptional absolute directories to search for presets. Defaults to common Adobe preset locations.
recursiveNoRecursively search subdirectories (default: true).
maxResultsNoMaximum number of preset files to return (default: 500).
maxDepthNoMaximum directory depth when recursive is true (default: 10).

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description must carry the full behavioral disclosure burden. It implies a read-only operation ('List available') and specifies the source folders, but it does not state what the tool returns (e.g., file paths vs. names), whether it requires After Effects to be running, or any limits like recursion defaults. This is adequate for a simple list tool but lacks depth.

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?

The description is a single sentence, containing only 10 words, and is front-loaded with the core action ('List available After Effects .ffx presets'). Every word is purposeful and there is no redundant 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?

The tool is simple, but there is no output schema, so the description should clarify what the tool returns. It does not. Additionally, with sibling search-presets present, the description could have mentioned how list-presets differs (e.g., 'lists all presets from folders, while search-presets filters by query'). Overall, it provides the basic purpose but leaves these contextual 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?

The schema provides 100% description coverage for all four parameters, so the baseline is 3. The tool description adds minimal semantic value beyond the schema; 'common or provided folders' merely paraphrases the schema's presetRoots description, and no details about maxDepth, recursive, or maxResults are included in the description.

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 uses a specific verb ('List'), identifies the resource ('After Effects .ffx presets'), and specifies the scope ('from common or provided folders'). This clearly distinguishes it from sibling tools like apply-preset and search-presets by focusing on enumeration from filesystem locations.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool (when you need to discover available presets from common or custom folders), but it does not explicitly mention alternatives or when not to use it. Since sibling search-presets exists, a brief note on how it differs would have made this a 5.

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

mcp_aftereffects_applyEffectC

Apply an effect to a layer in After Effects

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based index of the target composition in the project panel.
layerIndexYes1-based index of the target layer within the composition.
effectNoGeneric effect identifier. Can be either exact display name or matchName.
effectIdentifierNoAlias for effect. Can be either exact display name or matchName.
effectNameNoDisplay name of the effect to apply (e.g., 'Gaussian Blur').
effectMatchNameNoAfter Effects internal name for the effect (more reliable, e.g., 'ADBE Gaussian Blur 2').
effectSettingsNoOptional parameters for the effect (e.g., { 'Blurriness': 25 }).

TDQS

C2.9/5.0
Behavior2/5

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

The description discloses only the basic action and does not mention any behavioral traits such as side effects, reversibility, or how to handle the multiple effect identifier fields. With no annotations, the description carries the full burden and falls short.

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, clear sentence that is front-loaded with the core verb and object. It is appropriately brief and contains no fluff, though additional context would be beneficial.

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 tool with 7 parameters, multiple aliases, no output schema, and no annotations, the description is far too sparse. It does not clarify effect selection semantics, the optional nature of settings, or any operational context, making it incomplete for an agent to invoke 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?

The input schema already documents all seven parameters with 100% coverage, so the baseline is 3. The description adds no parameter-related meaning, such as the relationship between effect, effectName, effectMatchName, and effectIdentifier.

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 the action (apply) and the target (effect to a layer in After Effects). It is not a tautology and is specific enough to convey the core purpose, though it does not differentiate from sibling tools like apply-effect or add-any-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?

The description provides no guidance on when to use this tool versus alternatives. It lacks any mention of prerequisites, scenarios, or exclusions, leaving the agent to infer usage from the name alone.

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

mcp_aftereffects_applyEffectTemplateC

Apply a predefined effect template to a layer in After Effects

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based index of the target composition in the project panel.
layerIndexYes1-based index of the target layer within the composition.
templateNameYesName of the effect template to apply.
customSettingsNoOptional custom settings to override defaults.

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 burden for behavioral disclosure. It only states the action without revealing important traits such as whether existing effects are replaced, whether the layer must be selected, or whether the operation is destructive. This is insufficient for a tool that applies changes to a layer.

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?

The description is a single, clear sentence with no redundant words. It is appropriately sized and front-loaded with the verb and object, making it easy to parse.

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 no output schema and no annotations, the description should provide more context about what happens after applying the template, whether any output (e.g., success/failure) is returned, and how customSettings interact with the template. The current one-sentence description leaves critical operational details unspecified, especially for a tool with a nested object parameter.

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?

All four parameters are fully described in the input schema (100% coverage), so the baseline is 3. The description itself adds no additional meaning beyond the schema, such as explaining the customSettings object structure or how template defaults work, but the schema already provides adequate 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 clearly states the verb ('apply') and resource ('predefined effect template to a layer in After Effects'), making the core function understandable. However, it does not differentiate this from closely related sibling tools such as 'apply-effect' or 'apply-effect-template', leaving some ambiguity about which tool to choose.

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 provides no guidance on when to use this tool versus alternatives like 'apply-effect' or 'apply-preset'. It does not mention any exclusions, prerequisites, or typical scenarios, leaving the agent without clear selection criteria.

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

mcp_aftereffects_get_effects_helpB

Get help on using After Effects effects

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 burden of disclosing behavior. It implies a read-only operation (getting help) but does not state whether it is safe, what the output format looks like, or whether it requires After Effects to be running. This is minimal disclosure for a tool with no annotations.

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

Conciseness5/5

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

The description is a single, concise sentence that immediately conveys the core function. It is front-loaded with the verb and resource, and every word is necessary. There is no redundancy or 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?

Given the simplicity of the tool (0 parameters, no output schema, no annotations), the description is minimally viable. It tells the agent what the tool does but does not clarify the nature of the returned help (e.g., text, JSON, command reference) or the scope of 'using After Effects effects'. For a help tool, some additional context about output would improve completeness.

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 has zero parameters, so the input schema provides no information. The description adds no parameter details, but the baseline for 0-parameter tools is 4, and there is nothing to compensate for, as no arguments are needed.

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 the tool's purpose with a specific verb ('Get help') and resource ('After Effects effects'). It distinguishes from the generic 'get-help' sibling by specifying the domain. However, it lacks detail on exactly what kind of help is provided (e.g., syntax, examples, troubleshooting), making it slightly less clear than a more descriptive purpose.

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 provides no guidance on when to use this tool versus alternatives like 'get-help' or other effect-related tools. It does not mention any conditions, prerequisites, or when not to use it. For a tool with a generic sibling, this is a notable gap.

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

remove-effectB

Remove one specific effect (or all effects) from a layer.

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based composition index.
layerIndexYes1-based layer index.
effectIndexNo1-based effect index within the layer's Effects group.
effectNameNoDisplay name of the effect to remove.
effectMatchNameNoInternal match name of the effect to remove.
removeAllNoIf true, remove all effects from the layer.

TDQS

B3.2/5.0
Behavior2/5

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

The description discloses the core behavior but omits any side effects, irreversibility, or error conditions. With no annotations available, the description carries the full burden and does not clarify what happens when removing an effect fails or when removeAll is combined with effectName.

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?

The description is a single, brief sentence that immediately states the purpose. It follows a clear structure with no filler.

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 tool with six parameters and no output schema or annotations, the description is too thin. It does not explain how the effect selection parameters (effectIndex, effectName, effectMatchName) interact, nor what happens if none are specified when removeAll is false. This leaves the agent uncertain about invocation requirements.

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 input schema already describes all six parameters with 100% coverage, so the baseline is 3. The description adds only the high-level distinction between removing one effect versus all, which is also captured by the removeAll parameter description.

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 clearly states the action ('Remove') and the target ('effect' on a 'layer'), and mentions the dual mode (specific or all). This distinguishes it from sibling tools like apply-effect or list-layer-effects.

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 is provided on when to use this tool versus alternatives like set-effect-property or list-layer-effects. The description does not mention contexts in which removal is appropriate or if there are prerequisites.

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

run-bridge-testA

Run the bridge test effects script to verify communication and apply test effects

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.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. It only states that it 'applies test effects,' which hints at mutation, but does not explain what those effects are, whether they are reversible, or any other side effects. This is insufficient for a tool with no annotation safety hints.

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?

The description is a single, focused sentence that gets straight to the point. No wasted words, and it is appropriately sized for such a simple 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?

Given the tool's simplicity (no parameters, no output schema), the description gives the basic purpose but leaves ambiguity around 'bridge test' terminology and the nature of 'test effects.' It is adequate for a simple utility but not fully complete.

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 has zero parameters, so the schema fully covers all inputs. The description doesn't need to explain parameters; the baseline of 4 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?

The description clearly identifies a specific verb ('Run'), the resource ('the bridge test effects script'), and the purpose ('verify communication and apply test effects'). It stands apart from generic siblings like 'run-script' by naming a specialized test script.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool ('to verify communication and apply test effects'), but does not explicitly contrast with alternatives or state exclusions. This meets the 'clear context, no exclusions' bar, earning a 4.

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

run-scriptA

Run a read-only script in After Effects

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptYesName of the predefined script to run
parametersNoOptional parameters for the script

TDQS

A4.1/5.0
Behavior4/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 discloses that the script is read-only, which is valuable safety information, and adds context beyond the schema. It could mention more about side effects or error behavior, but the read-only qualifier provides meaningful transparency.

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?

The description is a single sentence that directly states the purpose and key qualifier. It is concise, front-loaded, and contains 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?

The tool has a simple interface with clear schema coverage, but no output schema is provided. The description does not explain what the script returns or how results are delivered, leaving a gap for a script runner. It is adequate for basic understanding but could be more complete, especially for a tool that runs arbitrary predefined scripts.

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 schema already provides descriptions for both parameters with 100% coverage, so the description does not need to compensate. The description adds nothing about parameter semantics, and the baseline of 3 is appropriate given the schema's completeness.

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 clearly states the action (run), the resource (a script), and the context (After Effects) while adding the qualifier 'read-only' to define the script's nature. This distinguishes it from the sibling tools, which focus on effects, layers, and compositions, not script execution.

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

Usage Guidelines4/5

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

The description implies this tool is for executing predefined scripts that are read-only, clearly differentiating it from effect-related tools. However, it does not explicitly state when to use it over alternatives or provide exclusion criteria, but the uniqueness among siblings makes the usage context clear.

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

search-presetsB

Search After Effects .ffx presets by name or path.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch text to match in preset filename or full path.
presetRootsNoOptional absolute directories to search. Defaults to common Adobe preset locations.
recursiveNoRecursively search subdirectories (default: true).
maxResultsNoMaximum number of preset files to return (default: 200).
maxDepthNoMaximum directory depth when recursive is true (default: 10).

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 full burden for disclosing behavior. It only states it 'searches' and does not mention return format, recursion or depth defaults, limitations, or that it reads from common Adobe preset locations. This is minimal beyond the obvious read-only nature of 'search'.

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?

The description is a single sentence, uses no filler, and is front-loaded with the key action and resource. It earns its place with zero wasted words.

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

Completeness2/5

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

Despite having 5 parameters and no output schema or annotations, the description does not mention return format or typical use context. It only states the basic purpose, leaving the agent to infer behavior from the schema. The tool is relatively simple but should have disclosed more about results.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter already has a clear description. The tool description adds no additional parameter meaning, but this is acceptable per the baseline rule for high schema 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?

Clearly states what the tool does: searches After Effects .ffx presets by name or path. Provides a specific verb ('Search') and resource ('.ffx presets'), distinguishing from siblings like list-presets or apply-preset.

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 when one needs to find a preset by searching for a name or path, but it does not explicitly contrast with sibling tools like list-presets or provide exclusions. No clear 'when-not-to-use' guidance beyond the inherent verb.

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

set-audio-levelsA

Set the audio levels (in dB) for an audio or AV layer. Supports per-channel control and optional keyframing.

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based composition index.
layerIndexYes1-based layer index.
levelNoLevel in dB applied to both left and right channels (e.g. 0 = unity, -6 = half volume, -96 = silence).
leftLevelNoLeft channel level in dB (overrides level for left channel).
rightLevelNoRight channel level in dB (overrides level for right channel).
timeInSecondsNoIf provided, sets a keyframe at this time instead of a static value.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It discloses the dB unit, per-channel control, and keyframing capability, but it does not explain what happens if no level is provided, how left/right override level, or whether existing keyframes are replaced. This leaves gaps 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.

Conciseness5/5

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

The description is a single, concise sentence that front-loads the action and resource, then adds two key feature areas. Every word earns its place with no redundancy or filler.

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?

Given the 100% schema coverage and absence of an output schema, the description provides a sufficient high-level overview for an agent to select and invoke the tool. It lacks explicit usage exclusions and edge-case behavior, but the combination with the detailed schema is adequate.

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 each property already described in detail (e.g., leftLevel 'overrides level for left channel', timeInSeconds sets a keyframe). The description adds no additional parameter semantics, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Set') with a clear resource ('audio levels (in dB) for an audio or AV layer') and scopes the behavior with 'per-channel control and optional keyframing'. This distinguishes it from sibling read tools like get-audio-info and other setters like set-effect-property.

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 (when adjusting audio levels) but provides no explicit alternatives or exclusions. It does not reference sibling tools or state when not to use it, leaving the agent to infer usage from context.

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

set-effect-keyframeB

Set an effect property keyframe with optional graph interpolation and easy-ease controls.

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based index of the target composition in the project panel.
layerIndexYes1-based index of the target layer within the composition.
effectIndexNo1-based index of the effect in the layer's Effects group.
effectNameNoDisplay name of the effect to target.
effectMatchNameNoInternal matchName of the effect to target.
propertyPathNoPath from effect root to target property, e.g. ['Compositing Options', 'Effect Opacity'] or [3, 1].
propertyNameNoFallback target property name or matchName.
propertyIndexNoFallback target property index under the effect root.
keyframeIndexNoOptional keyframe index to edit graph/value directly without resolving by time.
valueNoValue to set at the keyframe time.
timeInSecondsNoTime of the keyframe in seconds.
keyframeOptionsNoOptional graph/easing controls for the created keyframe.

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. It only states the action without revealing side effects, how the tool resolves target properties (propertyPath vs propertyName vs propertyIndex), or what happens when keyframeIndex is omitted. For a 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.

Conciseness5/5

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

The description is a single concise sentence that front-loads the core purpose and optional capabilities. Every word is meaningful, with no redundancy or filler.

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 the tool's complexity (12 parameters, nested keyframeOptions), no output schema, and no annotations, the description is severely incomplete. It lacks workflow context, return behavior, or any explanation of how to effectively use the many parameters, leaving an agent without enough guidance to invoke the tool 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?

All 12 parameters have schema descriptions (100% coverage), so the baseline is 3. The description adds no parameter semantics beyond mentioning graph interpolation and easy-ease controls, which are already encapsulated in the keyframeOptions object. It does not explain parameter relationships or priority.

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 clearly states the specific action 'Set an effect property keyframe' and mentions optional graph interpolation and easy-ease controls. This distinguishes it from sibling tools like set-effect-property (which sets without keyframing) and setLayerKeyframe (which targets layer properties rather than effect properties).

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 for animating effect properties over time, but provides no explicit guidance on when to use this tool versus alternatives such as setLayerKeyframe or set-effect-property. No exclusions or alternative tool names are mentioned.

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

set-effect-propertyB

Set or keyframe any property on an existing layer effect using name/index/path.

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based index of the target composition in the project panel.
layerIndexYes1-based index of the target layer within the composition.
effectIndexNo1-based index of the effect in the layer's Effects group.
effectNameNoDisplay name of the effect to target.
effectMatchNameNoInternal matchName of the effect to target.
propertyPathNoPath from effect root to target property, e.g. ['Compositing Options', 'Effect Opacity'] or [3, 1].
propertyNameNoFallback target property name or matchName.
propertyIndexNoFallback target property index under the effect root.
keyframeIndexNoOptional keyframe index to edit graph/value directly without resolving by time.
valueNoValue to assign to the target property.
timeInSecondsNoIf provided, sets a keyframe at this time using value.
expressionStringNoOptional expression string to set on the target property.
keyframeOptionsNoOptional graph/easing controls applied to the keyframe at timeInSeconds.

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 alone must disclose behavior. It only says 'set or keyframe' without detailing side effects, mutation risks, requirements, or behavior when omitted parameters are used. This is insufficient for a complex 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?

The description is a single, concise sentence that front-loads the core action and target. Every word adds value and there is no filler.

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 the tool's complexity (13 parameters, nested keyframeOptions, no output schema), a one-sentence description is inadequate. It does not explain when keyframing occurs (e.g., via timeInSeconds), how targeting precedence works, or any constraints. The schema provides detailed parameter info, but behavioral context is thin.

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

Parameters3/5

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

Schema coverage is 100% and each parameter has a descriptive comment, so the baseline of 3 applies. The description adds minimal value by mentioning 'using name/index/path', which loosely aligns with effectName, effectIndex, and propertyPath, but does not deepen understanding 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 clearly states the action ('Set or keyframe') and the target ('any property on an existing layer effect'), and specifies the addressing methods (name/index/path). This distinguishes it from sibling tools like apply-effect or setLayerExpression, though it could more explicitly contrast with set-effect-keyframe.

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 for modifying properties on existing layer effects but gives no explicit when-to-use guidance or mention of alternatives. It lacks exclusions or conditions, so it remains at an implied-usage level.

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

setLayerExpressionB

Set or remove an expression for a specific layer property.

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based index of the target composition in the project panel.
layerIndexYes1-based index of the target layer within the composition.
propertyNameYesName of the property to apply the expression to (e.g., 'Position', 'Scale', 'Rotation', 'Opacity').
expressionStringYesThe JavaScript expression string. Provide an empty string ("") to remove the expression.

TDQS

B3.3/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 only states that expressions can be set or removed, but does not disclose side effects such as overwriting existing expressions, handling of invalid expressions, or whether the target property must exist. The removal behavior via empty string is only implied, not explicitly stated in the description itself.

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?

The description is a single, front-loaded sentence that directly states the tool's purpose without any filler. Every word earns its place, making it highly concise and scannable.

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 the moderate complexity (4 required parameters, no output schema, no annotations), the description provides the essential purpose but leaves gaps around behavioral outcomes and edge cases (e.g., overwriting, error handling, prerequisites). The schema covers parameters well, but the lack of behavioral context makes the description only minimally complete for an agent to safely invoke the 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?

Since the schema already provides 100% coverage with clear descriptions for all four parameters, the description adds minimal extra semantic value beyond mentioning 'remove' in the summary. The schema describes expressionString's empty-string behavior effectively, so the description does not need to compensate for missing parameter details.

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 uses a specific verb ('set or remove') and resource ('expression for a specific layer property'), clearly distinguishing it from sibling tools like setLayerKeyframe (keyframes) and run-script (general scripts). It precisely conveys both the primary action and the removal capability.

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 provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. Usage context is only implied by the tool's name and purpose, but no explicit when-to-use or when-not-to-use guidance is given relative to siblings like run-script or setLayerKeyframe.

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

setLayerKeyframeB

Set a keyframe for a specific layer property at a given time.

ParametersJSON Schema
NameRequiredDescriptionDefault
compIndexYes1-based index of the target composition in the project panel.
layerIndexYes1-based index of the target layer within the composition.
propertyNameYesName of the property to keyframe (e.g., 'Position', 'Scale', 'Rotation', 'Opacity').
timeInSecondsYesThe time (in seconds) for the keyframe.
valueNoThe value for the keyframe (e.g., [x,y] for Position, [w,h] for Scale, angle for Rotation, percentage for Opacity)

TDQS

B3.2/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 only states the action without revealing what happens if the optional 'value' parameter is omitted, whether existing keyframes are overwritten, or what the tool returns. This is a significant gap 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.

Conciseness5/5

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

The description is a single concise sentence that directly states the core action without any filler or redundancy. Every word contributes to understanding.

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 no annotations, no output schema, and an optional 'value' parameter whose behavior is unexplained, the description is not complete enough for an agent to fully understand the tool's behavior. The schema covers parameter names and types, but the description fails to convey key contextual nuances such as keyframe overwriting or the significance of the optional value.

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 input schema already provides 100% coverage of parameter descriptions, so the baseline is 3. The description adds little beyond restating 'specific layer property' and 'given time,' and it fails to clarify the optional 'value' parameter, which is not included in the required list. However, since the schema handles most semantics, a 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb 'Set' with a clear resource: 'a keyframe for a specific layer property at a given time.' It clearly distinguishes from sibling tools like set-effect-keyframe by focusing on layer properties rather than effects.

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 provides no guidance on when to use this tool versus alternatives. There are related sibling tools such as set-effect-keyframe and setLayerExpression, but the description does not mention them or any exclusions, leaving the agent without explicit usage direction.

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

test-animationD

Test animation functionality in After Effects

ParametersJSON Schema
NameRequiredDescriptionDefault
operationYesThe animation operation to test
compIndexYesComposition index (usually 1)
layerIndexYesLayer index (usually 1)

TDQS

D1.7/5.0
Behavior1/5

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

No annotations are provided, so the description must disclose behavioral traits. It only says 'test', which is ambiguous—does it apply changes or remain read-only? It does not mention side effects, return values, or any safety profile, leaving the agent without critical information.

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

Conciseness2/5

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

The entire description is one short sentence, which is appropriately concise in length, but it merely restates the tool name. This is under-specification rather than effective conciseness because it uses the sole sentence without providing any substantive information.

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 a tool with no annotations, no output schema, and three required parameters, the description is wholly inadequate. It fails to explain what 'testing' means, how operation/comp/layer parameters interact, what the agent should expect as a result, or when this tool should be chosen over the many sibling animation tools.

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 schema provides 100% description coverage for the three parameters, including the operation enum and brief guidance ('usually 1'). The description adds no parameter-level insight beyond the schema, so the baseline of 3 applies.

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

Purpose2/5

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

The description "Test animation functionality in After Effects" is a near-tautology of the tool name 'test-animation'. It identifies the domain (After Effects animation) but does not specify what testing entails, nor does it distinguish this tool from siblings like setLayerKeyframe or setLayerExpression.

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

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools for setting keyframes and expressions, there is no explanation of whether this tool is for validation, comparison, or actual mutation, nor any exclusions or prerequisites.

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. 30 tool updatesv1.0.0
    • First observedadd-any-effect
    • First observedadd-marker
    • First observedadd-markers-bulk
    • First observedanalyze-audio-waveform
    • First observedapply-effect
    • First observedapply-effect-template
    • First observedapply-preset
    • First observedcenter-layers
    • First observedcreate-adjustment-layer
    • First observedcreate-composition
    • First observedget-audio-info
    • First observedget-help
    • First observedget-layer-clip-frames
    • First observedget-results
    • First observedlist-available-effects
    • First observedlist-layer-effects
    • First observedlist-presets
    • First observedmcp_aftereffects_applyEffect
    • First observedmcp_aftereffects_applyEffectTemplate
    • First observedmcp_aftereffects_get_effects_help
    • First observedremove-effect
    • First observedrun-bridge-test
    • First observedrun-script
    • First observedsearch-presets
    • First observedset-audio-levels
    • First observedset-effect-keyframe
    • First observedset-effect-property
    • First observedsetLayerExpression
    • First observedsetLayerKeyframe
    • First observedtest-animation

TDQS

C2.5/5.0

Scored across 30 tools

Disambiguation2/5

Several tools overlap in purpose, e.g., apply-effect, add-any-effect, and mcp_aftereffects_applyEffect all apply effects but with different naming. Similarly, apply-effect-template and mcp_aftereffects_applyEffectTemplate are redundant. This duplication confuses tool selection.

Naming Consistency2/5

Naming conventions are inconsistent: camelCase (setLayerExpression, setLayerKeyframe) mixed with snake_case (add-any-effect, set-effect-property). Some tools have a 'mcp_aftereffects_' prefix while others do not, lacking a predictable pattern.

Tool Count3/5

30 tools is somewhat high, and several are redundant (multiple apply effect tools). The server would benefit from consolidation to reduce clutter, but the count is not extremely excessive.

Completeness2/5

The tool set covers effects, markers, audio, and keyframes but lacks basic layer creation (e.g., text, shape layers) and import/export/rendering. Essential workflows have significant gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers