Les équipes qui louent des Mac mini M4 pour des passerelles OpenClaw branchent le Model Context Protocol (MCP) plus vite que la documentation : un groupe ajoute un pont stdio npx, un autre pointe vers un compagnon HTTP/SSE, et quelques jours plus tard le catalogue liste deux outils read_file tandis qu’un troisième bundle MCP atteint hors du répertoire racine promis par tools.fs. Ce guide du 2026-05-13 compare les transports, prescrit l’alignement des listes blanches et donne des playbooks de collision pour que les rechargements sous launchd sans session graphique restent déterministes — et non dictés par « celui qui s’est connecté en SSH en dernier ».
Ancrez l’installation sur LaunchAgent et emplacements de journaux, croisez la politique fichiers avec l’application stricte tools.fs et répétez les fumées post-installation via la matrice santé avant de faire confiance à un nouveau bundle. Si le transport quitte le loopback, vérifiez la séparation ingress loopback/public pour éviter qu’un exemple ne lie 0.0.0.0 sur un hôte mutualisé.
Pourquoi « encore un bloc JSON MCP » devient un incident
MCP laisse volontairement l’orchestration mince : le serveur annonce des outils, la passerelle fusionne les catalogues, les clients supposent des noms stables. Sur un Mac loué qui exécute aussi des agents CI ou des sauvegardes planifiées, les serveurs stdio héritent du même PATH et du même trousseau que la passerelle — vélocité élevée, surface latérale aussi. Les ponts HTTP déplacent les pannes vers TLS, DNS et connexions oisives, mais un copier-coller de snippet peut ouvrir des listeners trop larges.
- Non-déterminisme du catalogue : sans préfixes, le dernier serveur MCP enregistré écrase les noms — le comportement bascule entre rechargements.
- Rafales de processus : chaque stdio est souvent un interprète séparé ; une rafale de prompts peut dépasser le budget thermique d’un mini passif.
- Double citoyenneté des chemins : des racines MCP déclarées hors du workspace OpenClaw rendent l’audit contradictoire.
Règle d’or : chaque serveur MCP doit déclarer le même contrat effectif de workspace que la politique tools.fs de la passerelle — désactivez tout outil qui ne peut pas justifier son chemin sous ce contrat avant fusion, pas après des prompts mystérieusement rouges.
Matrice A — transport × isolation × cas d’usage × risque headless NodeMac
| Transport | Isolation | Meilleur cas | Risque headless |
|---|---|---|---|
| stdio local (chemin binaire absolu) | Élevée avec checksums et argv figés. | Passerelle Mac mini M4 mono-locataire colocalisée avec ses outils. | Moyenne — enfants survivant à un rechargement logiciel. |
| Pont HTTP/SSE loopback | Moyenne-haute avec mTLS ou socket Unix devant. | Démons longue durée ou piles polyglottes hors UID passerelle. | Faible si 127.0.0.1 seulement. |
| HTTP distant sans tunnel | Faible sans politique zero trust. | Rare — combinez avec les runbooks tunnel SSH. | Élevée — la latence WAN devient latence MCP. |
| Sidecar conteneurisé | Forte sur le FS, plus lourd en ops. | Équipes déjà standardisées OCI sur le même Mac. | Moyenne — chemins de socket dérivent après reboot. |
Matrice B — symptôme × fiction réconfortante × action corrective
| Symptôme | Fiction | Correctif |
|---|---|---|
| L’ordre des outils change chaque nuit sans modification de config | « Le cloud est non déterministe. » | Collision de noms sans préfixe — renommer ou désactiver les doublons. |
| La RSS passerelle explose après trois bundles MCP | « La mémoire Apple Silicon est infinie. » | Limiter les interprètes stdio, déplacer les charges vers HTTP, recharger par vagues selon drain et redémarrage. |
| MCP lit un chemin où tools.fs échoue | « Bug fournisseur. » | Politique double — fusionner les listes blanches ou rejeter l’outil. |
Cycle de vie stdio sous launchd
Lorsqu’OpenClaw démarre un MCP stdio, macOS le traite comme un enfant du groupe de processus passerelle : signaux, descripteurs hérités, variables d’environnement suivent la hiérarchie documentée — pas le dernier export zsh interactif. Le même JSON peut marcher sur un portable et échouer sur NodeMac si HOME ou NODE_OPTIONS divergent. Traitez les scripts d’amorçage MCP comme du code production : épinglez Node, évitez npx nu sur WAN instable, journalisez argv de façon réductible.
Les arrêts comptent autant : une sortie brutale laisse des MCP orphelins verrouiller des SQLite miroirs. Définissez SIGTERM puis SIGKILL budgétisés et, pour HTTP, attendez zéro connexion avant de marquer healthy.
- Figement argv : commit par tag de release.
- Contrat cwd : pointez explicitement la racine workspace.
- Test de signal : trimestriel, enfants terminés sous 20 secondes.
Tableau de paramètres
| Paramètre | Défaut | Plafond | Propriétaire | Rollback |
|---|---|---|---|---|
| Budget handshake | 45 s | 120 s approuvé | SRE plateforme | Retirer le bloc MCP du snapshot prev-known-good |
| stdio MCP concurrents | 4 sur M4 24 Go | 7 si télémétrie verte 24 h | Lead automatisation | Feature flag par bundle |
| Timeout par outil | 30 s lecture | 180 s export batch ticketé | Sécurité | Throttling couche politique |
| Vérification binaire | SHA-256 chaque artefact | Alerte hebdo si mtime bouge sans hash | Release engineering | Restaurer tarball signé |
Cinq répétitions avant production
- Deux captures list-tools avant/après redémarrage.
- Actions destructrices uniquement sur workspace jetable staging.
- Coupure réseau volontaire sur pont HTTP.
- Rotation de clé en session sans GUI, alignée sur précédence d’environnement.
- Snapshots
launchctl printcorrélés aux PID MCP.
Réglages numériques partagés
- stdio MCP enfants ≤ 4 sauf CPU soutenu < 55 % en pointe.
- Fermer les stdio inactifs après 15 minutes.
- RTT HTTP MCP p95 intra-métro < 250 ms ; tunnel > 600 ms p95 pendant deux semaines ⇒ escalade.
Huit étapes (JSON-LD)
- Inventorier transports et propriétaires Unix.
- Préfixer les espaces de noms.
- Aligner listes blanches tools.fs.
- Plafonner stdio.
- Publier timeouts.
- Fumer après rechargement.
- Étiqueter rollback.
- Audit trimestriel argv/checksums.
FAQ
MCP remplace-t-il tools.fs ?
Non — MCP étend les capacités sans relâcher le contrat filesystem.
Faut-il du VNC ?
Si GUI requise, VNC ; sinon SSH + observabilité.
Les passerelles Mac mini M4 NodeMac profitent de la mémoire unifiée Apple Silicon lorsque plusieurs interprètes MCP stdio restent chauds — pas d’hyperviseur qui vole la bande passante mémoire. macOS natif rattache les enfants MCP au même trousseau et cycle launchd qu’OpenClaw. SSH et VNC optionnel sur Hong Kong, Japon, Corée, Singapour et États-Unis permettent de valider argv et invites GUI sur du matériel réel. Isolation physique par locataire et thermique prévisible imposent de n’augmenter la concurrence MCP qu’avec de la télémétrie — croisez cela avec des grilles tarifaires transparentes pour que les finances comprennent pourquoi un mini dédié bat la surallocation d’un catalogue partagé.