Serveur MCP
Utiliser le ccmux MCP pour permettre à un agent de codage d'inspecter les sessions, de lire les notes du projet et de vérifier l'utilisation. La création de session, les frappes au clavier et la fin sont disponibles uniquement lorsque vous activez la mutation.
Le binaire du serveur est inclus avec ccmux v0.3.0 et versions ultérieures. Installer ccmux et assurez-vous que son démon est en cours d'exécution avant de connecter un client.
Câblez-le
Pour Claude Code, enregistrez un serveur stdio local pour votre compte utilisateur :
claude mcp add --transport stdio --scope user ccmux -- ccmux-mcp
Exécuter /mcp dans Claude Code pour vérifier la connexion. Voir Documentation Claude Code de MCP pour les étendues de configuration et le dépannage.
Pour une configuration à l'échelle du projet, utilisez .mcp.json à la racine du projet :
{
"mcpServers": {
"ccmux": { "command": "ccmux-mcp" }
}
}
Les autres clients MCP utilisent leur propre format de configuration. Ajoutez un serveur stdio avec la commande ccmux-mcp; utilisez le chemin absolu du binaire si le client ne le trouve pas sur PATH.
L'agent dispose désormais des outils suivants :
| Outil | Ce qu'il fait |
|---|---|
list_sessions |
sessions visibles par le démon connecté, avec état et agent |
read_pane |
les N dernières lignes de l'écran d'une session |
list_projects |
chaque projet sous la racine de vos projets |
list_conversations |
fils passés Claude / Codex / Cursor / Antigravity / pi / Grok |
get_usage |
jetons + coût, fenêtre glissante |
list_machines |
appareils du tailnet et présence de ccmuxd |
list_notes |
chaque note de démarque dans un projet |
read_note |
le contenu d'une note |
search_notes |
rechercher du texte dans les notes d'un projet |
get_daemon_health |
le démon est-il vivant |
Ces outils sont en lecture seule. Ils exposent les informations disponibles pour le démon connecté.
Quand vous voulez qu'il fasse des choses
Ajouter --allow-mutate aux arguments du serveur. Pour une configuration Claude Code à l'échelle du projet :
{
"mcpServers": {
"ccmux": { "command": "ccmux-mcp", "args": ["--allow-mutate"] }
}
}
Cela débloque :
| Outil | Effet |
|---|---|
spawn_session |
démarrer une session dans un projet existant |
spawn_bare_session |
démarrer une session non liée à un projet |
send_keys |
tapez dans le volet d'une session |
kill_session |
terminer une session |
Désactivé par défaut pour une raison : un agent pouvant send_keys dans votre travail est un agent qui peut saisir tout ce que vous pouvez saisir. Le drapeau est l'opt-in. Il n'y a pas de remplacement par outil : vous activez l'ensemble de la mutation ou vous le laissez désactivé.
Sans le flag, les outils de mutation sont absents de tools/list. Redémarrez le serveur MCP via votre client après avoir modifié ses arguments.
Piloter une machine distante
CCMUX_HOST=mini.tail-xxxxx.ts.net:7474 ccmux-mcp
# or
ccmux-mcp --host mini.tail-xxxxx.ts.net:7474
L'agent s'exécute localement et interroge le démon sur le Mac mini. Les outils de mutation nécessitent toujours --allow-mutate. Même protocole, mêmes outils — juste au-dessus de Tailscale HTTP au lieu du socket Unix local. Utile pour "Je code sur l'ordinateur portable, mais le travail de nuit Claude se fait sur le mini."
À quoi sert-il réellement ?
Quelques formes concrètes :
Orchestration multi-session. Un agent dans une session génère un assistant dans une autre (spawn_session dans un autre projet), lit sa sortie une fois l'opération terminée (read_pane), récupère le résultat et tue l'assistant. Aucun humain dans la boucle.
Travail cross-machine. Un agent sur votre ordinateur portable vérifie comment se porte son frère sur le Mac mini (list_sessions, read_pane), sans que vous inscriviez SSH. Ou démarrez une version de longue durée sur le mini (spawn_session
après avoir configuré le serveur MCP avec --host et --allow-mutate) et poursuit son travail local.
Mémoire du projet. Un agent lit les notes du projet en début de session (list_notes + read_note) afin de ne pas répéter le travail effectué par l'agent précédent. Les notes sont en simple démarque sur le disque ; l’agent n’a pas besoin de le savoir.
Sensibilisation aux coûts. Avant de lancer une grande exécution, l'agent vérifie
get_usage pour voir ce que vous avez dépensé cette semaine, et get_daemon_health
pour voir combien de sessions sont déjà en cours d'exécution.
Rien de tout cela ne nécessite une nouvelle infrastructure. ccmux possédait déjà tout cela. MCP est simplement le protocole qui le rend accessible aux agents.
Modèle de sécurité
- Transports. stdio. Le socket Unix du démon est limité à l’utilisateur ; l’accès HTTP nécessite une connexion à votre tailnet.
- Mutations. Désactivé sauf si vous retournez le drapeau.
- Lectures limitées.
read_panese limite à 500 lignes afin qu'un agent bogué ne puisse pas faire glisser le démon vers le bas en demandant le défilement complet à chaque appel. - Date limite par appel. Chaque gestionnaire s'exécute dans un contexte de 30 secondes.
Limites actuelles
Le serveur fournit des outils de requête/réponse. Les abonnements en direct, les autorisations de mutation par outil et une bibliothèque d'invites ne sont actuellement pas disponibles.
Guides associés
- Configurer un hôte distant avant de cibler son démon.
- Lire la référence HTTP API pour créer un client directement sur ccmuxd.
Contribuez à améliorer ccmux
Vous avez trouvé un bug, une explication peu claire ou une traduction à améliorer ? Toutes les contributions sont bienvenues. Ouvrez une issue ou proposez une pull request.
Vous avez repéré une erreur ou quelque chose de obsolète ? Modifier cette page sur GitHub.