Qu’est-ce que mcp-server-docker ?
mcp-server-docker, écrit par Christian Kreiling (utilisateur GitHub ckreiling) et publié sur PyPI sous le même nom, laisse un agent gérer un moteur Docker via le SDK Docker Python. Il expose 19 outils sur les conteneurs, images, réseaux et volumes, deux modèles de ressources pour les logs et les stats en direct des conteneurs, et un prompt docker_compose qui fait planifier et appliquer au modèle un ensemble de conteneurs étiquetés, à la manière de Terraform. Il tourne sur stdio uniquement.
Il se connecte avec la méthode from_env du SDK Docker, si bien qu'il utilise le socket local à /var/run/docker.sock par défaut et honore DOCKER_HOST, DOCKER_TLS_VERIFY et DOCKER_CERT_PATH. Mettre DOCKER_HOST à une URL ssh:// atteint un moteur distant via SSH, ajouté en v0.2.0 en mai 2025. Il n'édite ni ne lit les fichiers docker-compose.yml, et il n'y a pas d'outil pour faire un exec dans un conteneur en cours ; une pull request en ajoutant un est ouverte depuis juillet 2025.
Le dépôt est sous licence GPL-3.0 et a environ 750 étoiles GitHub et 98 forks. Il a une seule version GitHub, v0.3.0 le 7 août 2026, qui l'a fait passer à la version 2 du SDK Python MCP ; avant cela, la dernière version PyPI était 0.2.1 en juin 2025. Le paquet a été téléchargé environ 7 900 fois sur le mois jusqu'au 28 octobre. Il n'est pas listé dans le registre MCP officiel.
Il ne doit pas être confondu avec docker/mcp-gateway, le propre MCP Toolkit de Docker, qui fait tourner les serveurs MCP du catalogue de Docker dans des conteneurs plutôt que de laisser un agent gérer vos conteneurs. QuantGeekDev/docker-mcp, encore recommandé dans certains comparatifs, n'a eu aucun commit depuis le 14 décembre 2024.
Installer mcp-server-docker
uvx mcp-server-dockermcp-server-docker vaut-il le coup ?
L'accès au socket Docker est l'accès à l'hôte, et ce serveur le transmet au modèle en entier. Le propre guide de sécurité de Docker dit que seuls les utilisateurs de confiance devraient contrôler le daemon, parce qu'un conteneur peut monter le répertoire racine de l'hôte et le changer sans restriction ; sa documentation d'installation dit que le groupe docker accorde des privilèges de niveau root. Le README du serveur note qu'il refuse --privileged et les flags de capacité, mais l'argument volumes sur create_container, run_container et recreate_container prend n'importe quel chemin d'hôte. Un agent victime d'injection de prompt peut donc demander un conteneur avec / monté à /host, ou avec le socket Docker lui-même monté à l'intérieur, et obtenir le même résultat sans aucun des deux flags.
Il n'y a aucun moyen de restreindre cela. Des 19 outils, cinq lisent (list_containers, list_images, list_networks, list_volumes et fetch_container_logs) et les 14 autres écrivent : créer, lancer, démarrer, arrêter et recréer des conteneurs ; tirer, pousser, construire et supprimer des images ; et créer et supprimer des réseaux et volumes. Le serveur définit des annotations d'outils MCP, marquant cinq outils de suppression et de recréation comme destructeurs pour que les clients puissent demander confirmation, mais il n'a pas de flag lecture seule, pas de liste d'autorisation et pas de restrictions de montage. Une pull request ouverte de mars 2026 bloquerait les montages de /proc, /sys, /dev et des sockets d'exécution ; elle n'a pas été fusionnée.
Les entrées qu'un agent lit sont aussi celles qu'un attaquant contrôle. Les logs de conteneurs, les labels d'images et les blocs d'état renvoyés par les outils de liste refluent tous dans le modèle, si bien qu'une ligne de log dans un conteneur que vous avez tiré d'un registre public est une route d'injection plausible. Une demande de divulgation déposée en avril 2026 dit que le rapporteur a envoyé par e-mail les détails d'un accès au système de fichiers hôte et d'une évasion de conteneur en mars et n'a eu aucune réponse ; une seconde demande de contact de sécurité privé a été déposée le 26 octobre. Aucun avis de sécurité GitHub n'a été publié.
La maintenance est lente plutôt que morte. La version d'août 2026 était une réécriture soigneuse vers le SDK Python version 2 avec des tests pour chaque outil, mais elle est venue 14 mois après la précédente, et 39 issues et pull requests sont ouvertes, dont 15 pull requests, y compris des correctifs pour une sortie de logs non bornée et un résultat list_containers qu'un utilisateur a mesuré à environ 103 Ko pour 22 conteneurs. Paramiko, utilisé pour SSH, est épinglé en dessous de 4.0, ce qui, selon une issue ouverte, laisse un avis connu non corrigé.
La prise en charge SSH est la fonction qui le distingue du fait de lancer le CLI Docker via un outil shell, et le prompt plan-et-applique est une touche réfléchie. Aucun ne change le compromis central : il convient à une VM jetable ou à un hôte Docker dédié sans rien dessus qui vaille d'être volé, et le serveur Kubernetes, avec ses modes lecture seule et liste d'autorisation, est la façon mieux gardée de laisser un agent approcher une infrastructure partagée.
Là où il fait la différence
Un développeur qui essaie des applis auto-hébergées sur une VM Linux de rechange
Monter WordPress et un conteneur MySQL à partir d'une description en langage naturel
Invoquez le prompt docker_compose avec un nom de projet ; le modèle propose un plan, attend l'application, puis appelle run_container et create_volume avec un label de projet pour pouvoir reprendre ou détruire l'ensemble plus tard. Gratuit, et sur une VM que vous pouvez reconstruire l'exposition de niveau root coûte peu.
Un fondateur solo qui fait tourner un site marketing sur un hôte Docker loué
Vérifier pourquoi le conteneur du site redémarre sans cesse et le redémarrer depuis une fenêtre de chat
Réglez DOCKER_HOST sur ssh://user@host et l'agent peut lire les compteurs de redémarrage avec list_containers et les 100 dernières lignes de log avec fetch_container_logs. La même session peut aussi supprimer des volumes ou monter le système de fichiers hôte, alors elle a sa place sur un hôte ne contenant rien d'autre que ce site.
Un responsable plateforme dans une entreprise de 30 personnes qui relit les serveurs MCP que le personnel peut installer
Décider si le serveur Docker est acceptable sur les portables des développeurs
La réponse dépend du socket : sur Linux n'importe quel appel d'outil peut créer un conteneur qui monte le répertoire home ou /, et le serveur n'a aucun interrupteur pour l'empêcher. Une politique le limitant à une VM séparée ou à un daemon Docker rootless est moins chère qu'auditer chaque prompt.
Avant de vous engager
- Mise en route
- Ajoutez uvx mcp-server-docker à la configuration du client (le README documente Claude Desktop) ; il a besoin d'uv et de Python 3.12 ou plus récent. Un Dockerfile est fourni, mais vous construisez l'image vous-même et montez /var/run/docker.sock dedans. Si docker ps marche pour votre utilisateur, le premier appel d'outil marche en quelques minutes.
- Intégrations
- 19 outils : cinq en lecture seule (list_containers, list_images, list_networks, list_volumes, fetch_container_logs) et 14 qui écrivent, de run_container et recreate_container à build_image, push_image et remove_volume. Deux ressources servent les logs et stats des conteneurs ; un prompt, docker_compose, fait tourner une boucle plan-et-applique sur des ressources étiquetées.
- Données et confidentialité
- Il peut faire tout ce que le daemon Docker peut, ce qui sur une installation standard est root sur l'hôte, et via SSH la même chose sur l'hôte distant. Les logs, labels et état des conteneurs issus d'images non fiables atteignent le modèle. Tout tourne localement ; aucun avis n'est publié, et deux demandes publiques de signaler des vulnérabilités en privé sont sans réponse.
- Coût à grande échelle
- Gratuit ; le coût est le contexte. list_containers renvoie un état complet de niveau inspect, qu'un utilisateur a mesuré à environ 103 Ko pour 22 conteneurs, et fetch_container_logs accepte tail=all sans limite d'octets.
- Limites
- Pas d'exec dans les conteneurs en cours, pas de prise en charge des fichiers Docker Compose, pas de gestion de secrets (le README dit de ne pas passer de données sensibles) et pas d'options --privileged ou de capacité. Stdio uniquement. recreate_container ne reporte pas les réglages de l'ancien conteneur.
Les points forts
- 19 outils couvrent conteneurs, images, réseaux et volumes
- Moteurs distants via SSH en réglant DOCKER_HOST
- Les outils destructeurs portent des annotations MCP que les clients peuvent barrer
- Tests pour chaque outil depuis la réécriture v0.3.0
Les points faibles
- Pas de mode lecture seule, de liste d'autorisation ni de restrictions de montage
- N'importe quel chemin d'hôte peut être monté, y compris / et le socket
- Demandes de divulgation de sécurité sans réponse depuis avril 2026
- Une version en 16 mois jusqu'à octobre 2026
Idéal pour
Les développeurs et utilisateurs de home-lab qui veulent qu'un agent fasse tourner des conteneurs sur un hôte Docker jetable ou dédié qu'ils seraient contents de reconstruire.
Alternatives à mcp-server-docker
mcp-server-docker : questions fréquentes
- mcp-server-docker vaut-il le coup ?
- Un serveur Docker soigné pour une machine jetable, mais il donne à un agent un contrôle équivalent à root de l'hôte sans mode lecture seule, et le mainteneur n'a pas répondu à deux rapports de sécurité. Nous lui donnons 3.3 sur 5.
- Combien coûte mcp-server-docker ?
- Gratuit et open source (GPL-3.0). Vous payez seulement les hôtes qui font tourner Docker.
- Quels sont les inconvénients de mcp-server-docker ?
- Pas de mode lecture seule, de liste d'autorisation ni de restrictions de montage; n'importe quel chemin d'hôte peut être monté, y compris / et le socket; demandes de divulgation de sécurité sans réponse depuis avril 2026; une version en 16 mois jusqu'à octobre 2026.
- À qui s’adresse mcp-server-docker ?
- Les développeurs et utilisateurs de home-lab qui veulent qu'un agent fasse tourner des conteneurs sur un hôte Docker jetable ou dédié qu'ils seraient contents de reconstruire.
- Combien coûte mcp-server-docker pour une équipe ou en production ?
- Gratuit ; le coût est le contexte. list_containers renvoie un état complet de niveau inspect, qu'un utilisateur a mesuré à environ 103 Ko pour 22 conteneurs, et fetch_container_logs accepte tail=all sans limite d'octets.
- mcp-server-docker est-il sûr pour les données de l’entreprise ?
- Il peut faire tout ce que le daemon Docker peut, ce qui sur une installation standard est root sur l'hôte, et via SSH la même chose sur l'hôte distant. Les logs, labels et état des conteneurs issus d'images non fiables atteignent le modèle. Tout tourne localement ; aucun avis n'est publié, et deux demandes publiques de signaler des vulnérabilités en privé sont sans réponse.
- Quelles sont les meilleures alternatives à mcp-server-docker ?
- Les alternatives les plus proches que nous avons testées sont MCP Server Kubernetes, Filesystem (reference server) et Terraform MCP Server.
Réponses vérifiées le 28 oct. 2026.