Brancher un client MCP
La commande pour Claude Code, le bloc pour tout autre client MCP, et ce que chaque configuration d'OpenCode remet au modèle : les quatorze outils, et éventuellement un shell à côté.
Claude Code, ou tout autre client
Le serveur parle MCP par l’entrée et la sortie standard : le client le lance comme processus enfant. Avec Claude Code :
claude mcp add --scope user diwall-browser \
-e MCP_DIWALL_BROWSER_PROFILE="$HOME/.config/mcp-server-diwall-browser/profile.json" \
-- "$HOME/mcp-server-diwall-browser/.venv/bin/python" -m mcp_server_diwall_browser
Avec un paquet installé, la commande est mcp-server-diwall-browser et le profil
est lu à sa place habituelle :
claude mcp add --scope user diwall-browser -- mcp-server-diwall-browser
Pour un clone, la commande ci-dessus s’applique.
Pour un autre client, le bloc mcpServers habituel. Le client ne développe pas
~ : cette commande affiche le bloc avec votre répertoire personnel dans les
chemins, prêt à coller dans sa configuration :
cat <<EOF
{
"mcpServers": {
"diwall-browser": {
"command": "$HOME/mcp-server-diwall-browser/.venv/bin/python",
"args": ["-m", "mcp_server_diwall_browser"],
"env": {
"MCP_DIWALL_BROWSER_PROFILE": "$HOME/.config/mcp-server-diwall-browser/profile.json"
}
}
}
}
EOF
Adaptez ~/mcp-server-diwall-browser à votre clone et le chemin du
profil au vôtre. La variable peut disparaître quand le profil est à son endroit
habituel, ~/.config/mcp-server-diwall-browser/profile.json. L’opérateur a lancé la
commande de Claude Code sur Debian, et claude mcp list a montré le serveur
connecté.
Quel modèle reçoit les outils, et quoi d’autre
Le serveur donne quatorze outils au modèle de la session qui le lance. Le client décide de quel modèle il s’agit, et de ce qu’il a à côté des outils : un shell, le droit d’écrire des fichiers. Un modèle qui a un shell sous votre compte peut modifier le profil de l’opérateur et y ajouter un site (Limites). Avec OpenCode, version 2.0.29 mesurée :
| Configuration | Ce que reçoit le modèle |
|---|---|
Un agent principal dédié, navigateur (recommandé) | les outils dans cet agent seulement ; son shell et ses écritures de fichiers attendent votre réponse. Tout autre agent, dans tout projet, n’a aucun outil du serveur |
Le serveur déclaré dans le opencode.jsonc d’un seul projet | les outils pour tout agent lancé dans ce répertoire, avec les permissions qu’il a déjà, shell compris si le fichier global l’autorise |
| Le serveur déclaré dans le fichier global | les outils dans chaque session de chaque projet et de chaque modèle, y compris un modèle qui lit un dépôt qui n’est pas le vôtre |
Mesuré avec la première configuration et un modèle qui n’est pas Claude : l’agent
navigateur a appelé status et le journal a reçu une ligne dont client valait
opencode ; l’agent par défaut, à qui l’on demandait le même outil, a répondu qu’il
n’en avait aucun, et le journal n’a reçu aucune ligne ; une commande de shell dans un
agent dont bash est réglé sur ask n’a pas été exécutée dans le mode non
interactif d’OpenCode. Les trois blocs de configuration sont dans
la section 2.1 du guide de l’opérateur.
Vérification : status
Demandez au modèle d’appeler status. Il ne change rien dans le navigateur,
fonctionne même quand rien n’est configuré, et dit alors ce qui manque et les deux
façons de le fournir. Lisez :
configured: true, ou le chemin où le profil est attendu ;- le navigateur
attached, oubrowser_unreachablequand aucun navigateur ne répond sur le port du profil ; - le répertoire chiffré
mounted, ouclosed_or_absent; confirmation_channel:nativeveut dire qu’une fenêtre peut s’ouvrir sur votre écran. Avecnone, toute action qui demande votre confirmation est refusée ; ajoutez votre affichage au blocenvde la connexion, par exemple"DISPLAY": ":0"(echo $DISPLAYdans votre session de bureau donne la valeur).
Claude Code lancé depuis un terminal de bureau a transmis l’affichage au serveur
(status indiquait native) ; le service d’OpenCode aussi. Le client propre au
SDK MCP lance un serveur avec HOME, LOGNAME, PATH, SHELL, TERM et USER
seulement. Pour connaître la version du serveur, lisez server_version dans
status : la version annoncée à l’ouverture d’une session est celle du SDK MCP.