MCP server that gives AI assistants deep programmatic control of Adobe After Effects: arbitrary ExtendScript execution, background rendering, deep project/layer inspection, and native Arabic/RTL and multilingual support.
AfterEffectsServer has 9 tools with basic descriptions and schemas, but significant gaps in parameter documentation, error handling, and LLM-friendly design. Tool names are action-oriented (run-script, execute-script, inspect-comp, see-frame, analyze-audio-waveform, animate-to-audio, animate-from-data, render-comp, find-presets), which is good. However, most parameter descriptions are minimal (10-30 chars), and output schemas are not documented. No error recovery guidance, no permission gates for destructive operations (execute-script, render-comp, animate-* tools), and no input validation hints. The server exposes arbitrary ExtendScript execution without constraints, creating security risks. Parameter naming is inconsistent: some use full names (compName, audioPath, propertyPath), others are abbreviated (code). No enum constraints on mode parameters (animate-to-audio accepts 'waveform or peaks' as free text). Descriptions lack WHEN/WHY context for tool selection.
Analyze audio file waveform and detect peaks
Create keyframes from numeric data series
Create keyframes from audio analysis
Execute arbitrary ExtendScript code in After Effects
Search for After Effects preset files
Get detailed information about a composition
Render a composition to file
Run a read-only script in After Effects
execute-script tool accepts arbitrary ExtendScript code with no validation, sandboxing, or permission gates. Agents can execute destructive operations (delete layers, overwrite projects, corrupt files) without confirmation or audit trail.
Parameter descriptions are too brief (10-30 chars) and lack WHEN/WHY context. E.g., 'Name of the composition to inspect' does not explain when to call inspect-comp vs see-frame. LLMs cannot disambiguate similar tools.
Output schemas are not documented. Tools return structured data (FrameFile, WavAnalysis, Keyframe arrays) but LLMs cannot see the field names, types, or required fields. Agents must guess what data is available.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Render and view composition frames as images
animate-to-audio 'mode' parameter accepts free-form string ('waveform or peaks') instead of enum constraint. LLMs may pass invalid values like 'peak', 'waveforms', or 'audio-reactive', causing silent failures.
No error recovery guidance. Tools fail silently or return generic errors (e.g., 'Timed out' from bridge communication). LLMs have no actionable next steps, should they retry, check After Effects, or call a different tool?