Skip to Content
Nouvelle version 12 disponible 🎉
DesktopServeur MCP

Serveur MCP

Babel Desktop peut héberger un serveur Model Context Protocol (MCP) local, afin qu’un assistant IA tel que Claude Code puisse ouvrir des projets, modifier des paramètres, lancer l’obfuscation, décoder des traces de pile et travailler avec Babel Licensing.

MCP  est un standard ouvert que les assistants IA utilisent pour appeler des outils externes. Tout client MCP qui prend en charge le transport Streamable HTTP peut se connecter. L’assistant travaille dans l’application que vous avez ouverte : les projets qu’il modifie et les exécutions qu’il lance apparaissent sur le canevas, et il voit les modifications que vous apportez dans la fenêtre.

Quelques exemples de demandes :

Ouvrez ~/Projects/Acme/Acme.babel, activez le proxy dynamique et la génération du fichier de mappage pour Acme.exe, lancez l’obfuscation et signalez-moi les avertissements éventuels.

Ajoutez Acme.Core.dll au projet et fusionnez-le dans Acme.exe, puis montrez-moi les statistiques de renommage de la prochaine exécution.

Décodez la trace de pile de crash.txt avec Acme.exe.map.xml et dites-moi laquelle de mes méthodes a levé l’exception.

Montrez-moi les licences qui expirent dans les 30 prochains jours et les clients auxquels elles appartiennent.

Passez l’interface au thème Copper Night et faites une capture d’écran du tableau de bord.

À quoi sert le proxy dynamique ? S’il est pertinent pour Acme.exe, activez-le et expliquez pourquoi.

Activer le serveur

Le serveur est désactivé par défaut et n’écoute pas tant que vous ne l’avez pas activé.

Ouvrir les paramètres MCP

Ouvrez les Paramètres et choisissez MCP.

Activer le serveur

Cochez Activer le serveur d’automatisation. La ligne d’état passe à En cours et affiche l’adresse du serveur, http://127.0.0.1:8765/mcp avec le port par défaut. Tant que le paramètre reste activé, le serveur démarre à chaque démarrage de Babel Desktop.

Choisir le port

Laissez Port sur 8765, sauf si un autre programme de la machine l’utilise déjà.

Protéger le serveur par un jeton

Cochez Exiger un jeton d’accès et cliquez sur Générer. Les clients doivent alors envoyer le jeton dans l’en-tête X-Babel-Token. Sans jeton, tout programme exécuté sous votre compte utilisateur sur la machine peut se connecter ; sur une machine partagée, exigez-en un.

Fenêtre Settings sur la page MCP automation server : la case à cocher Enable the automation server, l’état Running avec l’adresse http://127.0.0.1:8765/mcp, le champ Port, la case à cocher Require an access token avec les boutons Generate et Copy, le JSON de configuration du client et les boutons Copy configuration, Copy Claude Code command et Show file

Paramètres > MCP

Les modifications s’appliquent immédiatement. Décocher Activer le serveur d’automatisation arrête le serveur ; changer le port ou le jeton le redémarre et déconnecte les clients connectés. La palette de commandes propose aussi MCP : démarrer le serveur local (lecture/écriture du projet), MCP : arrêter le serveur local, MCP : afficher l’état et MCP : afficher le fichier de configuration du client.

Connecter un client

La section Configuration du client des paramètres MCP génère une configuration pour le port et le jeton actuels. Cliquez sur Copier la configuration et collez-la dans la configuration MCP de votre client :

{ "mcpServers": { "babel-obfuscator": { "type": "http", "url": "http://127.0.0.1:8765/mcp", "headers": { "X-Babel-Token": "paste-the-token-from-settings-mcp" } } } }

Si aucun jeton n’est exigé, le bloc headers est omis. Afficher le fichier… montre le fichier de configuration que Babel Desktop écrit pour le serveur en cours d’exécution.

Pour Claude Code, cliquez sur Copier la commande Claude Code et exécutez la commande copiée dans un terminal :

claude mcp add --transport http babel-obfuscator http://127.0.0.1:8765/mcp \ --header "X-Babel-Token: paste-the-token-from-settings-mcp"

Démarrez d’abord Babel Desktop, puis l’assistant. Pour vérifier la connexion, demandez à l’assistant de faire une capture d’écran de la fenêtre de Babel Desktop.

Traitez le jeton comme un mot de passe et ne le faites figurer ni dans les rapports, ni dans les tickets, ni dans le contrôle de code source. Quiconque le détient peut piloter Babel Desktop sur la machine locale avec vos autorisations.

Ce que l’assistant peut faire

Le serveur expose les fonctionnalités de l’application sous forme d’outils MCP, regroupés comme suit :

