Diwall MCP

Français
Télécharger v0.0.1

Installer et vérifier

Installer le serveur depuis un paquet pour Debian, Ubuntu, Fedora, openSUSE Leap ou Arch Linux, ou depuis un clone du dépôt, puis lancer les tests qui n'ont pas besoin de navigateur et le test de fumée.

Avant toute autre chose

Le serveur ne travaille pas sans répertoire chiffré. Le navigateur auquel il se rattache garde vos sessions ouvertes dans son profil, et elles ne doivent pas reposer en clair sur le disque. Après l’installation, la première commande est mcp-server-diwall-browser-setup (depuis un clone, .venv/bin/python -m mcp_server_diwall_browser.setup), que vous lancez vous-même dans un terminal : elle lit votre machine et se termine sur la commande suivante à taper.

Deux façons de continuer. Un essai, mcp-server-diwall-browser-setup create --temporary, fait un volume en mémoire : le fermer, arrêter la machine ou terminer votre session le détruit, et avec lui les sessions des sites que vous avez ouvertes, le journal d’audit et les captures. Un volume durable, mcp-server-diwall-browser-setup create, les garde. Dans les deux cas, vous tapez vous-même le mot de passe à l’invite de gocryptfs, et vous ouvrez vous-même vos sessions sur les sites dans le navigateur que l’assistant lance. Après avoir ajouté le serveur à votre client MCP, redémarrez le client : une session déjà ouverte ne voit pas le nouveau serveur. Les étapes sont dans le répertoire chiffré.

Ce qu’il vous faut

  • Linux. Le guide de l’opérateur est écrit pour Debian 13, où les tests du projet ont tourné.
  • Python 3.12 ou plus récent.
  • Google Chrome, Chromium ou Brave.
  • fuse3 et gocryptfs pour le répertoire chiffré, kdialog ou zenity pour la fenêtre de confirmation, git, et ss (paquet iproute2).

Sur Debian 13 et Ubuntu 24.04, les paquets système (commande rejouée dans un conteneur propre de chaque système) :

sudo apt install python3-venv fuse3 gocryptfs kdialog iproute2 git

Avec le paquet, python3-venv, fuse3, gocryptfs et kdialog viennent avec lui : cette ligne sert surtout à la voie du clone.

Hors de KDE, zenity peut tenir lieu de kdialog.

Le navigateur s’installe à part. Sous Debian 13, c’est le paquet chromium (155.0.8059.79) :

sudo apt install chromium

Sous Ubuntu 24.04, le paquet chromium n’existe pas (chromium-browser n’installe qu’un lanceur Snap) : installez Google Chrome depuis son fichier .deb.

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb

Installer

Une machine ARM 64 bits prend le même .deb. Sur un Raspberry Pi 4 Model B sous Raspberry Pi OS (Debian 13, aarch64) avec Chromium 155, l’installation, le premier lancement, le test de fumée et la suite complète (2 694 tests réussis, 1 ignoré) ont été joués ; le guide de l’opérateur, sections 1 et 12, dit ce qui diffère d’un PC.

Depuis un paquet

Téléchargez le paquet de votre système et installez-le depuis le dossier qui le contient. La somme de chaque fichier est dans SHA256SUMS : sha256sum -c --ignore-missing SHA256SUMS.

Le paquet apporte lui-même Python, fuse3, gocryptfs et kdialog ou zenity, et installe les dépendances du serveur dans un environnement virtuel qui lui est propre, ce qui demande une connexion au réseau. Le navigateur, c’est à vous de l’installer. L’installation, le démarrage du serveur par un compte ordinaire et le retrait sont validés en conteneur sur ces systèmes. Un conteneur ne montre ni la fenêtre de confirmation, ni le montage du répertoire chiffré, ni un navigateur. Debian 12 et Ubuntu 22.04 ne sont pas pris en charge : leur Python est plus ancien que 3.12. Le paquet ajoute les commandes mcp-server-diwall-browser, mcp-server-diwall-browser-credential-import et mcp-server-diwall-browser-setup, et la page de manuel man mcp-server-diwall-browser. Il se termine en affichant la première commande à taper, mcp-server-diwall-browser-setup.

Depuis un clone du dépôt

Un clone du dépôt installe le serveur avec ses outils de test. ~ est votre répertoire personnel.

git clone https://github.com/RonanDavalan/mcp-server-diwall-browser.git \
  ~/mcp-server-diwall-browser
cd ~/mcp-server-diwall-browser
python3 -m venv .venv
.venv/bin/python -m pip install -e ".[dev]"

python3 --version doit afficher 3.12 ou plus ; sinon nommez l’interpréteur, python3.12 ou python3.13, dans la troisième commande. Les versions que le projet a testées sont épinglées dans requirements.lock.

Vérifier

Deux commandes, celles du clone. Le paquet ne livre ni les tests ni scripts/smoke_test.py ; avec le paquet, la commande de contrôle est mcp-server-diwall-browser-setup, sans argument, qui lit la machine et ne change rien. Aucune des deux commandes ci-dessous ne touche à votre navigateur, à votre répertoire chiffré ni à votre profil d’opérateur.

.venv/bin/python -m pytest -q -m "not browser"
.venv/bin/python scripts/smoke_test.py

La première lance tous les tests qui n’ont pas besoin de navigateur. Sur le code de la version 0.0.1, avec Python 3.12.11 :

2100 passed, 1 skipped, 589 deselected, 1 warning in 105.36s (0:01:45)

Le test ignoré change le propriétaire d’un fichier, ce qui exige les droits de root. La seconde commande lance le serveur contre un navigateur à elle, sur un profil temporaire vierge, et observe la page de démonstration du dépôt. Le même jour, avec Google Chrome :

browser executable: google-chrome (Chrome/155.0.8059.84)
server                        0.0.1, configured: True
browser                       Chrome/155.0.8059.84, attached: True
encrypted directory           closed_or_absent (encrypted_dir_undetermined), action expected: operator_opens_directory
tab origin                    http://127.0.0.1:38565
marks                         4
image                         yes
tree lines                    10
redacted_fields               1
password value in the result  absent
elements                      1 textbox "User name", 2 textbox "Password", 3 button "Sign in", 4 link "Help"
result: conforming

Le port de tab origin change à chaque exécution. Le répertoire chiffré indique closed_or_absent exprès : le test de fumée donne au serveur un répertoire qui n’est pas monté. La commande rend 0 quand le résultat est celui attendu, 1 quand une ligne diffère (elle se termine alors par <- not as expected), et 3 quand elle ne trouve aucun navigateur sur votre PATH. --save-image ~/observe.png écrit l’image que le modèle a reçue.

Avec un navigateur sur votre PATH, .venv/bin/python -m pytest -q lance aussi les 589 tests de navigateur, chacun sur un profil temporaire vierge.

Ensuite : lancer le navigateur sur son propre profil, étape 2. Toutes les options de cette étape sont dans la section 2 du guide de l’opérateur.