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 pourAcme.exe, lancez l’obfuscation et signalez-moi les avertissements éventuels.
Ajoutez
Acme.Core.dllau projet et fusionnez-le dansAcme.exe, puis montrez-moi les statistiques de renommage de la prochaine exécution.
Décodez la trace de pile de
crash.txtavecAcme.exe.map.xmlet 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.

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 :
| Domaine | Outils |
|---|---|
| Application | app_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 Ă jour | app_update_status, app_update_check, app_update_install |
| Licence du moteur | license_info, license_load, license_clear, license_activate, license_deactivate, license_floating, license_release, license_configure |
| Projets et cibles | project_info, project_graph, graph_layout, project_open, project_save, assembly_list, assembly_add, assembly_select, assembly_remove |
| Paramètres et règles | settings_list, settings_get, settings_set, project_rules, project_set_xml_rules, rules_validate, rules_read, rules_save |
| Exécutions et résultats | obfuscate_start, obfuscate_cancel, obfuscate_status, results_list, results_read, results_table |
| Outils | stack_decode, trace_read, trace_save, warning_reference, plugin_arguments |
| Extensions | extensions_list, extension_install, extension_state, extension_readme, extension_settings, extension_settings_save et les autres outils extension_* |
| Gestion des licences | licensing_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ées | desktop_prepare, desktop_confirm |
| Documentation | docs_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_startrenvoie 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_prepareetlicensing_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.
| Outil | RĂ´le |
|---|---|
docs_search | Recherche 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_read | Renvoie 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_list | Ré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-Tokencorrect 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Ă´me | Cause | Solution |
|---|---|---|
| Le client ne parvient pas à se connecter | Babel 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és | Le jeton est absent ou n’est plus à jour | Copiez de nouveau la configuration après avoir généré un jeton |
| Le serveur ne démarre pas | Le port est déjà utilisé | Choisissez un autre port dans Paramètres > MCP |
| Une confirmation est refusée | La 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ées | Le profil est distant ou en lecture seule, ou la clé API n’a pas le rôle ou l’autorisation nécessaire | Utilisez 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.