SyntheticSynthetic/Docs
ProductosNovedades
Panel →

After Effects MCP · Avanzado

Learning loop — el MCP crece con tu workflow

AE MCP arranca con 220+ tools. A medida que lo usas, va registrando las llamadas JSX que más repites — y tú (o Claude) puedes promover esos patrones a tools nuevas, con esquema MCP y parámetros, sin rebuild ni reiniciar After Effects. Es un sistema único de Synthetic, no lo tiene ningún otro MCP de Adobe.

Por qué importa

  • · Menos tokens. Claude llama un tool con 2 args en lugar de generar 30 líneas de JSX.
  • · Menos errores. Tool con schema validado, no JSX generado de cero cada vez.
  • · Aprende del uso real. Los patrones que se promueven son los que tú realmente repites.
  • · 100% reversible. Es un archivo JSON en tu PC. Borra una línea y el tool desaparece.

Cómo 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 MCP

Cuatro pasos, totalmente local:

1. Journal automático

Cada vez que un cliente MCP llama una tool, el server agrega una línea a ~/.synthetic-ae-mcp/journal.jsonl. Los calls a run_jsx / run_jsx_json guardan el código completo (son los candidatos); el resto solo guarda nombre + keys de args (sin payloads). El journaling es best-effort: si falla la escritura, el tool call sigue normal.

2. Analyze: detecta patrones repetidos

# 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)

El analyzer normaliza el JSX (saca comentarios, reemplaza strings y números con tokens), agrupa por signature, y para cada shape que aparece ≥2 veces te muestra: cuántas veces se ejecutó, qué posiciones de literales varían (esos son tus params), y un sample del código.

3. Promote: crear el tool nuevo

Define un spec JSON con name + template + tipos de params. Ejemplo: quieres un tool que aplique frameRate=X a todos los comps que contengan un texto:

{
  "name": "ae_set_framerate_batch",
  "description": "Cambia el frameRate de todos los comps que contienen <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": "Frame rate de destino" },
    { "name": "pattern", "type": "string", "required": false, "default": "", "description": "Substring a buscar en el nombre del comp (vacío = todos)" }
  ]
}
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. Live: el tool aparece en tu cliente

El server lee wrappers.json fresco en cada tools/list. Reconectas Claude Desktop / Cursor / Codex y ya tienes ae_set_framerate_batch(fps, pattern) disponible como cualquier tool nativa, con su schema MCP completo. Internamente, cuando Claude lo llama, el server llena el template y lo despacha vía run_jsx_json — sin cambiar la arquitectura ni recompilar.

Tipos de parámetro

TipoCómo se renderiza en JSX
stringString JSON-escapeado: "hola" → "hola"
numberLiteral numérico: 24 → 24
booleantrue / false
arrayJSON literal: [1,2,3] → [1,2,3]
objectJSON literal: {"a":1} → {"a":1}
rawInserción verbatim (avanzado)

Privacidad y seguridad

  • · Todo es local: ~/.synthetic-ae-mcp/ es una carpeta en tu PC. Nada se sube a ningún server.
  • · El journal solo registra calls de run_jsx[_json] con el código completo. El resto de los tools graban nombre + keys (sin valores).
  • · Si quieres cambiar la carpeta: define AE_MCP_DATA_DIR en tu config MCP.
  • · Para resetear: borra ~/.synthetic-ae-mcp/.
Disponible desde AE MCP v2.2.0 — npx se actualiza solo, no tienes que hacer nada para recibirlo. Si ya eres cliente, la próxima vez que arranque Claude Desktop el feature está disponible.