Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Surehand MCP for Adobe After Effects

MCPB · SUREHAND-MCP.MCPB

Your AI works in Adobe After Effects and proves what it did: change reports, pixel proofs, QC.

Available components

+3 this week 45 Trust /100

Last scanned (22 hours ago)

Scores higher than 76% of MCPB servers

Category Design and Media

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
  • Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
Provenance & Transparency45
Schema Quality & AI Usability75
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 6103 tokens (~179/item across 34 items; 29 tools + 5 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management37
  • Stability observed for 11 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage92
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 77% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 31 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
  • Supports UI / widget rendering.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

What we tested

Checks we ran (13)

  • Source repository
  • Provenance
  • License
  • Maintenance
  • Security disclosure
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol
  • Capabilities

Checks we could not complete (4)

These are gaps on our side, not findings about this package. We only credit what we can confirm, so a category made up entirely of them scores 0.

  • Malware scan in Supply Chain Security (scores 0 for this)No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  • Known CVEs in Supply Chain Security (scores 0 for this)Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
  • Install scripts in Supply Chain Security (scores 0 for this)Install-script risk not yet assessed.
  • Dependency health in Supply Chain Security (scores 0 for this)Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).

Does not apply to this package (2)

  • Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
  • Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.

The score does not measure everything. What the score does not measure →

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 29 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 25 Oct 26 40

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed mcpb/https://github.com/ConformLabs/surehand-mcp/releases/download/v1.4.1/Surehand-MCP.mcpb

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem mcpb
Reason No attestation published

Background: How many MCP packages publish verified provenance →

MCP tools · 29 exposed · ~5,079 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
ae_add_layer ~424

Add a layer to a composition: solid, text, shape (empty, use ae_add_shape to draw), null, adjustment, camera, light, or an existing project item (footage/comp).

NameTypeReqDescription
allCapsboolean––
boxSizearray–Paragraph (box) text size [w,h]; omit for point text.
color––Solid/adjustment color, or light color.
comp––Composition: item id (number) or exact name. Omit (or "active") for the active/open composition.
directionstring–Paragraph direction (AE 24+). Default: text without Hebrew/Arabic characters is set left to right whatever the user's AE type preference is.
durationnumber–Layer duration in seconds (default comp duration).
fauxBoldboolean––
fauxItalicboolean––
fillColor––Color as "#rrggbb" or [r,g,b] (0-1 or 0-255).
fontstring–PostScript font name, e.g. "Arial-BoldMT", "Helvetica", "Montserrat-Bold".
fontSizenumber––
heightinteger––
item––For type 'item': project item to add.
justificationstring––
leadingnumber––
lightTypestring––
moveToIndexinteger–Move the new layer to this 1-based index (new layers are added on top).
namestring––
positionarray––
startTimenumber––
strokeColor––Color as "#rrggbb" or [r,g,b] (0-1 or 0-255).
strokeWidthnumber––
textstring–For text layers.
threeDboolean––
trackingnumber––
typestringyes–
widthinteger–Solid size (default comp size).

No output schema declared.

No examples provided.

ae_add_shape ~287

Draw a shape (rectangle, ellipse, polygon, star, or custom path) with fill and/or stroke, on a new shape layer or an existing one. Positions are relative to the layer (new layers are centered in the comp).

NameTypeReqDescription
closedboolean––
comp––Composition: item id (number) or exact name. Omit (or "active") for the active/open composition.
fill––Fill color; omit for no fill (unless no stroke either: defaults to white).
inTangentsarray––
innerRadiusnumber––
layer––Existing shape layer; omit to create a new one.
namestring––
outTangentsarray––
outerRadiusnumber––
pointsnumber–Polygon/star points.
positionarray–Shape position within the layer (default [0,0]).
roundnessnumber–Rectangle corner roundness.
shapestringyes–
sizearray–[w,h] for rectangle/ellipse (default 400x400).
stroke––Color as "#rrggbb" or [r,g,b] (0-1 or 0-255).
strokeWidthnumber––
verticesarray–For 'path': [[x,y],...].