DomaineOutils
Applicationapp_get_state, app_info, app_settings, app_set_theme, app_set_globe_style, language_list, language_set, language_install, mcp_configure, app_restart, desktop_screenshot
Mises Ă  jourapp_update_status, app_update_check, app_update_install
Licence du moteurlicense_info, license_load, license_clear, license_activate, license_deactivate, license_floating, license_release, license_configure
Projets et ciblesproject_info, project_graph, graph_layout, project_open, project_save, assembly_list, assembly_add, assembly_select, assembly_remove
Paramètres et règlessettings_list, settings_get, settings_set, project_rules, project_set_xml_rules, rules_validate, rules_read, rules_save
Exécutions et résultatsobfuscate_start, obfuscate_cancel, obfuscate_status, results_list, results_read, results_table
Outilsstack_decode, trace_read, trace_save, warning_reference, plugin_arguments
Extensionsextensions_list, extension_install, extension_state, extension_readme, extension_settings, extension_settings_save et les autres outils extension_*
Gestion des licenceslicensing_profiles, licensing_profile_save, licensing_profile_test, licensing_profile_select, licensing_layout, licensing_read, licensing_dashboard, licensing_globe_details, licensing_report, licensing_geolocation, licensing_prepare, licensing_confirm
Modifications confirméesdesktop_prepare, desktop_confirm
Documentationdocs_search, docs_read, docs_list

Les noms des paramètres sont les noms d’options Babel Obfuscator affichés dans le panneau des propriétés, ce qui permet à l’assistant de s’appuyer sur la référence de la tâche Babel pour choisir les valeurs. Vous n’avez pas besoin de nommer les outils. Décrivez le résultat voulu, et l’assistant les choisit.

Modifications confirmées

Les opérations qui risquent de faire perdre du travail ou d’écraser des fichiers se déroulent en deux temps. L’assistant prépare d’abord l’opération et reçoit en retour une proposition qui décrit ce qui va se passer, par exemple les fichiers de sortie qu’une exécution remplacera ou l’enregistrement qu’une suppression retirera. Il doit vous montrer la proposition et obtenir votre accord avant de confirmer l’opération. Une proposition expire au bout de deux minutes et ne peut servir qu’une seule fois. Elle est refusée si le projet, les fichiers ou l’enregistrement ont changé depuis sa création.

La confirmation en deux temps s’applique aux opérations suivantes :

  • la crĂ©ation d’un nouveau projet, le remplacement d’une entrĂ©e, le retrait d’une cible, la modification du graphe et des dĂ©pendances, et le lancement d’une exĂ©cution (obfuscate_start renvoie une proposition) ;
  • les commandes de configuration : la fusion dans l’assembly principal, l’obfuscation publique et le niveau de protection d’une cible ;
  • l’installation et la dĂ©sinstallation d’extensions, et la suppression d’un profil de connexion de gestion des licences ;
  • la crĂ©ation, la modification, la rĂ©vocation et la suppression d’enregistrements de gestion des licences (licensing_prepare et licensing_confirm).

La modification des paramètres ou des règles XML exige la révision actuelle du projet, ce qui empêche un assistant d’écraser des modifications qu’il n’a pas vues.

Exécutions d’obfuscation

Une exécution lancée par l’assistant ne diffère en rien d’une exécution que vous lancez dans la fenêtre. Elle écrit la sortie aux mêmes emplacements, indique sa progression dans le panneau Activité et peut être annulée d’un côté comme de l’autre. L’assistant interroge obfuscate_status jusqu’à la fin de l’exécution, puis lit les statistiques avec results_read et results_table. Tant qu’une exécution est en cours, le projet ne peut pas être modifié.

Gestion des licences

Les outils de gestion des licences agissent sur les profils de connexion de gestion des licences, avec les rôles et les autorisations de la clé API du profil. Les enregistrements ne peuvent être créés, modifiés et supprimés que par un profil Test local dont le mode d’accès est Gestion locale ; les profils distants et les profils en lecture seule refusent toute modification. Les réponses omettent les secrets tels que les clés de licence, les clés API, les jetons et les adresses IP. Les outils du tableau de bord ne renvoient que des données agrégées.

Ce qui reste dans la fenĂŞtre

L’assistant ne peut pas effectuer les opérations suivantes ; elles vous reviennent, dans la fenêtre :

  • la saisie d’identifiants : se connecter avec une clĂ© API et gĂ©nĂ©rer le jeton MCP ;
  • la rĂ©ponse aux demandes de mot de passe pendant une exĂ©cution, et le dĂ©codage de traces de pile avec des fichiers de mappage protĂ©gĂ©s par mot de passe ;
  • le dĂ©marrage et l’arrĂŞt du serveur MCP lui-mĂŞme.

Outils de documentation Babel

Le serveur met aussi à la disposition de l’assistant la documentation que vous êtes en train de lire. Lorsque vous demandez comment une fonction marche ou comment réaliser une opération, l’assistant cherche dans la documentation, lit la section pertinente et répond avec des liens vers les pages utilisées, avant de modifier le moindre paramètre. Le serveur indique aux clients connectés de procéder ainsi, et vous n’avez pas besoin de nommer les outils.

