Aller au contenu

Piloter Restorm par MCP

Restorm expose un serveur MCP (Model Context Protocol). Un agent IA — Claude Code, Cursor, ou tout client MCP — peut donc lire votre projet, créer et exécuter des requêtes, et piloter l’interface.

C’est ce qui permet de demander « importe ce Swagger, crée un scénario qui teste le parcours de commande et lance-le » et d’obtenir un résultat vérifiable, dans une application que vous gardez sous les yeux.

Le serveur est activé par défaut. Deux gouvernances :

  • le réglage Paramètres ▸ MCP ▸ Activer le serveur MCP ;
  • une règle absolue : sur une machine sans affichage, le serveur MCP ne démarre jamais, quel que soit le réglage. Un serveur de CI ne se retrouve donc pas à exposer un point d’entrée.

L’indicateur MCP de la barre d’état clignote à chaque appel entrant. Son popover permet de suspendre ou de reprendre le serveur pour la session, et d’ouvrir les journaux MCP.

L'indicateur MCP de la barre d'état et son popover : le port d'écoute du serveur, le nom de la session connectée, et les actions « Arrêter le serveur MCP » et « Voir les journaux »

Au démarrage, Restorm choisit un port libre, génère un jeton d’accès propre au processus, et écrit un fichier de découverte dans le répertoire temporaire du système. Le serveur JSON-RPC écoute sur 127.0.0.1:<port>/mcpen boucle locale uniquement : tout appelant extérieur reçoit un 403.

Un petit proxy fait le pont entre l’entrée standard de votre client MCP et le serveur HTTP de Restorm :

{
"mcpServers": {
"restorm": {
"command": "node",
"args": ["scripts/mcp-launcher.mjs"]
}
}
}

Il découvre l’instance en cours, injecte le jeton, et ne démarre jamais Restorm silencieusement : une instance dont vous avez coupé le serveur MCP reste coupée, avec un message d’erreur clair.

Lisez le port et le jeton dans le fichier de découverte, puis envoyez vos requêtes JSON-RPC avec un en-tête Authorization: Bearer <jeton>.

Plusieurs Restorm peuvent tourner en parallèle. Chaque appel accepte une clé réservée __session pour désigner l’instance visée. Les outils list-instances, create_instance et terminate_instance complètent le tableau.

Lecture · navigation · projet · écriture · environnements et secrets · import · exécution · scénarios · instances · automatisation de l’interface (capture d’écran, requête DOM, saisie, raccourcis, thèmes, disposition).

Quatre ressources sont également exposées : restorm://project, restorm://tree, restorm://active-tab et restorm://request/{id}.

Inventaire complet : Outils MCP.

Le serveur MCP lui-même n’est jamais restreint. Chaque outil vérifie sa propre capacité au moment de l’appel.

  • Édition Community — tout le pilotage des requêtes : exécuter, annuler, lire les réponses et l’historique, lire des flux, envoyer des messages, importer depuis une URL, ouvrir et fermer des onglets, gérer les projets, écrire dans l’arbre, gérer les environnements et les variables, les paramètres rapides, les favoris, et les six outils de pare-feu.
  • Édition Pro — le domaine scénarios (y compris en lecture), les captures, toute l’automatisation de l’interface, les thèmes, le mini-navigateur, la disposition du workbench, les instances multiples, et les outils git.

Un outil restreint reste listé — son intitulé porte le suffixe (Restorm Pro) — et renvoie une erreur explicite et lisible par la machine plutôt que de disparaître.

  • Boucle locale et jeton : le serveur n’écoute que sur 127.0.0.1, et le jeton est comparé en temps constant.
  • Secrets : un agent reçoit la valeur résolue d’un secret, comme le reste de l’application — il pilote Restorm en votre nom, sur vos propres secrets. Ce que le type Secret garantit reste vrai : la valeur ne part ni dans le projet, ni dans un export, ni vers un service tiers non autorisé.
  • Effets réseau réels : run_request appelle véritablement la cible. C’est le flux d’approbation de votre client MCP qui joue le rôle de garde-fou — gardez-le actif.
  • Le pare-feu s’applique : un appel déclenché par un agent vers une origine inconnue provoque la même demande d’autorisation que le vôtre.
  • Journalisation : chaque appel apparaît dans les journaux MCP, avec sa requête et sa réponse.