Skip to main content
Glama

MCP for After Effects

mcp-aftereffects

CI License: MIT Node After Effects Platform

English | 日本語

An MCP server that enables AI to control Adobe After Effects.

You can connect MCP-compatible clients such as Claude Code or Claude Desktop to a running instance of After Effects, allowing the AI to handle everything from project inspection and editing to rendering.

There is no need to provide detailed instructions on how to operate After Effects. Simply explain what you want to achieve in natural language, and the AI will check the project status and perform the necessary operations.

Windows / macOS · After Effects 2024–2026 · Node.js 24+

CAUTION

This tool directly manipulates After Effects projects via AI.

The AI can read project contents and modify compositions, layers, effects, keyframes, and more.

Additionally, information the AI reads from the project may be sent to the AI service you are using. This may include composition names, layer names, expressions, keyframes, footage file paths, etc.

If using this for projects under NDA or unreleased works, please check the data retention policy of the AI service you are using and the logs of your MCP client beforehand.

For first-time use, we recommend trying it with a backup or a test .aep file rather than a critical project.

Capabilities

With mcp-aftereffects, you can request the AI to perform After Effects tasks.

  • Inspect project contents

  • Investigate compositions and layers

  • Edit layers and properties

  • Add or modify keyframes

  • Edit effects and masks

  • Edit text and shapes

  • Set expressions

  • Save projects

  • Create and restore project backups

  • Render frames to preview changes

For example, you can give instructions like these:

"Import this Illustrator file and create some nice-looking text motion."

"Apply the revisions mentioned in this PDF."

"Point out any issues in this AEP."

Even for complex tasks, the AI can combine necessary operations while checking the project status.

Related MCP server: After Effects MCP Server

Requirements

  • Windows or macOS

  • Adobe After Effects 2024 / 2025 / 2026

  • Node.js 24 or higher

  • MCP-compatible client (Claude Code, Claude Desktop, etc.)

No plugins or panels need to be installed within After Effects.

After Effects Settings

In After Effects Preferences, please turn ON the following:

Preferences → Scripting & Expressions → "Allow Scripts to Write Files and Access Network"

If this setting is OFF, the AI will not be able to perform operations correctly.

For macOS

Upon first use, macOS may request permission for the client to control After Effects.

If it is not permitted, go to:

System Settings → Privacy & Security → Automation

and allow your MCP client or terminal to control After Effects.

Quick Start

No installation is required on the After Effects side.

First, launch After Effects and open the project you wish to operate on.

Next, register mcp-aftereffects with your MCP client.

Claude Code

claude mcp add aftereffects -- npx -y @kumoproductions/mcp-aftereffects

Claude Desktop

Add the following to your MCP configuration file:

{
  "mcpServers": {
    "aftereffects": {
      "command": "npx",
      "args": ["-y", "@kumoproductions/mcp-aftereffects"]
    }
  }
}

If you are using other MCP clients, please follow their respective registration methods for MCP servers.

Read-Only Mode

If you want to inspect or audit project content without making any changes, you can use read-only mode.

Add the following to your MCP client configuration:

{
  "mcpServers": {
    "aftereffects": {
      "command": "npx",
      "args": ["-y", "@kumoproductions/mcp-aftereffects"],
      "env": {
        "AE_MCP_READONLY": "1"
      }
    }
  }
}

You can still investigate the project and render frames for preview.

Advanced Settings

Usually, no configuration is necessary.

In some environments, such as when After Effects is installed in a non-standard location, additional settings may be required.

Specifying After Effects Location

If After Effects is not in the standard installation path, you can specify the executable location using AE_MCP_EXE.

By default, it automatically searches for After Effects in the order of 2026 → 2025 → 2024.

Limiting Operation Scope

Using AE_MCP_ALLOW_CATEGORIES, you can restrict the types of operations permitted for the AI.

For example, you can limit permissions to only keyframe-related operations depending on your use case.

Execution of Arbitrary ExtendScript

mcp-aftereffects includes an advanced feature to execute arbitrary ExtendScript for processes that cannot be handled by standard operations.

This feature is disabled by default.

CAUTION

Enabling arbitrary ExtendScript allows operations outside of After Effects.

This may permit actions that affect your entire computer, such as file or process manipulation.

This feature is disabled by default. Enable it only if necessary.

To enable it, set the following in your MCP server environment variables:

"env": {
  "AE_MCP_ENABLE_EVAL": "1"
}