No output schema declared.

No examples provided.

ae_apply_effect ~171

Apply an effect to a layer by match name (preferred, e.g. "ADBE Gaussian Blur 2", "ADBE Fill", "ADBE Glo2", "ADBE Drop Shadow") or display name, optionally setting parameters. Returns the effect's parameters.

NameTypeReqDescription
comp––Composition: item id (number) or exact name. Omit (or "active") for the active/open composition.
effectstringyes–
layer–yesLayer: 1-based index (number) or exact layer name.
namestring–Rename the effect instance.
paramsobject–Effect parameters by display name or match name, e.g. {"Blurriness": 20, "Repeat Edge Pixels": true} or {"Color": "#ff0000"}.

No output schema declared.

No examples provided.

ae_batch ~204

Run many steps in ONE call: each step is a tool with its arguments (any project/comp/layer/property/keyframe/effect/text/footage tool) or {tool: "ae_run_script", args: {code}}. All steps form a single undo step and return one change report. Atomic by default: if any step fails, everything is undone and you get the error of the failing step. Use it for repetitive or multi-part edits (e.g. style 30 layers, build a scene) to save round trips.

NameTypeReqDescription
atomicboolean–Undo everything if a step fails (default true). false = keep successful steps and continue.
checkpointboolean–Save a project checkpoint before running (see ae_checkpoint).
namestring–Undo step name shown in After Effects (default "Surehand MCP Batch").
stepsarrayyes–
verboseboolean–Return each step's full result (default: short summaries).

No output schema declared.

No examples provided.

ae_call ~91

Run any After Effects tool by name with its arguments, e.g. tools listed by ae_tools that aren't loaded in this chat. Same validation, permissions, change report and activity log as calling the tool directly. Get the parameters with ae_tools {describe: [name]}.

NameTypeReqDescription
argsobject–The tool's arguments.
toolstringyesTool name, e.g. "ae_set_camera".

No output schema declared.

No examples provided.

ae_checkpoint ~126

Safety copies of the project: save (saves the open project, then keeps a timestamped copy), list the checkpoints of this project, or restore one (opens it as a NEW file next to the original; neither the original nor an earlier restore is ever overwritten). Use before large or risky changes.

NameTypeReqDescription
actionstringyes–
discardChangesboolean–Restore even if the open project has unsaved changes (they are discarded).
idstring–Checkpoint id to restore (from list).
labelstring–Short label for a new checkpoint.

No output schema declared.

No examples provided.

ae_create_comp ~142

Create a new composition and (by default) open it in the viewer.

NameTypeReqDescription
bgColor––Color as "#rrggbb" or [r,g,b] (0-1 or 0-255).
durationnumber–Seconds, default 10.
folder––Project item id (number) or exact name.
frameRatenumber–Default 30.
heightinteger–Default 1080.
namestringyes–
openboolean–Open in viewer (default true).
pixelAspectnumber–Default 1.
widthinteger–Default 1920.

No output schema declared.

No examples provided.

ae_find_properties ~175

Search every layer of a comp (or one layer) for properties whose name or match name contains the query, e.g. "opacity", "blur", "Source Text", "ADBE Fill Color". Returns ready-to-use paths. Filter to animated or expression properties.

NameTypeReqDescription
comp––Composition: item id (number) or exact name. Omit (or "active") for the active/open composition.
layer––Layer: 1-based index (number) or exact layer name.
limitinteger–Default 100.
onlyAnimatedboolean–Only properties with keyframes.
onlyExpressionsboolean–Only properties with an expression.
querystring–Case-insensitive text to match in the property name or match name. Omit to list all matches of the filters.

No output schema declared.

No examples provided.

ae_get_comp_info ~127

Composition settings plus a summary of its layers (index, id, name, type, timing, parent, switches). Large comps are paged: use layerOffset/layerLimit (see totalLayers / nextLayerOffset in the result).

