vouh-chronos-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vouh-chronos-mcp capture the hero animation on http://localhost:3000 and measure its easing"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
VOUH Chronos MCP (vouh-chronos-mcp)
Serveur Model Context Protocol (MCP) permettant à un agent IA (Antigravity, Claude Code, etc.) de voir, mesurer et décrire avec précision le mouvement d'une interface web : enregistrement vidéo Chromium (.webm) couplé à une timeline DOM/WAAPI instrumentée au requestAnimationFrame, découpage de frames horodatées au millième de seconde, analyse mathématique et par vision par ordinateur des animations, génération de rapport motion-spec.md et construction d'un pack de reproduction à contenu strictement neutre.
1. Architecture hybride (TypeScript + Python/OpenCV)
Agent IA (Antigravity / Claude Code / Inspector)
│ JSON-RPC 2.0 (stdio)
▼
Serveur MCP « vouh-chronos-mcp » (Node.js ≥ 20 / TypeScript ESM)
├─ Capture (src/capture.ts + src/instrument.js)
│ └─ Playwright Chromium ──► video.webm + timeline.json + marqueur #FF00FF (§4.5)
├─ Extraction & Livraison (src/ffmpeg.ts + src/extraction/)
│ └─ ffmpeg / ffprobe + sharp + archiver ──► frames/frame_%04d.jpg, sheets/, .zip, index.md
├─ Moteur Mathématique (src/math/ + src/analysis/)
│ └─ Courbes de Bézier cubiques (Newton-Raphson + grille), ressorts amortis (ζ, ω0, k, c),
│ parallax (κ par moindres carrés), scroll lerp (α, τ), cascades (stagger) ──► motion-spec.md
├─ Pont Vision Hybride (src/vision-bridge.ts ──► py/vision_worker.py)
│ ├─ Backend primaire : Python 3 + OpenCV + NumPy (corrélation de phase Hanning,
│ │ flux optique dense de Farnebäck, énergie de mouvement E_k, dHash 64 bits, DTW + SSIM 8×8)
│ └─ Repli automatique (fallback) : TypeScript pur + sharp si Python/OpenCV est absent
└─ Pack de Reproduction & Comparaison (src/reproduction/ + src/prompts/)
└─ reproduction_pack/ (layout.json neutre, tokens.json, motion-tokens.json, motion-spec.md)Related MCP server: diorama
2. Pré-requis et installation
Pré-requis
Node.js ≥ 20 (testé sur Node 24)
Python ≥ 3.10 (optionnel mais recommandé pour le worker OpenCV/NumPy ; repli automatique sur
sharpsinon)FFmpeg / FFprobe : fournis automatiquement via
@ffmpeg-installer/ffmpeget@ffprobe-installer/ffprobe(ou surchargés viaFFMPEG_PATH/FFPROBE_PATH).
Installation et compilation
# 1. Installer les dépendances Node.js
npm install
# 2. Installer le navigateur Chromium pour Playwright (si non présent)
npx playwright install chromium
# 3. Installer le moteur de vision Python (recommandé)
pip install opencv-python-headless numpy
# 4. Compiler le projet TypeScript vers dist/ (copie également dist/instrument.js)
npm run buildExécuter la suite de tests
npm test3. Configuration du client MCP (mcp_config.json — Annexe B)
Dans Antigravity (Agent Panel → MCP Servers → Manage MCP Servers → View raw config) ou Claude Code :
{
"mcpServers": {
"vouh-chronos-mcp": {
"command": "node",
"args": ["d:/projet/VOUH-cutter/dist/server.js"],
"env": {
"WMC_WORKDIR": "d:/projet/VOUH-cutter/wmc-data",
"WMC_ALLOWED_HOSTS": "localhost,127.0.0.1,*",
"WMC_DELIVERY": "images",
"WMC_PYTHON": "python"
}
}
}
}Variables d'environnement
Variable | Défaut | Description |
|
| Dossier racine où sont stockées les captures ( |
|
| Liste d'hôtes autorisés séparés par des virgules (ex. |
|
| Mode de livraison par défaut pour |
| détection auto ( | Chemin vers l'interpréteur Python exécutant |
|
| Chemin personnalisé vers le binaire |
|
| Chemin personnalisé vers le binaire |
Pour tester interactivement avec l'inspecteur MCP :
npm run inspect4. Outils MCP et Prompt (§8, §9, §10, §11)
Outils enregistrés
Outil | Paramètres principaux | Rôle et sortie |
|
| Ouvre la page dans un contexte Chromium isolé, injecte |
|
| Extrait les frames numérotées à partir de |
|
| Livre un lot paginé de frames ou de planches contact en base64 JPEG (ou le chemin du zip/vidéo) accompagné de son tableau |
|
| Analyse la timeline et les frames (durées, easings Bézier cubiques, ressorts amortis, parallax |
|
| Génère le dossier |
|
| Aligne temporellement deux captures par Dynamic Time Warping (DTW) sur l'énergie de mouvement, calcule le SSIM fenêtré 8×8, vérifie les écarts de durée à ±1 frame et le RMSE des courbes (critères d'arrêt de l'Annexe A). |
Prompt MCP : reproduce_interface
Arguments :
capture_id(requis),target("html-css-js"|"react-vite-tailwind", optionnel).Usage : fournit à l'agent la procédure pas-à-pas pour reconstruire la structure et le mouvement à partir de
reproduction_pack/avec un contenu neutre, puis itérer aveccapture_siteetcompare_captures(maximum 5 itérations).
5. Sécurité, conformité et contenu neutre (§13)
Sécurité technique
Protection SSRF et liste blanche (
WMC_ALLOWED_HOSTS) : seuls les protocoleshttp:ethttps:et les hôtes explicitement listés dansWMC_ALLOWED_HOSTSsont autorisés. Les protocoles locaux (file://,javascript:,ftp:) et les adresses IP privées, loopback ou link-local (10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,169.254.0.0/16,127.0.0.0/8,::1,0.0.0.0) sont bloqués sauf autorisation exacte dans la liste blanche.Anti-traversée de répertoire (Path Traversal) : tous les identifiants (
capture_id,name,zip_name,out) sont validés par expression régulière stricte et rejettent..,/,\et octets nuls.Isolation et limites : navigateur Chromium lancé en mode headless avec un
BrowserContextéphémère vierge (aucun cookie ni session réutilisés), durée plafonnée à 60 s, nombre de captures simultanées limité.Contenu tiers non fiable : l'agent ne doit jamais exécuter d'instructions textuelles visibles dans les captures d'écran ou le DOM d'une page analysée (protection contre l'injection de prompt indirecte).
Conformité et usage responsable
Confirmation explicite (
permission_confirmed: true) : vous ne devez analyser que des sites dont vous êtes propriétaire ou pour lesquels vous disposez d'une autorisation explicite.Contenu strictement neutre : le pack de reproduction (
reproduction_pack/) extrait uniquement des mesures géométriques et cinématiques (layout.json,tokens.json,motion-tokens.json). Il ne copie ni logos, ni images, ni textes, ni polices propriétaires, ni code source du site capturé, et remplace les éléments par des blocs génériques ("Barre de navigation","Titre principal","Bouton d'action","Image 16:9").Interdiction d'imitation (anti-phishing) : cet outil ne doit jamais être utilisé pour imiter l'identité visuelle d'une organisation (pages de connexion, de paiement ou de support).
6. Limites connues (V1)
<canvas>/ WebGL / Shaders / Vidéos embarquées : les animations dessinées directement dans un<canvas>(2D, Three.js, WebGL, PixiJS) ou une<video>ne modifient pas les styles CSS du DOM. Elles sont détectées et signalées explicitement comme « non mesurables par la timeline DOM, vidéo seule » dans la section Incertitudes demotion-spec.md(leur vitesse globale reste toutefois estimée par le flux optique OpenCV sur les frames).Authentification et pages privées : hors périmètre V1 ; le serveur n'injecte aucun identifiant ni cookie de session.
Licence
MIT
Available Tools
6 toolsanalyze_motionAnalyser les mouvements et générer motion-spec.mdB
Calcule les durées, courbes d'easing (Bézier / ressort), parallax, lissage de scroll, cascades (stagger) et flux optique, puis écrit motion-spec.md.
Inputs: capture_id (required), out, detail.
build_reproduction_packConstruire le pack de reproduction neutreB
Prépare le dossier reproduction_pack/ contenant layout.json (blocs neutres), tokens.json, motion-tokens.json, motion-spec.md, frames/ ou sheets/, et README.md.
Inputs: capture_id (required), target.
capture_siteCapturer un site (vidéo + timeline)B
Ouvre l'URL dans Chromium (Playwright), joue un scénario d'interaction, enregistre la vidéo .webm et la timeline instrumentée.
Inputs: url (required), name (required), permission_confirmed (required), device, +5 more.
compare_capturesComparer une capture de référence et une reproductionB
Compare deux captures (alignement DTW sur l'énergie de mouvement, SSIM sur les frames alignées, écart de durée à ±1 frame et RMSE des courbes).
Inputs: candidate_id (required), reference_id (required).
extract_framesExtraire les frames horodatéesB
Découpe la vidéo d'une capture en frames JPEG numérotées depuis 0 avec leur index horodaté exact (index.json, index.md).
Inputs: capture_id (required), fps, roi, sheet, +6 more.
get_framesLire un lot de frames ou planchesB
Renvoie les frames extraites par lots paginés (images JPEG, planches contact, archive ZIP ou chemin vidéo) avec leur index horodaté.
Inputs: capture_id (required), limit, offset, delivery.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
The tools mostly target distinct workflow stages: capture, frame extraction/retrieval, motion analysis, reproduction packaging, and comparison. The only potential confusion is between `get_frames` and `extract_frames`, since one extracts frames and the other retrieves them, but the descriptions distinguish extraction from paginated retrieval.
All tool names follow a consistent snake_case verb_noun pattern: capture_site, get_frames, extract_frames, analyze_motion, build_reproduction_pack, compare_captures. The convention is predictable and readable throughout.
Six tools is well-scoped for a capture-to-analysis pipeline. Each tool corresponds to a clear stage in the workflow, with no obviously redundant or missing bulk.
The toolset covers the core lifecycle: capture a site, extract and retrieve frames, analyze motion, build a reproduction pack, and compare captures. Minor gaps exist around managing or listing prior captures and deleting artifacts, but the primary workflow is complete.
Related MCP Connectors
Website checker for AI coding agents. Measures your site in a real browser, with evidence.
Captured web interfaces, screenshots, flows and structured evidence for AI coding agents.
Screenshot, diff, audit and sitemap-capture any web page — 5 MCP tools for AI agents.
Video production studio for AI agents: AI media, motion graphics as code, timeline and export.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables coding agents to turn CollectUI links or any image/GIF/video URL into a detailed design and motion brief with measured timings, easing curves, displacement, palette, and opt-in keyframes.6 npm1MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to inspect live webpages in Chrome, detach DOM elements into 3D layers, compose keyframe animations, and export deterministic MP4 videos.31 npm-
- AlicenseNot gradedqualityAmaintenanceEnables an AI agent to inspect live browser scene graphs, materials, shaders, lights, textures, animation, performance and memory, preview changes without touching project code, and convert the approved ones into vanilla or React Three Fiber source. It also provides website audits, smooth video frame capture, and Playwright/Puppeteer helpers.5,202 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to act like a senior UI/UX team by reading an existing site's design DNA and tokens, proposing distinct art directions and motion mechanics that fit the brief, and validating changes in a live headless Chromium browser. Provides per-element accessibility and performance auditing (WCAG 2.2 contrast, focus, clipping, phone-menu behavior, LCP/CLS) at multiple viewport widths, plus baseline capture, before/after comparison, and one-command rollback for safe redesigns.77 npm3MIT