Use this feature only for advanced processing that cannot be achieved through regular operations or when custom ExtendScript is required.

Official Releases

NOTE

Official releases are distributed only through npm and GitHub Releases.

Please exercise caution if obtaining packages claiming to be @kumoproductions/mcp-aftereffects or files claiming to be this server from any other location.

Troubleshooting

Operations Timeout

Please check the following:

  • Is After Effects running?

  • Is a project open?

  • Is "Allow Scripts to Write Files and Access Network" turned ON?

  • On macOS, is the Automation permission enabled?

After Effects Not Found

If you have installed After Effects in a non-standard location, please set AE_MCP_EXE.

If the issue persists, please report it via an Issue or to @cumuloworks.

Developer Information

For information regarding internal MCP tools, communication methods with After Effects, ExtendScript, test environments, and how to add custom operations, please refer to the developer documentation.

  • docs/TOOLS.md

  • CONTRIBUTING.md

Contributing

Bug reports, feature requests, and Pull Requests are welcome.

For information on setting up the development environment and the internal architecture, please refer to CONTRIBUTING.md.

License

MIT © 2026 kumo.productions, Inc.

Trademark

Adobe® and Adobe After Effects® are trademarks of Adobe Inc.

This project is an independent, unofficial tool and is not affiliated with or endorsed by Adobe.

Available Tools

11 tools
ae_catalogOperation catalogA
Read-only

Discover available atomic operations for ae_do. Without args: all categories with their operation names. With a category: detailed params per operation. Only operations this server will actually execute are listed.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter by category. Omit to list all categories with operation counts, then drill into a specific category.

TDQS

A4.4/5.0
Behavior4/5

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

The description explains the tool's behavior beyond the read-only annotation: it lists categories vs. detailed params, and highlights that only executable operations are listed, setting accurate expectations. The readOnlyHint=true annotation aligns with the description's non-mutating purpose; no contradiction exists, and the description adds useful context about the two output modes.

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 long and front-loaded with the primary purpose. Both sentences earn their place: the first states what the tool does, and the second details the two invocation modes and the guarantee about listed operations. No 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?

For a simple catalog tool with one optional parameter, read-only annotation, and no output schema, the description provides sufficient context: it explains the return content (categories or params) and the filtering guarantee. Minor omission is that it doesn't explicitly mention operation counts, but the schema's parameter description covers that, making it complete enough.

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 input schema already provides a 100%-coverage description for the single parameter, including behavior when omitted. The tool description reinforces and expands on this by clarifying the exact difference between no-args and with-category outputs, adding value beyond the schema alone.

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 the tool as a discovery mechanism for atomic operations available to ae_do, with a specific verb ('Discover') and a defined resource (available atomic operations). It distinguishes itself from sibling tools like ae_do (which executes operations) and other project/layer tools that serve different purposes.

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 explicitly explains usage without args (list all categories) and with a category (detailed params per operation), giving clear context for both modes. It also states that only operations the server will execute are listed, which is a key guideline for filtering. It does not name specific alternatives, but the distinction from ae_do is implicit in the wording.

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

ae_comp_infoComp infoA
Read-only

Detailed comp info: size, fps, duration, work area, motion blur, layer summaries. Pass a comp name or item id — or an ARRAY of them to fetch several comps in one call.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameOrIdYesComposition name (exact match) or numeric item id — or an array of either to batch several comps into one round trip. If you don't know any, call ae_project_info first.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint: true, and the description adds value by disclosing batch capability ('fetch several comps in one call'), exact-match behavior ('Composition name (exact match)' in schema), and the specific fields returned. It goes beyond the simple read-only annotation without contradicting it.

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 a clear summary and then an invocation note. It is concise, with no wasted words, and the list of fields is efficient.

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

Completeness4/5

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

There is no output schema, so the description's enumeration of returned fields (size, fps, duration, work area, motion blur, layer summaries) provides essential context. It also covers input modes and batch behavior. It lacks detail on response format for layer summaries, but the description is sufficiently complete for a read-only info tool with a simple input 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?

Schema description coverage is 100% and fully explains the nameOrId parameter, including accepted types and the array batch option. The main description also mentions 'Pass a comp name or item id — or an ARRAY of them' but adds no new syntax or format details beyond what the schema already provides. Baseline 3 is appropriate here.

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 purpose: 'Detailed comp info' with specific fields (size, fps, duration, work area, motion blur, layer summaries). The verb 'fetch' is implied and the resource (composition) is unambiguous. It distinguishes itself from siblings like ae_layer_info and ae_project_info.

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 main description implies usage for retrieving comp details and mentions batching via arrays. The schema description adds explicit guidance: 'If you don't know any, call ae_project_info first.' This names an alternative tool but does not fully describe when not to use it, though it covers the primary decision point.

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

