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 MCPQuatre é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 |
|---|---|
| string | Chaîne échappée en JSON : "hello" → "hello" |
| number | Littéral numérique : 24 → 24 |
| boolean | true / false |
| array | Littéral JSON : [1,2,3] → [1,2,3] |
| object | Littéral JSON : {"a":1} → {"a":1} |
| raw | Insé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_DIRdans votre configuration MCP. - · Pour réinitialiser : supprimez
~/.synthetic-ae-mcp/.