NameTypeReqDescription
comp––Composition: item id (number) or exact name. Omit (or "active") for the active/open composition.
includeLayersboolean–Default true.
layerLimitinteger–Max layers to return (default 150).
layerOffsetinteger–Skip this many layers (default 0).

No output schema declared.

No examples provided.

ae_get_comp_map ~107

Overview of how a composition is built: the tree of nested precomps (with how many times each is used), parenting chains, track mattes, and which layers/comps each expression references. Use it to understand an unfamiliar project before editing.

NameTypeReqDescription
comp––Composition: item id (number) or exact name. Omit (or "active") for the active/open composition.
depthinteger–How deep to follow nested precomps (default 4).

No output schema declared.

No examples provided.

ae_get_effect_params ~145

List an effect's parameters (names, match names, value types, defaults, min/max) WITHOUT changing your layers, so you know the exact parameter names for ae_apply_effect / ae_set_effect_params. Pass comp+layer to inspect an effect already applied (current values).

NameTypeReqDescription
comp––Composition: item id (number) or exact name. Omit (or "active") for the active/open composition.
effect–yesMatch name (e.g. "ADBE Glo2") or display name ("Glow"); with comp+layer, also an index in the stack.
layer––Inspect the effect on this layer instead of a fresh default instance.

No output schema declared.

No examples provided.

ae_get_layer_bounds ~227