ae_contextSession contextA
Read-only

Ambient context: project state, active comp, selected layers, item list, AE.* helpers, ES3 rules, and the undo contract (every call = one auto undo group). Call at session start; then rely on ae_do response context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the readOnlyHint annotation, the description discloses the undo contract ('every call = one auto undo group'), which is a notable behavioral trait. It also mentions ES3 rules and AE.* helpers, adding context beyond the annotation. No contradiction.

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 with high density: the first lists the tool's contents, the second gives the usage instruction. Every word earns its place, no 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?

For a zero-parameter, no-output-schema context tool, the description covers what it provides, when to call it, and how to proceed with ae_do responses. The undo contract mention prevents surprises, making it sufficiently complete for its 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?

There are zero parameters, so the description correctly does not need to explain parameter details. Baseline 4 applies, and the description adds value by clarifying what contextual information the tool returns.

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 the tool as providing ambient session context, listing specific content like project state, active comp, selected layers, and AE.* helpers. This distinguishes it from sibling tools like ae_comp_info or ae_layer_info, which are focused queries.

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?

It explicitly instructs 'Call at session start' and suggests relying on ae_do response context afterward, giving clear timing and handoff. It does not mention when-not-to-use or list alternatives, but the session-start directive is strong.

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

ae_doExecute operationA
Destructive

Execute an atomic operation by name (from ae_catalog). Arguments are validated against the operation's declared parameters before anything reaches AE. Have more than one operation to run? Wrap them in ONE batch.run instead of several ae_do calls — read/verify steps (comp.info, layer.info, render.frame) can ride in the same batch. Every call is automatically wrapped in ONE undo group: a single Ctrl+Z (or project.undo) reverts the entire call, and a batch.run counts as one call. Never call app.beginUndoGroup/endUndoGroup in eval.run code — the wrapper already did. The exception is undo/redo itself (project.undo, command.execute id 16/2035): those run outside the group and cannot ride inside a batch.run. Response includes ambient context (active comp, selected layers, project state) at zero extra round trips. Example: ae_do({ operation: 'keyframe.add', args: { comp: 'Main', layer: 1, property: ['Transform','Position'], time: 2, value: [960,540] } })

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoArguments for the operation. Validated against ae_catalog's declared params: missing required args, wrong types, and unknown keys are rejected before AE is contacted. Omit for zero-param operations.
operationYesOperation name from ae_catalog (e.g. 'layer.create_solid', 'keyframe.add').
timeoutMsNoPer-call timeout in milliseconds (default 60000). Raise for long operations like render.start or big batch.run calls.

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description discloses key behaviors: arguments are validated before reaching AE, every call is wrapped in one undo group, and the response includes ambient context at zero extra round trips. It also warns against calling beginUndoGroup/endUndoGroup in eval.run code. This adds substantial context beyond the structured annotation.

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?

Though the description is longer than average, every sentence conveys essential information: purpose, usage guidance, undo behavior, response context, and example. It is well-structured and front-loaded with the core purpose, then expands into usage details without redundancy.

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

Completeness5/5

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

