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>/mcp — en boucle locale uniquement : tout appelant extérieur reçoit un 403.

Vous ne copiez jamais ce port ni ce jeton vous-même. Un petit lanceur fait le pont entre l’entrée et la sortie standard de votre client MCP et le serveur HTTP de Restorm : il trouve l’instance en cours, injecte le jeton, et transmet vos appels. Il répond instantanément à initialize et tools/list depuis un manifeste intégré, si bien que votre client démarre vite sans attendre le lancement de Restorm — puis il sert la liste des outils réels dès qu’un appel passe. Il ne démarre jamais Restorm silencieusement : une instance dont vous avez coupé le serveur MCP reste coupée, avec un message d’erreur clair.

Le moyen le plus rapide ne demande aucune configuration manuelle. Ouvrez le popover de l’indicateur MCP (barre d’état) et cliquez sur « Ajoutez Restorm à votre agent IA ». Une fenêtre récapitule, client par client, la seule ligne à copier :

  • Claude Code — la commande claude mcp add …, doublée d’un bouton « Ajouter à Claude Code » qui l’exécute pour vous lorsque l’outil claude est détecté sur votre PATH ;
  • Claude Desktop et Cursor — le bloc mcpServers à coller, avec l’emplacement du fichier de configuration.

La fenêtre « Ajoutez Restorm à votre agent IA » : trois sections empilées — Claude Code, Claude Desktop et Cursor — chacune avec la ligne à copier ; la section Claude Code propose en plus un bouton d'exécution directe

Restorm n’écrit jamais le fichier de configuration d’une autre application : le bouton d’exécution ne pilote que votre propre CLI claude. Pour les autres clients, vous collez l’extrait vous-même.

Claude Code peut aussi installer Restorm comme plugin, depuis notre place de marché auto-hébergée :

/plugin marketplace add Monsieur-Dev/restorm
/plugin install restorm@restorm-marketplace

Le plugin enregistre le serveur MCP restorm (il s’appuie sur npx -y restorm-mcp) — rien d’autre à régler.

Vous préférez écrire la configuration vous-même — ou vous utilisez un autre client ? Les options ci-dessous couvrent tous les cas.

  • Le serveur MCP est activé — il l’est par défaut (Paramètres ▸ MCP). Sur une machine sans affichage, il ne démarre jamais, quel que soit le réglage.
  • Une instance de Restorm est en cours d’exécution — le lanceur se connecte à votre application en cours, il n’en lance pas.
  • Node.js ≥ 18 pour la méthode npx ci-dessous.

Option A — npx restorm-mcp (recommandée)

Section titled “Option A — npx restorm-mcp (recommandée)”

Aucune installation, aucun chemin à gérer, fonctionne avec n’importe quel client et sur tous les OS. Pointez votre client dessus :

{
"mcpServers": {
"restorm": {
"command": "npx",
"args": ["-y", "restorm-mcp"]
}
}
}

L’emplacement de cet extrait dépend de votre client :

  • Claude Desktop — Paramètres ▸ Développeur ▸ Modifier la configuration, ou le fichier claude_desktop_config.json (macOS : ~/Library/Application Support/Claude/, Windows : %APPDATA%\Claude\).
  • Cursor — Paramètres ▸ MCP ▸ Ajouter, ou ~/.cursor/mcp.json.
  • Claude Code — claude mcp add restorm -- npx -y restorm-mcp, ou un .mcp.json dans votre projet.

Option B — le lanceur fourni avec l’application (sans npm)

Section titled “Option B — le lanceur fourni avec l’application (sans npm)”

Chaque installation de Restorm embarque le même lanceur comme ressource fournie ; vous pouvez donc pointer node directement dessus, sans npm :

{
"mcpServers": {
"restorm": {
"command": "node",
"args": ["<path-to>/restorm-resources/mcp-launcher.mjs"]
}
}
}

<path-to> est le répertoire des ressources de l’application :

  • macOS — /Applications/Restorm.app/Contents/Resources/restorm-resources/mcp-launcher.mjs
  • Windows — %LOCALAPPDATA%\Programs\restorm\resources\restorm-resources\mcp-launcher.mjs
  • Linux — /opt/Restorm/resources/restorm-resources/mcp-launcher.mjs (.deb/.rpm) ; à l’intérieur de l’image montée pour un AppImage ; $SNAP/resources/restorm-resources/mcp-launcher.mjs pour le Snap.

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 <token>.

Le lanceur et l’application doivent s’accorder sur le répertoire de découverte. Tous deux utilisent par défaut restorm-mcp sous le répertoire temporaire du système ; si vous définissez la variable d’environnement RESTORM_MCP_DIR, donnez-lui la même valeur des deux côtés (nécessaire seulement si Restorm tourne sous un gestionnaire de services doté d’un répertoire temporaire différent).

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.