hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Allows management of Docker with natural language, including composing containers, introspecting running containers, and managing Docker volumes, networks, and images.
Allows deployment of MySQL containers through natural language commands.
Allows deployment of NGINX containers through natural language commands.
Servidor Docker MCP
¡Un servidor MCP para gestionar Docker con lenguaje natural!
🪩¿Qué puede hacer?
- 🚀 Componer contenedores con lenguaje natural
- 🔍 Introspeccionar y depurar contenedores en ejecución
- 📀 Administrar datos persistentes con volúmenes Docker
❓¿Para quién es esto?
- Administradores de servidor: se conectan a motores Docker remotos, por ejemplo, para administrar un sitio web público.
- Tinkerers: ejecutan contenedores localmente y experimentan con aplicaciones de código abierto compatibles con Docker.
- Entusiastas de la IA: ¡superen los límites de lo que un LLM es capaz de hacer!
Manifestación
Una demostración rápida que muestra una implementación de WordPress utilizando lenguaje natural:
https://github.com/user-attachments/assets/65e35e67-bce0-4449-af7e-9f4dd773b4b3
🏎️ Inicio rápido
Instalar
Escritorio de Claude
En MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
En Windows: %APPDATA%/Claude/claude_desktop_config.json
Si no tiene instalado uv
, siga las instrucciones de instalación para su sistema: enlace
Luego agregue lo siguiente a su archivo de servidores MCP:
Por pura conveniencia, el servidor puede ejecutarse en un contenedor Docker.
Después de clonar este repositorio, construya la imagen de Docker:
Y luego agregue lo siguiente a su archivo de servidores MCP:
Tenga en cuenta que montamos el socket Docker como un volumen; esto garantiza que el servidor MCP pueda conectarse y controlar el demonio Docker local.
📝 Indicaciones
🎻 docker_compose
Utilice lenguaje natural para crear contenedores. Vea una demostración más arriba .
Proporcione un nombre de proyecto y una descripción de los contenedores deseados y deje que el LLM haga el resto.
Este mensaje indica al LLM que inicie un ciclo plan+apply
. Su interacción con el LLM implicará los siguientes pasos:
- Le das instrucciones al LLM sobre qué contenedores traer
- El LLM calcula un plan de lenguaje natural conciso y te lo presenta
- Usted o bien:
- Aplicar el plan
- Proporciona retroalimentación al LLM y el LLM recalcula el plan
Ejemplos
- Nombre:
nginx
, contenedores: "Implementar un contenedor nginx y exponerlo en el puerto 9000" - Nombre:
wordpress
, Contenedores: "Implementar un contenedor de WordPress y un contenedor MySQL compatible, exponiendo WordPress en el puerto 9000"
Reanudar un proyecto
Al iniciar un nuevo chat con este mensaje, el LLM recibirá el estado de todos los contenedores, volúmenes y redes creados con el name
de proyecto indicado.
Esto es principalmente útil para limpiar, en caso de que pierdas un chat que era responsable de muchos contenedores.
📔 Recursos
El servidor implementa un par de recursos para cada contenedor:
- Estadísticas: CPU, memoria, etc. de un contenedor
- Troncos: saca algunos troncos de un contenedor
🔨 Herramientas
Contenedores
list_containers
create_container
run_container
recreate_container
start_container
fetch_container_logs
stop_container
remove_container
Imágenes
list_images
pull_image
push_image
build_image
remove_image
Redes
list_networks
create_network
remove_network
Volúmenes
list_volumes
create_volume
remove_volume
🚧 Descargo de responsabilidad
Datos sensibles
NO CONFIGURE CONTENEDORES CON DATOS CONFIDENCIALES. Esto incluye claves API, contraseñas de bases de datos, etc.
Cualquier dato confidencial intercambiado con el LLM está inherentemente comprometido, a menos que el LLM se esté ejecutando en su máquina local.
Si está interesado en pasar secretos de forma segura a los contenedores, presente un problema en este repositorio con su caso de uso.
Revisión de contenedores creados
Revise cuidadosamente los contenedores que crea el LLM. Docker no es un entorno de pruebas seguro, por lo que el servidor MCP podría afectar al equipo host a través de Docker.
Por razones de seguridad, este servidor MCP no admite opciones sensibles de Docker como --privileged
o --cap-add/--cap-drop
. Si estas funciones le interesan, informe un problema en este repositorio con su caso de uso.
🛠️ Configuración
Este servidor utiliza el método from_env
del SDK de Docker para Python. Para obtener más información sobre la configuración, consulte la documentación .
💻 Desarrollo
Prefiera usar Devbox para configurar su entorno de desarrollo.
Consulte devbox.json
para obtener comandos de desarrollo útiles.
Después de configurar devbox, puedes configurar tu Claude MCP para usarlo:
This server cannot be installed
Un servidor MCP que permite administrar contenedores Docker a través del lenguaje natural, lo que permite a los usuarios componer, introspectar y depurar contenedores sin ejecutar comandos ellos mismos.
- 🪩 What can it do?
- ❓ Who is this for?
- Demo
- 🏎️ Quickstart
- 📝 Prompts
- 📔 Resources
- 🔨 Tools
- 🚧 Disclaimers
- 🛠️ Configuration
- 💻 Development