Exact on-screen bounding boxes of layers in composition pixels at a time, after all transforms, parenting, 3D and the active camera (via AE's own toComp()). Also reports whether each layer is visible at that time, fully/partly/not in frame, and inside action-safe (5% margin) and title-safe (10% margin). Use it to check alignment, spacing, overlaps and safe areas with numbers.

NameTypeReqDescription
comp––Composition: item id (number) or exact name. Omit (or "active") for the active/open composition.
frameinteger–Whole frame number from the comp's start (frame 0 = time 0), instead of time.
includeExtentsboolean–Include stroke widths, effects and other extents (default false = content box).
layersarray–Layers to measure (default: all layers, up to 300).
selectedOnlyboolean–Measure only the layers selected in After Effects.
timenumber–Seconds (default: the comp's current time).

No output schema declared.

No examples provided.

ae_get_layer_info ~89

Full info for one layer: switches, timing, parent, source, transform values, effects, masks count, markers, text, and every animated/expression property.

NameTypeReqDescription
comp––Composition: item id (number) or exact name. Omit (or "active") for the active/open composition.
layer–yesLayer: 1-based index (number) or exact layer name.

No output schema declared.

No examples provided.

ae_get_project_info ~35

Summary of the open project: file path, dirty state, item counts, bit depth, render queue size, active item.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

ae_get_properties ~148

Inspect the property tree of a layer (or a sub-group via path): names, match names, values, keyframe counts, expressions. Use this to discover property paths before setting values.

NameTypeReqDescription
comp––Composition: item id (number) or exact name. Omit (or "active") for the active/open composition.
depthinteger–Group depth to expand (default 2).
includeHiddenboolean–Include NO_VALUE properties.
keyframesboolean–Include keyframe details.
layer–yesLayer: 1-based index (number) or exact layer name.
path––Start at this group/property (default: the whole layer).

No output schema declared.

No examples provided.

ae_get_scripting_guide ~40

Returns the After Effects ExtendScript cheat sheet (ES3 rules, helpers, common match names). Read before writing complex ae_run_script code.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

ae_get_selection ~33

What the user has selected: project items, and in the active comp the selected layers and selected properties (with paths).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

ae_list_scripts ~70

List the user's own After Effects scripts: AE's Scripts folder (and ScriptUI Panels) plus folders configured as "scriptFolders" in ~/.surehand/ae/config.json, with each script's description from its header comment. Run one with ae_run_script_file.

NameTypeReqDescription
nameContainsstring––

No output schema declared.

No examples provided.

ae_prove_identical ~422

Prove a structural change (un-precompose, bake expressions, reorder effects, simplify a rig) left the render unchanged, or show which frames and areas differ. capture: render reference frames (default: active comp, 5 frames over the work area), returns a proof id. compare: render them again and compare pixel by pixel (verdict, per-frame max difference, changed pixels, ΔE, area, difference image). run: capture, ae_batch steps, compare, in one call. For un-precompose, prove the parent comp. Only the sampled video frames are compared (alpha included; not audio, the comp background color or times between samples; 32 bpc values above 1.0 are clamped).

NameTypeReqDescription
actionstringyes–
atomicboolean–run: as ae_batch (default true: a failed step undoes everything, and nothing is compared).
checkpointboolean–run: save a project checkpoint before the edits.
compsarray–capture/run: comps to prove (item id or exact name; default the active comp).
framesinteger–capture/run: number of frames spread over each comp's work area (default 5).
idstring–compare: the proof id from capture (default the latest proof).
maxSizeinteger–capture/run: longest rendered side in pixels (default 1920; larger comps are scaled down).
namestring–run: undo step name.
stepsarray–run: the edits, as ae_batch steps.
timesarray–capture/run: exact times in seconds (snapped to frames) instead of evenly spaced frames.
tolerancenumber–compare/run: allowed difference per channel, 0-255 (default 0.5: less than one 8-bit step, so only 16/32 bpc rounding is allowed; 0 = bit-identical).
verboseboolean–run: full result of each step.

No output schema declared.

No examples provided.

ae_render_contact_sheet ~224

Render several frames of a composition into ONE image (a grid, each cell labelled with its time and frame number), so you can judge motion, timing and easing, not just a single frame. Defaults to 9 frames spread over the work area.

NameTypeReqDescription
columnsinteger–Grid columns (default: square-ish).
comp––Composition: item id (number) or exact name. Omit (or "active") for the active/open composition.
endnumber–End time in seconds (default: work area end).
framesinteger–Number of evenly spaced frames (default 9).
outputPathstring–Optional absolute path to also save the PNG to.
overwriteboolean–Replace an existing file at outputPath (default false: refuse).
startnumber–Start time in seconds (default: work area start).
timesarray–Exact times (seconds) instead of evenly spaced frames.
widthinteger–Width of the returned image in pixels (default 1600).

No output schema declared.

No examples provided.

ae_render_frame ~280

Render a frame of a composition and return it as an image, so you can SEE the result. Inspection options: zoom into a region, render only some layers, show transparency on a checkerboard or a color, and compare against another time or comp as a difference image (black = identical). Large frames are downscaled to maxSize.

NameTypeReqDescription
backgroundstring–"checkerboard" to show transparency, or a color like "#808080" behind the comp.
comp––Composition: item id (number) or exact name. Omit (or "active") for the active/open composition.
compareWithobject–Difference image against another time and/or comp (black where identical).
layersarray–Render only these layers (others are hidden for the render and restored).
maxSizeinteger–Longest side in pixels of the returned image (default 1280).
outputPathstring–Optional absolute path to also save the PNG to.
overwriteboolean–Replace an existing file at outputPath (default false: refuse).
regionarray–Zoom into [x, y, width, height] in comp pixels (scaled up to maxSize, at most 8x).
timenumber–Time in seconds (default: the comp's current time).

No output schema declared.

No examples provided.

ae_run_script ~511

Execute JavaScript inside After Effects (its ExtendScript scripting API) and return the result. This is the most powerful tool: anything in the After Effects scripting API is available (app, app.project, CompItem, layers, properties, render queue, File/Folder, system.callSystem...). - The code runs as the body of a function: use `return value` to send data back. Returned AE objects (comps, layers, properties, items) are summarized to JSON automatically. - `args` (the JSON you pass in `args`) and `log(...)` are available; log output is returned too. - Modern JavaScript is fine: let/const, arrow functions, template strings, destructuring, spread, classes, ?. and ??, for...of, plus map/filter/forEach/find/includes, Object.keys/assign and JSON (converted for AE automatically). Not available: async/await, Promise, Map/Set, generators. - The `aemcp` helper library is available: aemcp.findComp(idOrName), aemcp.findLayer(comp, indexOrName), aemcp.findItem(ref), aemcp.resolveProp(layer, 'Transform/Position'), aemcp.color('#ff0000'), aemcp.compInfo(comp, true), aemcp.layerInfo(layer, true), aemcp.propInfo(prop, {depth:2}), aemcp.projectInfo(). - Collections are 1-based: app.project.item(1), comp.layer(1), prop.property(1). - The whole script is one undo step. Errors come back with the failing line and code around it. ae_get_scripting_guide has an API cheat sheet.

NameTypeReqDescription
argsobject–JSON object exposed to the script as `args`.
codestringyesJavaScript source; a function body, use `return` to return data.
depthinteger–How deep to serialize the returned value (default 4).
reportboolean–List what the script changed in the project (default true). Set false for read-only queries on huge projects.
timeoutSecondsnumber–Max seconds to wait for the result (default 120).
transpileboolean–Convert modern JS for ExtendScript (default true). Set false to send the code exactly as written.
undoGroupstring–Undo step name (default "Surehand MCP Script"). Pass "" to skip the undo group.

No output schema declared.

No examples provided.

ae_run_script_file ~94

Run an existing .jsx/.jsxbin script file from disk inside After Effects (like File > Scripts > Run Script File). `args` is exposed to the script as the global AEMCP_ARGS. Returns the value of the script's last expression.

NameTypeReqDescription
argsobject––
pathstringyesAbsolute path to the .jsx / .jsxbin file.
timeoutSecondsnumber––

No output schema declared.

No examples provided.

ae_set_expression ~154

Set (or clear with an empty string) an expression on a property. Returns any expression error AE reports.

NameTypeReqDescription
comp––Composition: item id (number) or exact name. Omit (or "active") for the active/open composition.
enabledboolean––
expressionstringyes–
layer–yesLayer: 1-based index (number) or exact layer name.
path–yesProperty path from the layer, "/"-separated display names or match names, e.g. "Transform/Position", "Effects/Gaussian Blur/Blurriness", "ADBE Transform Group/ADBE Opacity", "Contents/Rectangle 1/Fil…

No output schema declared.

No examples provided.

ae_set_keyframes ~236

Create keyframes on a property in one call, with optional interpolation (linear/bezier/hold) and temporal easing. Place keys by time (seconds) or frame (whole frames). Example: path "Transform/Position", keyframes [{time:0,value:[0,540]},{frame:24,value:[960,540],easeIn:80}].

NameTypeReqDescription
clearExistingboolean–Remove existing keyframes first.
comp––Composition: item id (number) or exact name. Omit (or "active") for the active/open composition.
easyEaseboolean–Apply easy ease (33%) to all new keyframes that don't specify easing.
keyframesarrayyes–
layer–yesLayer: 1-based index (number) or exact layer name.
path–yesProperty path from the layer, "/"-separated display names or match names, e.g. "Transform/Position", "Effects/Gaussian Blur/Blurriness", "ADBE Transform Group/ADBE Opacity", "Contents/Rectangle 1/Fil…

No output schema declared.

No examples provided.

ae_set_property ~245

Set the value of any property (transform, effect parameter, shape attribute, text...). If `time` is given (or the property already has keyframes) a keyframe is set at that time. Examples: path "Transform/Opacity" value 50; "Transform/Position" [960,540]; "Transform/Scale" [50,50]; "Effects/Fill/Color" "#ff0000".

NameTypeReqDescription
comp––Composition: item id (number) or exact name. Omit (or "active") for the active/open composition.
layer–yesLayer: 1-based index (number) or exact layer name.
path–yesProperty path from the layer, "/"-separated display names or match names, e.g. "Transform/Position", "Effects/Gaussian Blur/Blurriness", "ADBE Transform Group/ADBE Opacity", "Contents/Rectangle 1/Fil…
timenumber––
value–yesValue: number, array ([x,y] / [x,y,z] / color), string for text, or object for text style / shape path.

No output schema declared.

No examples provided.

ae_status ~118

Check the connection to After Effects: app version, OS, open project, active item, permission mode, and whether AE is busy. Lists every running After Effects instance when several are open; pass `instance` (e.g. "2025", "2026" or a port) to choose which one this session controls. Call this first if unsure AE is reachable.

NameTypeReqDescription
instancestring–Switch to another running After Effects: "2026", "26.5", or a bridge port. Omit to keep the current one.

No output schema declared.

No examples provided.

ae_tools ~124

Discover every After Effects tool, including ones not loaded in this chat: list them by category (one line each), or describe chosen tools (full parameters). Then run any of them with ae_call. Categories: status & app, scripts, project, comps, layers, properties & keyframes, effects, shapes & masks, text, 3D, audio, footage, files & export, checks, see & measure, essential graphics, render.

NameTypeReqDescription
categorystring–Only list this category.
describearray–Tool names to get full parameter details for.

No output schema declared.

No examples provided.

ae_undo ~30

Undo the last action(s) in After Effects (Edit > Undo).

NameTypeReqDescription
stepsinteger––

No output schema declared.

No examples provided.

Install

How do I install the Surehand MCP for Adobe After Effects server?

Surehand MCP for Adobe After Effects ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, ee7482e810f3c8dcda25a1862315f1575d652842c9ce999618cb7bfc6153bd71; the commands to do that are on this page. If it does not match, do not open it.

mcpb · Surehand-MCP.mcpb

Download bundle

Check the download matches the SHA-256 the MCP registry declares before you open it. If it does not match, do not open the file.

SHA-256

ee7482e810f3c8dcda25a1862315f1575d652842c9ce999618cb7bfc6153bd71

macOS / Linux

echo "ee7482e810f3c8dcda25a1862315f1575d652842c9ce999618cb7bfc6153bd71  Surehand-MCP.mcpb" | shasum -a 256 -c

Windows (PowerShell)

(Get-FileHash -Algorithm SHA256 .\Surehand-MCP.mcpb).Hash -eq "ee7482e810f3c8dcda25a1862315f1575d652842c9ce999618cb7bfc6153bd71"

Run it in the folder you saved the bundle to, then open the file with an MCPB-capable host such as Claude Desktop.

Common questions

What is the Surehand MCP for Adobe After Effects server?

Surehand MCP for Adobe After Effects is listed in the public MCP registry as io.github.ConformLabs/surehand-mcp. Your AI works in Adobe After Effects and proves what it did: change reports, pixel proofs, QC. This page covers its MCPB bundle (https://github.com/ConformLabs/surehand-mcp/releases/download/v1.4.1/Surehand-MCP.mcpb).

Is the Surehand MCP for Adobe After Effects server safe to use?

Surehand MCP for Adobe After Effects scores 45 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Surehand MCP for Adobe After Effects server expose?

Surehand MCP for Adobe After Effects exposes 29 tools: ae_run_script, ae_run_script_file, ae_status, ae_render_frame, ae_render_contact_sheet, and 24 more. Their descriptions and schemas cost roughly 5,079 tokens of context every time the server is loaded.

What licence is the Surehand MCP for Adobe After Effects server under?

Surehand MCP for Adobe After Effects declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

What did VerifyMCP test on the Surehand MCP for Adobe After Effects server?

VerifyMCP ran 13 checks on Surehand MCP for Adobe After Effects, covering Source repository, Provenance, License, Maintenance and 9 more. 4 items could not be completed, a gap on our side rather than a finding about Surehand MCP for Adobe After Effects: Malware scan, Known CVEs, Install scripts and Dependency health. One category scores 0 for that reason, because we only credit what we can confirm. Endpoint Security and Transport & Reachability do not apply to an MCPB bundle, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.