Skip to content

Community bundle: render/save-frame/introspection (#32) + remove-keyframe (#28) + renderer tools (#25)#34

Open
juansilvadesign wants to merge 6 commits into
Dakkshin:mainfrom
juansilvadesign:feat/community-tools-bundle
Open

Community bundle: render/save-frame/introspection (#32) + remove-keyframe (#28) + renderer tools (#25)#34
juansilvadesign wants to merge 6 commits into
Dakkshin:mainfrom
juansilvadesign:feat/community-tools-bundle

Conversation

@juansilvadesign

Copy link
Copy Markdown

Summary

This PR aggregates and reconciles several community contributions into one coherent "tools" set, so they can be reviewed and merged together instead of scattered across separate PRs. It is purely additive.

Included work (authorship preserved)

All original commit authors are preserved; the glue commit only adds the hand-ported tools, their README rows, and conflict-free wiring.

Rationale

  • Bundle related tools into a single, coherent API surface.
  • Easier to review and merge one "tools" set than many overlapping PRs.

Testing

npm run build (esbuild) passes; the panel .jsx passes a syntax parse. Every new tool registration and bridge function was verified present in the build output.

Notes

These new tools use the existing queue-then-get-results pattern. The reliability companion PR #33 (fix/bridge-reliability) makes that correlation robust and fixes the ES3 toISOString bug — which otherwise affects result-stamping for these tools too — so merging that one as well is recommended.

🤖 Generated with Claude Code

morioka185 and others added 6 commits June 4, 2026 16:13
… tools

Add 18 new MCP tools (and their bridge functions) that fill common gaps for
motion-graphics work, each wired through the file-based bridge and the
run-script allowlist:

- Layers/rigging: move-layer, set-parent, create-null, set-3d-layer
- Compositing: set-blend-mode, set-track-matte
- Effects: remove-effect, reorder-effect
- 3D: create-light
- Animation quality: set-keyframe-ease, apply-trim-paths (with draw-on),
  add-text-animator (per-character via range selector)
- Project/IO: import-footage, precompose, save-project
- Output/inspection: render-video (render queue), save-frame (PNG),
  get-layer-details

Robustness:
- mcpFindComp no longer silently falls back to the active comp when a
  non-empty compName is supplied but unmatched (prevents acting on the
  wrong composition).
- create-light / render-video surface non-fatal issues via a warnings[]
  field instead of swallowing them.
- set-track-matte errors if a requested matte layer can't be resolved and
  reports when the legacy trackMatteType path is used.
- save-frame / render-video verify the output file was actually written.
- precompose guards the single-layer-only constraint of moveAllAttributes.

Docs: document the new tools in the README.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a `delete-composition` MCP tool (and `deleteComposition` bridge function)
to remove a composition from the project by name or 1-based project item index.
Verified in After Effects 2026 (v26.2.0).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…r-video

ExtendScript caches File.exists on the File object created before the file
existed, so the post-write existence check produced false negatives even
though saveFrameToPng / renderQueue.render() wrote the file successfully.
Re-instantiate the File via new File(path) before checking .exists.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The per-character reveal animated the Range Selector Offset from -100% to 0%,
which (with the animator's Opacity=0) left every character selected/hidden at
the end. Animate the Range Selector Start from 0% to 100% instead, so the
hidden selection retreats left-to-right and the text ends fully visible.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…er/effect/text & introspection tools

Aggregates Dakkshin#32 by @morioka185.
All 4 original commits are preserved with their authorship.
…akkshin#25)

Adds three community-contributed tools on top of the Dakkshin#32 bundle, ported by hand
because their source PRs each bundle many unrelated changes:

- remove-keyframe: remove keyframe(s) from a property by time, by 1-based key
  index, or all of them (from PR Dakkshin#28 by @dellis23).
- get-renderer-info / set-renderer: report and set a composition's 3D renderer,
  Classic 3D ("ADBE Ernst") vs Cinema 4D ("ADBE Advanced 3d") (from PR Dakkshin#25 by
  @Boke-kun / elias).

Co-authored-by: Daniel Ellis <1346302+dellis23@users.noreply.github.com>
Co-authored-by: elias <elias@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants