MCP Docker Sandbox Interpreter

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

  1. Clonar este repositorio:
    git clone https://github.com/yourusername/mcp-docker-interpreter.git cd mcp-docker-interpreter
  2. Crear y activar un entorno virtual:
    python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
  3. Instalar dependencias:
    pip install -r requirements.txt

Uso

Iniciando el servidor MCP

Inicie el servidor ejecutando:

# For Colima users: export DOCKER_HOST="unix:///Users/username/.colima/default/docker.sock" # Run the server uv run mcp dev main.py

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:

{ "mcpServers": { "docker-sandbox": { "command": "python", "args": ["/absolute/path/to/your/main.py"], "env": { "DOCKER_HOST": "unix:///path/to/your/docker.sock" } } } }

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:

  1. initialize_sandbox : crea un nuevo contenedor Docker para la ejecución de código
    Arguments: - image: The Docker image to use (default: "alpine:latest")
  2. execute_code : ejecuta el código en el espacio aislado inicializado
    Arguments: - code: The code string to execute - language: Programming language (default: "python")
  3. stop_sandbox : detiene y elimina el contenedor
    No arguments needed

Cómo funciona

  1. Cuando se llama initialize_sandbox , el sistema:
    • Crea un contenedor Docker basado en Alpine Linux
    • Instala Python y otras dependencias
    • Establece restricciones de seguridad
  2. 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.
  3. 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

mcp-docker-interpreter/ ├── main.py # Main implementation of MCP server and Docker sandbox ├── requirements.txt # Project dependencies └── README.md # This file

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

  1. 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
  2. La creación del contenedor falla :
    • Verifique que tenga permiso para crear contenedores Docker
    • Asegúrese de que la imagen base especificada sea accesible
  3. 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

Licencia MIT

Expresiones de gratitud

-
security - not tested
F
license - not found
-
quality - not tested

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.

  1. Overview
    1. Features
      1. Requirements
        1. Installation
          1. Usage
            1. Starting the MCP Server
            2. Connecting to an AI Assistant
            3. MCP Tools
          2. How It Works
            1. Security Considerations
              1. Development
                1. Project Structure
                2. Adding New Language Support
              2. Troubleshooting
                1. Common Issues
              3. License
                1. Acknowledgements
                  ID: fqh4e3dpgp