ae-mcp
ae-mcp
Adobe After Effects용 고급 MCP 서버입니다. 어시스턴트에게 편집자용 도구 키트를 제공합니다: 프로젝트 읽기, 레이어 생성 및 리깅, 실제 속도 곡선으로 키프레임 설정, 텍스트 애니메이션, 벡터 셰이프 구축, 효과 및 표현식 적용, 네이티브 메뉴 구동 — 그리고 대화에 바로 반환되는 스냅샷을 통해 결과를 확인할 수 있습니다.
아키텍처
Assistant (MCP)
│ stdio
┌─────▼──────────────────────────────┐
│ ae-mcp server (Node/TypeScript) │ easing, SVG, presets, schemas
└─────┬──────────────────────────────┘
│ 1. HTTP 127.0.0.1:9782 (CEP transport, primary)
│ 2. watched JSON files (ScriptUI transport, fallback)
┌─────▼──────────────────────────────┐
│ bridge inside After Effects │ CEP panel or ScriptUI panel
└─────┬──────────────────────────────┘
│ $.evalFile + AEMCP.runFile()
┌─────▼──────────────────────────────┐
│ ExtendScript kernel (AEMCP) │ ~4,000 lines, 60+ commands
└────────────────────────────────────┘세 가지 원칙:
무거운 작업은 Node에서 처리합니다. SVG 변환, 이징 계산, 애니메이션 프리셋 — 모두 서버 측에서 준비되고, ExtendScript 커널은 실행만 합니다.
교환은 파일을 통해 이루어집니다. 요청과 응답은 디스크의 JSON으로 전달되어
evalScript의 이스케이프 및 크기 제한을 피합니다. HTTP는 실행을 트리거할 뿐입니다.모든 것은 원자적입니다. 각 요청(50개 작업 배치 포함)은 단일 실행 취소 그룹 안에서 실행됩니다.
Ctrl+Z한 번으로 모두 되돌릴 수 있습니다.
브리지 인증 토큰
CEP 패널의 HTTP 서버는 127.0.0.1에서 수신 대기하며 After Effects에서 명령을 트리거합니다
(ae_eval 포함, 임의의 ExtendScript 실행). AE가 실행되는 동안 브라우저에 열린 웹 페이지가
일반 fetch()로 브리지를 구동하지 못하도록, 패널은 첫 실행 시 무작위 토큰을 생성하여
Documents/ae-mcp/bridge/token.txt에 저장하고 bridge.json(token 필드)에 다시 게시합니다.
모든 POST /run 또는 POST /reload는 X-AE-MCP-Token 헤더를 포함해야 하며, 없으면 서버는
401을 반환합니다. MCP 클라이언트(src/bridge/client.ts)는 bridge.json에서 토큰을 읽어
자동으로 전송합니다 — 수동 설정이 필요 없습니다. 토큰은 token.txt가 존재하는 한 유지되며,
삭제하면 다음 패널 실행 시 재생성됩니다.
대체 파일 전송(req//res/)에는 토큰이 없습니다. 사용자 Documents 폴더의 OS 권한에
의존하며, 다른 계정의 접근을 이미 차단합니다.
Related MCP server: After Effects MCP Server
설치
npm install
npm run build
npm run install-bridge # installs the CEP extension + ScriptUI panel + kernel그런 다음 After Effects에서:
CEP 전송(권장) — After Effects를 다시 시작합니다. 브리지는 자체적으로 시작되며 창이 없습니다.
Window > Extensions > AE MCP Bridge에서 상태, 포트, 로그를 확인할 수 있습니다.ScriptUI 전송(재시작 불필요) —
File > Scripts > Run Script File…을 선택한 다음Documents/ae-mcp/AE MCP Bridge.jsx를 선택합니다. 패널이 즉시 폴링을 시작합니다.
MCP 클라이언트에 서버를 등록합니다:
claude mcp add ae-mcp -- node "/path/to/ae-mcp/build/index.js"
npm run install-bridge는 감지된 After Effects 설치의Scripts/ScriptUI Panels에도 패널을 복사하여 도킹 가능하게 만듭니다. 해당 복사본은Program Files아래에 있으며 관리자 권한이 필요합니다. 실패해도 다른 것에는 영향을 미치지 않습니다.
도구
도구 | 역할 |
| 브리지 상태, AE 버전, 프로젝트, 컴포지션 |
| 문서: 속성 경로, matchName, 이징, 셰이프, 애니메이터 |
| 인벤토리, 가져오기(이미지, 비디오, PSD/AI를 컴포지션으로), 폴더, 저장 |
| 생성, 읽기, 조정, 복제, 프리컴포즈, 마커 |
| 모든 레이어 유형, 모든 속성, 심층 읽기 |
| 경로로 모든 속성 읽기/쓰기, 표현식 |
| 이름 있는 곡선, 상대 값, 홀드, 오프셋이 있는 키프레임 |
| 텍스트 내용 및 서식, 텍스트 애니메이터, 글꼴 |
| 네이티브 벡터 트리, 베지어 경로, SVG 변환 |
| 효과 찾기, 적용, 조정, 애니메이션 |
| 사각형/타원/베지어 마스크, 모드, 페더 |
| 기성 애니메이션 프리셋, 스태거 시퀀싱 |
| 컨트롤, 표현식 링크, 정렬, 부모 설정, Essential Graphics |
| 대화에 반환되는 스냅샷, 렌더 큐 |
| 네이티브 메뉴 명령, 재생 헤드, 선택 |
| 모든 커널 명령에 대한 원시 액세스, 참조로 배치 |
| 임의의 ExtendScript(최후의 수단) |
차별화 포인트
실제 속도 곡선. ease: "expo.out"은 단순히 Easy Ease를 적용하는 것이 아닙니다 —
베지어 곡선이 각 차원의 영향과 속도로 변환되며, 세그먼트의 평균 속도에서 계산됩니다.
그래프 편집기를 수동으로 조정하는 것과 정확히 같습니다.
상대 값. slideIn은 mode: "offset"을 사용합니다. 애니메이션이 레이어의 기존 위치를
덮어쓰는 대신 그 위에 구축됩니다. 스케일에도 mode: "multiply"로 동일한 개념이 적용됩니다.
SVG가 실제 셰이프가 됩니다. ae_shape action=svg는 path, rect, circle,
ellipse, line, polyline, polygon, 그룹 및 해당 변환을 네이티브 편집 가능한 셰이프
레이어로 변환하며, 채우기, 선, 점선, 호는 베지어로 근사합니다.
시각적 피드백 루프. ae_render action=snapshot은 컴포지션을 렌더링하고 이미지를
직접 반환합니다. 어시스턴트는 출력을 참조와 비교하여 수정하므로, 맹목적으로 작업하지
않습니다.
참조가 있는 원자적 배치. 전체 장면이 한 번의 왕복으로 구축되며, 각 단계는
{{0.index}} 또는 {{prev.id}}를 통해 이전 단계의 결과를 재사용할 수 있습니다.
개발
npm run build # kernel + TypeScript
npm run build:kernel # kernel only (also checks its syntax)
node scripts/ae.mjs status # bridge status
node scripts/ae.mjs layer.list '{"comp":"My Comp"}'
node scripts/selftest.mjs # full validation against AE
node scripts/selftest.mjs --keep --only=shape # subset, keeps the comp커널은 host/kernel/ 아래의 모듈로 분할되며 scripts/build-kernel.mjs에 의해
host/aemcp-kernel.jsx로 연결됩니다. ES3 호환을 유지해야 합니다: let/const 금지,
Array.prototype.map 금지, 네이티브 JSON 금지(프렐류드에 폴리필 제공).
폴더 | 내용 |
| MCP 서버: 도구, 전송, 이징, SVG, 프리셋 |
| ExtendScript 커널 소스 |
| CEP 확장(HTTP 패널) |
| ScriptUI 패널(대체 브리지) |
| 빌드, 설치, 진단 CLI, 테스트 |
문제 해결
증상 | 가능한 원인 |
| 패널이 열려 있지 않거나 AE가 종료되었습니다. |
CEP 패널이 메뉴에 없음 |
|
| 커널 변경 후 |
파일 쓰기가 거부됨 | 환경설정 > 스크립트 및 표현식 > 스크립트가 파일을 쓰도록 허용을 확인하세요. |
효과 이름을 찾을 수 없음 | AE UI가 영어가 아닙니다: |
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables AI assistants to control Adobe After Effects for composition, layer, effect, preset, marker, and audio automation through a bridge panel.3066514MIT
- AlicenseCqualityDmaintenanceEnables AI assistants to control Adobe After Effects through the MCP protocol, including composition creation, layer management, and animation.13665MIT
- -licenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to control Adobe After Effects through a standardized MCP protocol, providing tools for composition creation, layer management, and animation.
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to control Adobe After Effects for project inspection, composition creation, and layer manipulation via a hardened bridge panel.
Related MCP Connectors
Build and run visual creative-production workflows from your AI agent.
Create and manage cinematic AI video renders through the Future Video Studio Agent API.
Make videos and docs with your AI agent — describe what you need, every output stays editable.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/maximejacquart/ae-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server