¿Qué es mcp-server-docker?
mcp-server-docker, escrito por Christian Kreiling (usuario de GitHub ckreiling) y publicado en PyPI con el mismo nombre, permite a un agente gestionar un motor Docker a través del Docker SDK de Python. Expone 19 herramientas para contenedores, imágenes, redes y volúmenes, dos plantillas de recursos para los registros y las estadísticas en vivo de los contenedores, y un prompt docker_compose con el que el modelo planifica y aplica un conjunto de contenedores etiquetados, al estilo de Terraform. Solo funciona por stdio.
Se conecta con el método from_env del Docker SDK, así que usa por defecto el socket local en /var/run/docker.sock y respeta DOCKER_HOST, DOCKER_TLS_VERIFY y DOCKER_CERT_PATH. Si DOCKER_HOST apunta a una URL ssh://, llega a un motor remoto por SSH, función añadida en la v0.2.0 en mayo de 2025. No edita ni lee archivos docker-compose.yml, y no hay herramienta para hacer exec en un contenedor en marcha; un pull request que la añade lleva abierto desde julio de 2025.
El repositorio tiene licencia GPL-3.0 y unas 750 estrellas en GitHub y 98 forks. Tiene una sola versión en GitHub, la v0.3.0 del 7 de agosto de 2026, que lo pasó a la versión 2 del SDK de Python de MCP; antes de eso, la última versión en PyPI era la 0.2.1, de junio de 2025. El paquete se descargó unas 7.900 veces en el mes hasta el 28 de octubre. No figura en el registro oficial de MCP.
No debe confundirse con docker/mcp-gateway, el MCP Toolkit de la propia Docker, que ejecuta en contenedores servidores MCP del catálogo de Docker en lugar de dejar que un agente gestione tus contenedores. QuantGeekDev/docker-mcp, que algunas recopilaciones aún recomiendan, no tiene ningún commit desde el 14 de diciembre de 2024.
Cómo instalar mcp-server-docker
uvx mcp-server-docker¿Merece la pena mcp-server-docker?
Acceder al socket de Docker es acceder al host, y este servidor se lo pasa entero al modelo. La guía de seguridad de la propia Docker dice que solo usuarios de confianza deben controlar el daemon, porque un contenedor puede montar el directorio raíz del host y modificarlo sin restricciones; su documentación de instalación dice que el grupo docker concede privilegios de nivel root. El README del servidor indica que rechaza --privileged y los indicadores de capabilities, pero el argumento volumes de create_container, run_container y recreate_container acepta cualquier ruta del host. Un agente con un prompt inyectado puede pedir un contenedor con / montado en /host, o con el propio socket de Docker montado dentro, y lograr lo mismo sin ninguno de esos indicadores.
No hay forma de acotarlo. De las 19 herramientas, cinco leen (list_containers, list_images, list_networks, list_volumes y fetch_container_logs) y las otras 14 escriben: crear, ejecutar, iniciar, detener y recrear contenedores; descargar, subir, construir y eliminar imágenes; y crear y eliminar redes y volúmenes. El servidor define anotaciones de herramientas MCP y marca como destructivas cinco herramientas de eliminación y recreación para que los clientes puedan pedir confirmación, pero no tiene indicador de solo lectura, ni lista de permitidos, ni restricciones de montaje. Un pull request abierto desde marzo de 2026 bloquearía los montajes de /proc, /sys, /dev y los sockets de runtime; no se ha fusionado.
Las entradas que lee un agente son también las que controla un atacante. Los registros de los contenedores, las etiquetas de las imágenes y los bloques de estado que devuelven las herramientas de listado vuelven al modelo, así que una línea de registro en un contenedor descargado de un registro público es una vía de inyección plausible. Una solicitud de divulgación abierta en abril de 2026 dice que el autor envió por correo en marzo detalles sobre acceso al sistema de archivos del host y escape de contenedores y no recibió respuesta; el 26 de octubre se abrió una segunda solicitud de un contacto de seguridad privado. No se ha publicado ningún aviso de seguridad en GitHub.
El mantenimiento es lento, no inexistente. La versión de agosto de 2026 fue una reescritura cuidadosa sobre la versión 2 del SDK de Python con tests para cada herramienta, pero llegó 14 meses después de la anterior, y hay 39 incidencias y pull requests abiertos, 15 de ellos pull requests, incluidas correcciones para una salida de registros sin límite y un resultado de list_containers que un usuario midió en unos 103 KB para 22 contenedores. Paramiko, que se usa para SSH, está fijado por debajo de la 4.0, lo que según una incidencia abierta deja sin parchear un aviso conocido.
El soporte de SSH es la función que lo distingue de ejecutar la CLI de Docker con una herramienta de shell, y el prompt de planificar y aplicar es un detalle bien pensado. Ninguno cambia la contrapartida de fondo: encaja en una VM desechable o en un host Docker dedicado sin nada que valga la pena robar, y el servidor de Kubernetes, con sus modos de solo lectura y lista de permitidos, es la forma mejor protegida de dejar que un agente se acerque a infraestructura compartida.
Dónde se gana su sitio
Un desarrollador que prueba apps autoalojadas en una VM Linux de sobra
Levantar WordPress y un contenedor de MySQL a partir de una descripción en lenguaje natural
Invoca el prompt docker_compose con un nombre de proyecto; el modelo propone un plan, espera a apply y después llama a run_container y create_volume con una etiqueta de proyecto para poder retomar o destruir el conjunto más tarde. Gratis, y en una VM que puedes reconstruir la exposición a nivel root cuesta poco.
Una fundadora en solitario con una web de marketing en un único host Docker alquilado
Averiguar por qué el contenedor de la web se reinicia una y otra vez y reiniciarlo desde una ventana de chat
Define DOCKER_HOST como ssh://user@host y el agente puede leer los recuentos de reinicios con list_containers y las últimas 100 líneas de registro con fetch_container_logs. La misma sesión también puede eliminar volúmenes o montar el sistema de archivos del host, así que solo debe usarse en un host que no contenga nada más que esa web.
Un responsable de plataforma en una empresa de 30 personas que revisa qué servidores MCP puede instalar la plantilla
Decidir si el servidor de Docker es aceptable en los portátiles de los desarrolladores
La respuesta depende del socket: en Linux cualquier llamada a herramienta puede crear un contenedor que monte el directorio personal o /, y el servidor no tiene ningún interruptor para impedirlo. Una política que lo limite a una VM aparte o a un daemon de Docker rootless sale más barata que auditar cada prompt.
Antes de decidirte
- Puesta en marcha
- Añade uvx mcp-server-docker a la configuración del cliente (el README documenta Claude Desktop); necesita uv y Python 3.12 o posterior. Se incluye un Dockerfile, pero la imagen la construyes tú y montas dentro /var/run/docker.sock. Si docker ps funciona con tu usuario, la primera llamada a herramienta funciona en minutos.
- Integraciones
- 19 herramientas: cinco de solo lectura (list_containers, list_images, list_networks, list_volumes, fetch_container_logs) y 14 que escriben, de run_container y recreate_container a build_image, push_image y remove_volume. Dos recursos sirven los registros y las estadísticas de los contenedores; un prompt, docker_compose, ejecuta un ciclo de planificar y aplicar sobre recursos etiquetados.
- Datos y privacidad
- Puede hacer todo lo que pueda el daemon de Docker, que en una instalación estándar es root en el host, y por SSH lo mismo en el host remoto. Los registros, las etiquetas y el estado de contenedores de imágenes no fiables llegan al modelo. Todo se ejecuta en local; no hay avisos publicados, y dos solicitudes públicas para informar de vulnerabilidades en privado siguen sin respuesta.
- Coste a escala
- Gratis; el coste es el contexto. list_containers devuelve el estado completo a nivel de inspect, que un usuario midió en unos 103 KB para 22 contenedores, y fetch_container_logs acepta tail=all sin límite de bytes.
- Límites
- Sin exec en contenedores en marcha, sin soporte de archivos de Docker Compose, sin gestión de secretos (el README dice que no se pasen datos sensibles) y sin opciones --privileged ni de capabilities. Solo stdio. recreate_container no conserva la configuración del contenedor anterior.
Lo bueno
- 19 herramientas cubren contenedores, imágenes, redes y volúmenes
- Motores remotos por SSH definiendo DOCKER_HOST
- Las herramientas destructivas llevan anotaciones MCP que los clientes pueden controlar
- Tests para cada herramienta desde la reescritura de la v0.3.0
Lo malo
- Sin modo de solo lectura, lista de permitidos ni restricciones de montaje
- Se puede montar cualquier ruta del host, incluidos / y el socket
- Solicitudes de divulgación de seguridad sin respuesta desde abril de 2026
- Una sola versión en los 16 meses hasta octubre de 2026
Ideal para
Desarrolladores y usuarios de home lab que quieren que un agente ejecute contenedores en un host Docker desechable o dedicado que no les importaría reconstruir.
Alternativas a mcp-server-docker
mcp-server-docker: preguntas frecuentes
- ¿Merece la pena mcp-server-docker?
- Un servidor de Docker ordenado para una máquina desechable, pero da a un agente un control del host equivalente a root sin modo de solo lectura, y el mantenedor no ha respondido a dos avisos de seguridad. Le damos un 3.3 sobre 5.
- ¿Cuánto cuesta mcp-server-docker?
- Gratis y de código abierto (GPL-3.0). Solo pagas los hosts que ejecutan Docker.
- ¿Qué inconvenientes tiene mcp-server-docker?
- Sin modo de solo lectura, lista de permitidos ni restricciones de montaje; se puede montar cualquier ruta del host, incluidos / y el socket; solicitudes de divulgación de seguridad sin respuesta desde abril de 2026; una sola versión en los 16 meses hasta octubre de 2026.
- ¿Para quién es mcp-server-docker?
- Desarrolladores y usuarios de home lab que quieren que un agente ejecute contenedores en un host Docker desechable o dedicado que no les importaría reconstruir.
- ¿Cuánto cuesta mcp-server-docker para un equipo o en producción?
- Gratis; el coste es el contexto. list_containers devuelve el estado completo a nivel de inspect, que un usuario midió en unos 103 KB para 22 contenedores, y fetch_container_logs acepta tail=all sin límite de bytes.
- ¿Es mcp-server-docker seguro para los datos de la empresa?
- Puede hacer todo lo que pueda el daemon de Docker, que en una instalación estándar es root en el host, y por SSH lo mismo en el host remoto. Los registros, las etiquetas y el estado de contenedores de imágenes no fiables llegan al modelo. Todo se ejecuta en local; no hay avisos publicados, y dos solicitudes públicas para informar de vulnerabilidades en privado siguen sin respuesta.
- ¿Cuáles son las mejores alternativas a mcp-server-docker?
- Las alternativas más cercanas que hemos analizado son MCP Server Kubernetes, Filesystem (reference server) y Terraform MCP Server.
Respuestas comprobadas el 28 oct 2026.