Given the tool's generic nature (executes any catalog operation) and lack of output schema, the description covers invocation, validation, batching, undo behavior, response contents, and includes an example. It is sufficiently complete for an agent to select and invoke the tool correctly, especially with sibling tool context.

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 schema already documents all three parameters with 100% coverage. The description adds value by explaining validation semantics ('Arguments are validated against the operation's declared parameters'), clarifying that args can be omitted for zero-param operations, and providing a concrete example with operation and args. This goes beyond what the schema alone provides.

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: 'Execute an atomic operation by name (from ae_catalog).' It distinguishes ae_do from sibling tools like ae_comp_info and ae_layer_info by positioning it as the generic executor for operations defined in the catalog, making the purpose specific and unambiguous.

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

Usage Guidelines5/5

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

Provides explicit usage guidance: 'Have more than one operation to run? Wrap them in ONE batch.run instead of several ae_do calls' and notes that read/verify steps can ride in the same batch. It also clearly states when not to use ae_do (for undo/redo operations that cannot ride inside a batch.run).

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

ae_layer_infoLayer infoA
Read-only

Full layer info: transform, effects, masks, text, shape contents, keyframes. layerIndex accepts one index, an ARRAY of indices, or 'all' — auditing a whole comp is one call. Set includeProperties=false to skip the property tree walk.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerIndexYes1-based layer index — or an array of indices, or 'all' for every layer in the comp, returned together in one round trip.
compNameOrIdYesComposition name (exact match) or numeric item id.
includePropertiesNoInclude the full property tree (Transform/Effects/Masks/Text). Default true.

TDQS

A4.5/5.0
Behavior4/5

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

The description goes beyond the readOnlyHint annotation by detailing what data is returned and how the includeProperties flag affects the traversal. It also discloses the batching behavior for multiple layers, giving agents a clear picture of the call's scope and performance traits.

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 exceptionally compact—two sentences that front-load the tool's purpose and then provide actionable parameter guidance. Every phrase earns its place without redundant specification.

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

Completeness5/5

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

Given the read-only nature and the absence of an output schema, the description sufficiently explains what information is returned and how to request bulk or partial data. It leaves no major gaps for a tool of this complexity.

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

Parameters4/5

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

While the schema already covers all three parameters with descriptions, the tool description enriches the layerIndex semantics by emphasizing the single-call batching and the includeProperties rationale ('skip the property tree walk'). This adds practical meaning beyond the raw schema definitions.

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 with 'Full layer info' and a specific list of contents (transform, effects, masks, text, shape contents, keyframes). This distinguishes it from sibling tools like ae_comp_info and ae_project_info by explicitly targeting layers.

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 use, highlighting the ability to pass multiple indices or 'all' for auditing a whole comp in one call. However, it does not explicitly mention when not to use this tool or name alternatives among the listed siblings, so it stops short of a full exclusionary guide.

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

ae_project_export_jsonExport project JSONA

Serialize the entire project to JSON (folders, comps, layers, keyframes, effects, shapes, markers, time remap, solids, file refs). Write to outPath or return inline.

ParametersJSON Schema
NameRequiredDescriptionDefault
prettyNoPretty-print the JSON (2-space indent). Default: true when writing to disk, false otherwise.
outPathNoIf set, write the exported JSON to this absolute path on disk. If omitted, the JSON is returned inline in the tool response (can get large).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only provide destructiveHint=false. The description adds valuable behavioral context: it writes to outPath or returns inline, and warns that inline JSON can get large. This goes beyond the minimal annotation and helps the agent anticipate size-related performance implications, though it does not disclose every edge case (e.g., overwrite behavior or exact JSON structure).

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 the core action and scope, followed by the output-mode detail. Every phrase earns its place; the list of serialized components is concise but informative, and there is no fluff.

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 there is no output schema, the description does the work of explaining what the tool returns by listing serialized components and stating that JSON is returned inline when outPath is omitted. It also flags the potential for large outputs. It could specify the root JSON structure or error behavior, but for a complex export tool, this is a reasonably complete picture.

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 detailed descriptions for both `pretty` and `outPath`. The tool description simply restates the outPath behavior ('Write to outPath or return inline') without adding new parameter semantics. Since the schema already explains defaults and behavior, the description adds no extra value, meeting the baseline 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?

The description clearly states the tool serializes the entire project to JSON with a specific list of included elements (folders, comps, layers, keyframes, effects, shapes, markers, time remap, solids, file refs). This is a specific verb+resource that distinguishes it from siblings like ae_project_info or ae_project_import_json.

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 clearly implies when to use this tool (for full project export) and explains the two output modes (write to path or inline). It does not explicitly name alternatives or state when not to use it, but the 'entire project' scope and inline warning provide sufficient contextual guidance relative to sibling tools.

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

ae_project_import_jsonImport project JSONA
Destructive

Rebuild the project from JSON (produced by ae_project_export_json). Supports clearFirst, dryRun (validate-only), skipValidation.

ParametersJSON Schema
NameRequiredDescriptionDefault
jsonNoInline JSON document (object, not string). Mutually exclusive with `inPath`.
dryRunNoIf true, validate the document and return a plan without touching AE. Useful for debugging malformed exports.
inPathNoAbsolute path to a JSON document produced by ae_project_export_json. Mutually exclusive with `json`.
clearFirstNoRemove all existing items from the current project before importing. Default: false (appends).
skipValidationNoSkip Node-side schema validation. Only use if you trust the input and want to hand broken data to AE for diagnosis.

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already provide destructiveHint: true, lowering the burden. The description adds the configurable flags (clearFirst, dryRun, skipValidation) but uses the word 'Rebuild' without clarifying that the default behavior is to append rather than replace. This is misleading and violates the expectation of transparency about side effects.

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

Conciseness5/5

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

The description is a single concise sentence with no filler. It front-loads the primary action and then lists the key optional switches, 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?

Although the schema and annotations fill in many details, the description's ambiguous use of 'Rebuild' conflicts with the schema's note that clearFirst defaults to false (appends). This mismatch leaves a critical gap for a mutation tool, as an agent might assume it replaces the project when it actually appends unless told otherwise.

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 description coverage is 100%, with each parameter already fully explained. The tool description only names three flags without adding any new semantic information beyond what the schema provides, 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 action ('Rebuild the project from JSON') and ties it to a sibling tool (ae_project_export_json), making it unmistakable as the import counterpart. This distinguishes it from the other sibling tools and provides a specific verb and resource.

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: it is the inverse of ae_project_export_json and should be used when reconstructing a project from an exported JSON file. However, it does not explicitly state when not to use it or mention alternatives beyond the export tool, so it falls short of a 5.

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

ae_project_infoProject infoA
Read-only

Project-level info: file path, dirty flag, all items with type/summary, active item. Start here.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

The readOnlyHint annotation already indicates a safe read operation. The description adds what data is returned but doesn't disclose potential behavior such as response size, performance implications, or whether all items are loaded at once, which is minimal for a simple read 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, front-loaded sentence that directly states what the tool provides and includes a useful 'Start here' guidance. Every word earns its place with no redundancy.

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

Completeness5/5

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

For a zero-parameter tool with no output schema, the description fully covers its return values (file path, dirty flag, items, active item) and positions it within the tool family. The 'Start here' hint provides sufficient context for an initial exploration tool.

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?

With zero parameters, there is no schema detail to clarify. The description effectively lists the output contents, compensating for the absence of parameters and adding semantic meaning to the tool's purpose.

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 provides project-level info including specific data fields (file path, dirty flag, all items, active item), distinguishing it from sibling tools like ae_comp_info and ae_layer_info which focus on compositions and layers. The phrase 'Start here' reinforces its role as an entry point.

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?

'Start here' implies this should be the first tool used when exploring a project, but it doesn't explicitly state when to use this vs alternatives like ae_comp_info or ae_catalog. No exclusions or alternative recommendations are given.

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

ae_render_frameRender frameA

Render a single frame to PNG. Use to visually verify edits. The agent's 'eyes' — pair with mutations for a visual feedback loop. Headless and deterministic. In color-managed projects (workingSpace != None) the capture applies AE's own display transform via a transient OCIO Display Transform adjustment layer, and the PNG comes back viewer-accurate and sRGB-tagged. Where that layer cannot be used — read-only mode, an AE without the OCIO effect, or a failed capture calibration — the result falls back to a pure-math ACES conversion or to raw values with an explicit colorWarning; check colorPipeline / colorWarning on the response.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeYesTime in seconds to render.
outPathYesAbsolute path to write the PNG. Parent directory is created if missing.
colorManagedNo'auto' (default): detect the working space and return a viewer-accurate, 8-bit sRGB-tagged PNG. 'off': raw legacy output (16-bit, untagged, working-space values — dark/wrong-looking in color-managed projects).
compNameOrIdYesComposition name or numeric item id.
useDisplayStartTimeNoIf true, `time` is interpreted relative to comp.displayStartTime. Default false.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only provide destructiveHint: false, while the description goes far beyond that, detailing headless deterministic rendering, color-managed transforms via OCIO, fallback paths to ACES or raw values, and the response's colorPipeline/colorWarning indicators. This gives deep behavioral insight.

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?

Opens with a clear purpose statement, then a usage note, followed by essential technical details. Every sentence contributes substance—there's no filler or repetition. The structure moves from simple to complex, making it easy to parse.

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

Completeness5/5

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

For a rendering tool with no output schema, the description fully covers what the tool does, when to use it, how it behaves (including color management), what the output looks like (sRGB-tagged vs raw), and what to look for on the response (colorWarning). It also addresses edge cases like read-only mode and missing OCIO effect.

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 input schema already provides thorough parameter descriptions (100% coverage), so the baseline is 3. The description adds extra semantic context by explaining the color-managed behavior in detail, particularly for the colorManaged parameter, and mentioning the effect of working space, which enriches understanding beyond the schema.

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

Purpose5/5

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

Clearly states 'Render a single frame to PNG' with a specific verb, resource, and output format. It also frames its purpose as 'the agent's eyes' for visual verification, distinguishing it from sibling tools like ae_project_info or ae_save_project.

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 instructs 'Use to visually verify edits' and recommends pairing with mutations for a visual feedback loop, providing strong contextual guidance. It doesn't explicitly list alternatives or exclusions, but the use case is unambiguous.

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

ae_save_projectSave projectA
Destructive

Save the project. Pass path for Save As.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoOptional absolute path to save the project to (Save As). If omitted, save to the existing path — errors if the project has never been saved.

TDQS

A4.3/5.0
Behavior4/5

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

The description adds valuable behavioral context beyond the destructiveHint annotation, such as the error condition for unsaved projects and the Save As path behavior. It does not contradict the annotation and clarifies the tool's side effects adequately.

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 core action and a precise pointer to the path parameter. Every word earns its place with no redundancy.

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

Completeness5/5

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

For a simple save operation with one optional parameter, full schema coverage, and a destructive annotation, the description plus schema provide complete guidance. No output schema is needed for a save action, and the behavior is fully documented.

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

Parameters3/5

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

Schema coverage is 100%, and the schema description fully explains the path parameter, including Save As semantics and error behavior. The description adds no new meaning beyond a concise restatement, so the 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 tool saves the project, with a specific verb and resource. It distinguishes itself from siblings like export/import JSON by focusing on native project save, including the Save As nuance via path.

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 schema description provides clear guidance on when to omit path (existing save) versus provide path (Save As), including the error condition if never saved. However, it does not explicitly mention alternatives or when not to use this tool, keeping it just shy of a 5.

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

ae_version_infoVersion infoA
Read-only

AE version, build, capabilities (saveFrameToPng, app.effects, Socket). Call at session start to know what APIs are available.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

The readOnlyHint annotation already indicates safety, and the description adds that it reports capabilities like saveFrameToPng, app.effects, and Socket. This is useful but minimal; it doesn't detail the response format or potential variations.

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

Conciseness5/5

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

One sentence packs the core purpose and a usage directive, with no filler. The description is front-loaded and every word earns its place.

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

Completeness5/5

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

For a zero-parameter read-only tool, the description sufficiently covers what the tool returns (version, build, capabilities) and when to use it. No output schema exists, but the description provides enough context.

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 covers 100% trivially. The description doesn't need to elaborate, so 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 states that the tool retrieves AE version, build, and capabilities, which distinguishes it from sibling info tools that target specific project/comp/layer resources.

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 explicitly instructs calling at session start to discover available APIs, providing clear timing guidance. It doesn't name alternatives, but no sibling serves this exact purpose, so the guidance is sufficient.

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. 11 tool updatesv0.1.0
    • First observedae_catalog
    • First observedae_comp_info
    • First observedae_context
    • First observedae_do
    • First observedae_layer_info
    • First observedae_project_export_json
    • First observedae_project_import_json
    • First observedae_project_info
    • First observedae_render_frame
    • First observedae_save_project
    • First observedae_version_info

TDQS

A4.2/5.0

Scored across 11 tools

Disambiguation5/5

Each tool has a clearly distinct target: project info, comp info, layer info, render, save, serialization, version, catalog, execution, and context. Even overlapping concepts like project_info and context are separated by their descriptions—one returns project details, the other ambient session state and undo rules.

Naming Consistency5/5

All tools share the ae_ prefix and use lowercase snake_case consistently. Names follow a readable verb_noun or resource_info pattern (render_frame, save_project, project_export_json, layer_info), with only ae_do and ae_catalog as short verbs/nouns, but they still fit the same naming style.

Tool Count5/5

Eleven tools is well within the ideal range for an After Effects automation server. The set is well-scoped: read operations, a render check, project save/export/import, and a generic operation mechanism with discovery. Each tool earns its place without redundancy.

Completeness4/5

The surface covers project lifecycle, inspection, rendering, JSON serialization/deserialization, and an extensible atomic operation path via ae_catalog/ae_do. Minor gap: common mutations are not individually exposed as top-level tools, but the catalog/do pair makes them discoverable and executable, so workflows are not blocked.

Maintenance

ActivitySlowing
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers