Integrations
Uses Alpine Linux as the base container image for the secure execution environment
Provides a secure sandbox for executing code within isolated Docker containers, with resource limitations and security restrictions
Includes Mermaid diagram support for visualizing the MCP server architecture and workflow
Intérprete de Docker Sandbox de MCP
Un entorno de ejecución de código seguro basado en Docker para el Protocolo de Contexto de Modelo (MCP).
Descripción general
Este proyecto proporciona un entorno de pruebas seguro para ejecutar código mediante MCP (Protocolo de Contexto de Modelo). Permite a los asistentes de IA ejecutar código de forma segura sin necesidad de acceder directamente al sistema host, ejecutando todo el código dentro de contenedores Docker aislados.
Características
- Ejecución segura : el código se ejecuta en contenedores Docker aislados con estrictas limitaciones de seguridad.
- Compatibilidad con varios idiomas : actualmente es compatible con Python con fácil extensibilidad para otros idiomas.
- Limitaciones de recursos : restricciones de CPU y memoria para evitar el abuso
- Integración MCP : Totalmente compatible con el Protocolo de Contexto de Modelo
- Configuración automática : maneja la creación de contenedores, la instalación de dependencias y la limpieza
Requisitos
- Docker (Escritorio o Motor)
- Python 3.10+
- SDK de MCP (
pip install mcp
) - SDK de Python para Docker (
pip install docker
)
Instalación
- Clonar este repositorio:Copy
- Crear y activar un entorno virtual:Copy
- Instalar dependencias:Copy
Uso
Iniciando el servidor MCP
Inicie el servidor ejecutando:
Conexión a un asistente de IA
Puede conectar este servidor MCP a asistentes de IA que admitan el Protocolo de contexto de modelo:
Cursor
En Cursor, agregue lo siguiente a la configuración de MCP:
Reemplace las rutas con sus rutas de archivo reales.
Escritorio de Claude
De manera similar a Cursor, agregue la configuración a la configuración MCP de Claude Desktop.
Herramientas MCP
Este servidor MCP expone tres herramientas principales:
- initialize_sandbox : crea un nuevo contenedor Docker para la ejecución de códigoCopy
- execute_code : ejecuta el código en el espacio aislado inicializadoCopy
- stop_sandbox : detiene y elimina el contenedorCopy
Cómo funciona
- Cuando se llama
initialize_sandbox
, el sistema:- Crea un contenedor Docker basado en Alpine Linux
- Instala Python y otras dependencias
- Establece restricciones de seguridad
- Cuando se llama
execute_code
:- El código se ejecuta dentro del contenedor aislado
- Se capturan la salida estándar y los errores.
- Los resultados se devuelven a la aplicación que realiza la llamada.
- Cuando se llama
stop_sandbox
:- Se detiene y se retira el contenedor.
- Todos los recursos están liberados
Consideraciones de seguridad
Este sandbox implementa varias medidas de seguridad:
- Los contenedores tienen un uso restringido de CPU y memoria
- Los contenedores se ejecutan con privilegios mínimos
- El acceso a la red está deshabilitado de forma predeterminada
- Los contenedores son desechables y se limpian después de su uso.
Desarrollo
Estructura del proyecto
Agregar nuevo soporte para idiomas
Para agregar soporte para un nuevo lenguaje de programación, modifique el método run_code
en la clase DockerSandbox
para manejar el nuevo lenguaje.
Solución de problemas
Problemas comunes
- Error de conexión de Docker :
- Asegúrese de que Docker se esté ejecutando
- Compruebe que la variable de entorno DOCKER_HOST esté configurada correctamente para su instalación de Docker
- La creación del contenedor falla :
- Verifique que tenga permiso para crear contenedores Docker
- Asegúrese de que la imagen base especificada sea accesible
- La ejecución del código falla :
- Compruebe que el entorno de ejecución del lenguaje esté instalado correctamente en el contenedor
- Verifique que el código sea válido para el idioma especificado
Licencia
Expresiones de gratitud
- Este proyecto utiliza el Protocolo de Contexto Modelo
- Desarrollado con Docker SDK para Python
This server cannot be installed
Un entorno seguro basado en Docker que permite a los asistentes de IA ejecutar código de forma segura sin acceso directo al sistema host ejecutando todo el código dentro de contenedores aislados.