SyntheticSynthetic/Docs
ProduitsNouveautés
Tableau de bord →

After Effects MCP · Avancé

Learning loop — le MCP évolue avec votre workflow

AE MCP est livré avec plus de 220 outils. À mesure que vous l'utilisez, il consigne les extraits JSX que vous relancez avec la même structure — et vous (ou Claude) pouvez promouvoir ces motifs en nouveaux outils MCP, avec de vrais schémas et paramètres, sans recompilation ni redémarrage d'After Effects. C'est un système exclusif à Synthetic, qu'aucun autre MCP Adobe ne propose.

Pourquoi c'est important

  • · Moins de tokens. Claude appelle un outil avec 2 arguments au lieu de générer 30 lignes de JSX.
  • · Moins d'erreurs. Un schéma validé, et non du JSX généré de zéro à chaque fois.
  • · Apprend de l'usage réel. Les motifs promus sont ceux que vous répétez réellement.
  • · 100 % réversible. C'est un fichier JSON sur votre PC. Supprimez une ligne et l'outil disparaît.

Fonctionnement

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

Quatre étapes, 100 % en local :

1. Journalisation automatique

Chaque fois qu'un client MCP appelle un outil, le serveur ajoute une ligne à ~/.synthetic-ae-mcp/journal.jsonl. Les appels à run_jsx / run_jsx_json enregistrent le code complet (ce sont les candidats) ; tous les autres n'enregistrent que le nom de l'outil + les clés des arguments (sans les données). La journalisation se fait au mieux : si l'écriture échoue, l'appel d'outil se termine quand même normalement.

2. Analyser : repérer les motifs récurrents

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

L'analyseur normalise le JSX (supprime les commentaires, remplace les chaînes et les nombres par des jetons), regroupe par signature et, pour chaque structure qui revient ≥2 fois, indique : combien de fois elle a été exécutée, quelles positions littérales varient (ce seront vos paramètres) et un exemple de code.

3. Promouvoir : créer le nouvel outil

Définissez une spécification JSON avec name + template + les types des paramètres. Exemple : un outil qui applique frameRate=X à toutes les compositions dont le nom contient une sous-chaîne :

{
  "name": "ae_set_framerate_batch",
  "description": "Définit frameRate sur toutes les compositions dont le nom contient <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": "Fréquence d'images cible" },
    { "name": "pattern", "type": "string", "required": false, "default": "", "description": "Sous-chaîne à rechercher dans le nom de la composition (vide = toutes)" }
  ]
}
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. Disponible : l'outil apparaît dans votre client

Le serveur relit wrappers.json à chaque tools/list. Reconnectez Claude Desktop / Cursor / Codex et ae_set_framerate_batch(fps, pattern) est disponible comme n'importe quel outil natif, avec son schéma MCP complet. Quand Claude l'appelle, le serveur remplit le modèle et le transmet via run_jsx_json — sans changement d'architecture ni recompilation.

Types de paramètres

TypeÉcrit dans le JSX sous la forme
stringChaîne échappée en JSON : "hello" → "hello"
numberLittéral numérique : 24 → 24
booleantrue / false
arrayLittéral JSON : [1,2,3] → [1,2,3]
objectLittéral JSON : {"a":1} → {"a":1}
rawInséré tel quel (avancé)

Confidentialité et sécurité

  • · Tout reste en local : ~/.synthetic-ae-mcp/ est un dossier sur votre PC. Rien n'est envoyé nulle part.
  • · Le journal enregistre les appels run_jsx[_json] avec le code complet. Les autres outils n'enregistrent que le nom + les clés des arguments (sans les valeurs).
  • · Pour changer de dossier : définissez AE_MCP_DATA_DIR dans votre configuration MCP.
  • · Pour réinitialiser : supprimez ~/.synthetic-ae-mcp/.
Disponible depuis AE MCP v2.2.0 — npx se met à jour automatiquement, vous n'avez rien à faire. Si vous êtes déjà client, la fonction sera disponible au prochain démarrage de Claude Desktop.