After Effects MCP · Avançado
Learning loop — o MCP cresce com o seu fluxo de trabalho
O AE MCP vem com mais de 220 ferramentas. Conforme você usa, ele registra quais trechos de JSX você executa de novo com o mesmo formato — e você (ou o Claude) pode promover esses padrões a novas ferramentas MCP, com esquema e parâmetros próprios, sem recompilar e sem reiniciar o After Effects. É um sistema exclusivo da Synthetic que nenhum outro MCP para Adobe tem.
Por que isso importa
- · Menos tokens. O Claude chama uma ferramenta com 2 argumentos em vez de gerar 30 linhas de JSX.
- · Menos erros. Esquema validado, não JSX gerado do zero a cada vez.
- · Aprende com o uso real. Os padrões promovidos são os que você realmente repete.
- · 100% reversível. É um arquivo JSON no seu PC. Apague uma linha e a ferramenta desaparece.
Como funciona
run_jsx_json ─▶ journal.jsonl ─▶ analyze.mjs ─▶ (tú eliges) ─▶ promote.mjs ─▶ wrappers.json
JSX libre cada llamada detecta shapes template tool nuevo
repetidos + JSON vivo al reconectar
params candidatos el cliente MCPQuatro etapas, totalmente locais:
1. Registro automático
Toda vez que um cliente MCP chama uma ferramenta, o servidor acrescenta uma linha a ~/.synthetic-ae-mcp/journal.jsonl. As chamadas a run_jsx / run_jsx_json guardam o código completo (são as candidatas); todas as outras guardam só o nome da ferramenta + as chaves dos argumentos (sem os valores). O registro não é crítico: se a gravação falhar, a chamada da ferramenta é concluída normalmente.
2. Análise: encontre padrões recorrentes
# desde el repo del MCP (clonado o vía npx) node scripts/analyze.mjs # reporte human-readable node scripts/analyze.mjs --json # output JSON para scripting node scripts/analyze.mjs --min 3 # subir el umbral (default 2)
O analisador normaliza o JSX (remove comentários, substitui strings e números por tokens), agrupa por assinatura e, para cada formato que se repete ≥2 vezes, informa: quantas vezes foi executado, quais posições de literais variam (esses são os seus parâmetros) e uma amostra do código.
3. Promoção: crie a nova ferramenta
Defina uma especificação JSON com nome + template + tipos de parâmetro. Exemplo: uma ferramenta que define frameRate=X em todas as composições cujo nome contém um trecho de texto:
{
"name": "ae_set_framerate_batch",
"description": "Define o frameRate de todas as composições cujo nome contém <pattern>.",
"code": "var n = 0; for (var i = 1; i <= app.project.numItems; i++) { var it = app.project.item(i); if (it instanceof CompItem && it.name.indexOf({{pattern}}) >= 0) { it.frameRate = {{fps}}; n++; } } __write({ ok: true, updated: n });",
"params": [
{ "name": "fps", "type": "number", "required": true, "description": "Taxa de quadros desejada" },
{ "name": "pattern", "type": "string", "required": false, "default": "", "description": "Trecho de texto a buscar no nome da composição (vazio = todas)" }
]
}node scripts/promote.mjs spec.json # OK promoted 'ae_set_framerate_batch' (2 params) -> ~/.synthetic-ae-mcp/wrappers.json # Reconnect the MCP (or restart the client) to see the new tool.
4. No ar: a ferramenta aparece no seu cliente
O servidor lê wrappers.json do zero a cada tools/list. Reconecte o Claude Desktop / Cursor / Codex e ae_set_framerate_batch(fps, pattern) fica disponível como qualquer ferramenta nativa, com o esquema MCP completo. Quando o Claude a chama, o servidor preenche o template e a despacha via run_jsx_json — sem mudar a arquitetura, sem recompilar.
Tipos de parâmetro
| Tipo | Como é inserido no JSX |
|---|---|
| string | String com escape JSON: "hello" → "hello" |
| number | Literal numérico: 24 → 24 |
| boolean | true / false |
| array | Literal JSON: [1,2,3] → [1,2,3] |
| object | Literal JSON: {"a":1} → {"a":1} |
| raw | Inserido literalmente (avançado) |
Privacidade e segurança
- · Tudo é local:
~/.synthetic-ae-mcp/é uma pasta no seu PC. Nada é enviado para lugar nenhum. - · O registro grava as chamadas a run_jsx[_json] com o código completo. As outras ferramentas registram só o nome + as chaves dos argumentos (sem valores).
- · Para mudar a pasta: defina
AE_MCP_DATA_DIRna sua configuração MCP. - · Para zerar: apague
~/.synthetic-ae-mcp/.