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.
fuse3etgocryptfspour le répertoire chiffré,kdialogouzenitypour la fenêtre de confirmation,git, etss(paquetiproute2).
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.
- Debian 13, Ubuntu 24.04 et 26.04 :
mcp-server-diwall-browser_0.0.1-1_all.deb, puissudo apt install ./mcp-server-diwall-browser_0.0.1-1_all.deb - Fedora 44 :
mcp-server-diwall-browser-0.0.1-1.fc44.noarch.rpm, puissudo dnf install ./mcp-server-diwall-browser-0.0.1-1.fc44.noarch.rpm - openSUSE Leap 16.0 :
mcp-server-diwall-browser-0.0.1-1.leap160.noarch.rpm, puissudo zypper install --allow-unsigned-rpm ./mcp-server-diwall-browser-0.0.1-1.leap160.noarch.rpm - Arch Linux :
mcp-server-diwall-browser-0.0.1-1-any.pkg.tar.zst, puissudo pacman -U ./mcp-server-diwall-browser-0.0.1-1-any.pkg.tar.zst
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.