Aller au contenu

Control server (API HTTP locale)

Celui qui héberge le moteur (l’app ou le daemon) publie une API HTTP locale dans .microlab/.runtime/control.json :

{ "pid": 123, "port": 49777, "token": "", "mode": "daemon", "version": "0.1.0", "startedAt": "" }

L’API vit à http://127.0.0.1:<port> et chaque requête porte Authorization: Bearer <token>. Le port est éphémère et le token change à chaque démarrage du moteur : il faut relire control.json à chaque connexion.

RouteMéthodeDescription
/pingGETIdentité : { ok, mode, pid, version, activeScenario }.
/opsGETMétadonnées du registre d’opérations.
/invokePOST{ "name": "<opération>", "args": [...] }{ ok, result } (ou erreur).
/eventsGETSSE avec les événements du moteur : logs, status, docker, mock, metrics.
/mcpPOSTLe serveur MCP en Streamable HTTP (voir MCP).
/shutdownPOSTArrêt ordonné ; seul le daemon l’honore (l’app répond 409).

microlab n’est rien de plus qu’un client de cette API. N’importe quel outil local (un autre script, un agent) peut l’utiliser directement : GET /ops pour découvrir la surface et POST /invoke pour exécuter n’importe quelle opération, y compris celles qui n’ont pas de commande propre.