OutilRĂ´le
docs_searchRecherche dans la documentation de Babel Obfuscator, de Babel Licensing, de Babel Desktop et de la référence des API. Il accepte une requête de 500 caractères au maximum, un paramètre facultatif section (obfuscator, licensing, desktop ou api) et un paramètre facultatif limit de 1 à 20 (8 par défaut). Chaque résultat comprend le titre de la page, le titre de la section, le chemin de la page, un lien vers le titre de la section et un court extrait
docs_readRenvoie une page au format Markdown, à partir du chemin renvoyé par docs_search ou docs_list. Avec un paramètre heading, il ne renvoie que cette section. Les pages de plus de 200 Kio sont tronquées, avec une note invitant à demander une seule section. Pour un chemin inconnu, il indique les chemins les plus proches
docs_listRépertorie les pages avec leur chemin, leur titre et leur description, pour toutes les sections ou pour une seule

Les outils de documentation ne font que lire, et ne se connectent qu’à https://docs.babelfor.net. La recherche s’exécute sur votre machine : votre question n’est pas envoyée au site de documentation. Les outils téléchargent l’index de recherche et les pages qu’ils lisent, c’est-à-dire les mêmes fichiers publics que ceux décrits dans Utiliser la documentation avec l’IA.

Quelques exemples de demandes :

Comment exclure un type du renommage avec les règles XML ? Modifiez les règles de ce projet en conséquence.

Cherchez dans la documentation de Babel Licensing comment mon application doit libérer une licence flottante à sa fermeture.

Lisez la page Décodeur de pile et expliquez-moi de quel fichier de mappage j’ai besoin pour un build de release.

Utilisation hors ligne et mises Ă  jour

Babel Desktop conserve l’index et les pages téléchargés dans un dossier docs-cache de votre profil utilisateur.

  • Les changements de l’index sont vĂ©rifiĂ©s au plus une fois toutes les 24 heures. Une page n’est tĂ©lĂ©chargĂ©e de nouveau que si elle a changĂ© sur le site.
  • Pour obtenir plus tĂ´t la dernière version, demandez Ă  l’assistant d’actualiser la documentation. Les outils acceptent refresh: true Ă  cet effet.
  • Sans connexion rĂ©seau, les outils rĂ©pondent Ă  partir de la copie en cache et signalent que le rĂ©sultat est pĂ©rimĂ©, avec la date de la copie.
  • Après un Ă©chec de connexion ou une erreur du site, les outils utilisent le cache pendant 10 minutes avant d’interroger de nouveau le site.

Les outils doivent joindre le site une fois pour constituer le cache. D’ici là, hors ligne, ils renvoient : Babel documentation is not available offline yet: connect to the internet once, or open https://docs.babelfor.net .

Sécurité

  • Le serveur est dĂ©sactivĂ© par dĂ©faut et n’écoute qu’une fois que vous l’avez activĂ©.
  • Il est liĂ© Ă  127.0.0.1, de sorte que les autres machines ne peuvent pas l’atteindre.
  • Lorsque Exiger un jeton d’accès est activĂ©, toute requĂŞte dĂ©pourvue de l’en-tĂŞte X-Babel-Token correct est rejetĂ©e.
  • La taille des requĂŞtes, les sessions, les connexions et les dĂ©lais d’attente sont limitĂ©s, et l’hĂ´te et l’origine de chaque requĂŞte sont validĂ©s.
  • Aucun outil n’exĂ©cute de commandes, de requĂŞtes SQL ou d’URL arbitraires.
  • Les outils de documentation ne se connectent qu’à https://docs.babelfor.net, sans suivre les redirections, et ne font que lire.

L’assistant a le même accès à vos projets et à vos fichiers que vous dans Babel Desktop. Il peut modifier les paramètres d’un projet, lancer des obfuscations et, après confirmation, remplacer des fichiers de sortie. Si vous laissez un assistant explorer librement, donnez-lui une copie du projet, et désactivez le serveur lorsque vous ne vous en servez pas.

Dépannage

SymptĂ´meCauseSolution
Le client ne parvient pas à se connecterBabel Desktop n’est pas démarré, ou le serveur n’est pas activéDémarrez Babel Desktop et vérifiez la ligne d’état dans Paramètres > MCP
Tous les appels sont rejetés comme non autorisésLe jeton est absent ou n’est plus à jourCopiez de nouveau la configuration après avoir généré un jeton
Le serveur ne démarre pasLe port est déjà utiliséChoisissez un autre port dans Paramètres > MCP
Une confirmation est refuséeLa proposition a expiré ou le projet a changéDemandez à l’assistant de préparer de nouveau l’opération
Les modifications de gestion des licences sont refuséesLe profil est distant ou en lecture seule, ou la clé API n’a pas le rôle ou l’autorisation nécessaireUtilisez un profil Test local en mode Gestion locale et une clé dotée des autorisations requises

Le Babel Licensing Service possède son propre serveur MCP, qui fonctionne à distance avec l’API du service ; voir Intégration de l’IA pour une comparaison.

Last updated on