Code Sandbox MCP

Un entorno seguro de pruebas para ejecutar código en contenedores Docker, que proporciona un ambiente seguro para aplicaciones de IA.

Documentación

Code Sandbox MCP 🐳

smithery badge

Un entorno de sandbox seguro para ejecutar código dentro de contenedores Docker. Este servidor MCP proporciona a las aplicaciones de IA un entorno seguro y aislado para ejecutar código mientras mantiene la seguridad mediante la contenedorización.

🌟 Características

  • Gestión flexible de contenedores: Crea y gestiona contenedores Docker aislados para la ejecución de código
  • Soporte de entornos personalizados: Usa cualquier imagen Docker como tu entorno de ejecución
  • Operaciones con archivos: Transferencia fácil de archivos y directorios entre el host y los contenedores
  • Ejecución de comandos: Ejecuta cualquier comando de shell dentro del entorno contenedorizado
  • Registros en tiempo real: Transmite los registros del contenedor y la salida de comandos en tiempo real
  • Actualizaciones automáticas: Verificación de actualizaciones integrada y actualización automática de binarios
  • Multiplataforma: Compatible con Linux, macOS y Windows

🚀 Instalación

Requisitos previos

Instalación rápida

Linux, MacOS

curl -fsSL https://raw.githubusercontent.com/Automata-Labs-team/code-sandbox-mcp/main/install.sh | bash

Windows

# Run in PowerShell
irm https://raw.githubusercontent.com/Automata-Labs-team/code-sandbox-mcp/main/install.ps1 | iex

El instalador:

  1. Verificará la instalación de Docker
  2. Descargará el binario apropiado para tu sistema
  3. Creará los archivos de configuración necesarios

Instalación manual

  1. Descarga la última versión para tu plataforma desde la página de versiones
  2. Coloca el binario en un directorio que esté en tu PATH
  3. Hazlo ejecutable (solo sistemas tipo Unix):
    chmod +x code-sandbox-mcp
    

🛠️ Herramientas disponibles

sandbox_initialize

Inicializa un nuevo entorno de cómputo para la ejecución de código. Crea un contenedor basado en la imagen Docker especificada.

Parámetros:

  • image (cadena, opcional): Imagen Docker para usar como entorno base
    • Predeterminado: 'python:3.12-slim-bookworm'

Devuelve:

  • container_id que se puede usar con otras herramientas para interactuar con este entorno

copy_project

Copia un directorio al sistema de archivos del sandbox.

Parámetros:

  • container_id (cadena, obligatorio): ID del contenedor devuelto por la llamada de inicialización
  • local_src_dir (cadena, obligatorio): Ruta a un directorio en el sistema de archivos local
  • dest_dir (cadena, opcional): Ruta para guardar el directorio src en el entorno del sandbox

write_file

Escribe un archivo en el sistema de archivos del sandbox.

Parámetros:

  • container_id (cadena, obligatorio): ID del contenedor devuelto por la llamada de inicialización
  • file_name (cadena, obligatorio): Nombre del archivo a crear
  • file_contents (cadena, obligatorio): Contenido a escribir en el archivo
  • dest_dir (cadena, opcional): Directorio donde crear el archivo (Predeterminado: ${WORKDIR})

sandbox_exec

Ejecuta comandos en el entorno del sandbox.

Parámetros:

  • container_id (cadena, obligatorio): ID del contenedor devuelto por la llamada de inicialización
  • commands (matriz, obligatorio): Lista de comando(s) para ejecutar en el entorno del sandbox
    • Ejemplo: ["apt-get update", "pip install numpy", "python script.py"]

copy_file

Copia un solo archivo al sistema de archivos del sandbox.

Parámetros:

  • container_id (cadena, obligatorio): ID del contenedor devuelto por la llamada de inicialización
  • local_src_file (cadena, obligatorio): Ruta a un archivo en el sistema de archivos local
  • dest_path (cadena, opcional): Ruta para guardar el archivo en el entorno del sandbox

sandbox_stop

Detiene y elimina un contenedor sandbox en ejecución.

Parámetros:

  • container_id (cadena, obligatorio): ID del contenedor a detener y eliminar

Descripción: Detiene correctamente el contenedor especificado con un tiempo de espera de 10 segundos y lo elimina junto con sus volúmenes.

Recurso de registros del contenedor

Un recurso dinámico que proporciona acceso a los registros del contenedor.

Ruta del recurso: containers://{id}/logs
Tipo MIME: text/plain
Descripción: Devuelve todos los registros del contenedor especificado como un único recurso de texto.

🔐 Características de seguridad

  • Entorno de ejecución aislado mediante contenedores Docker
  • Limitaciones de recursos mediante restricciones de contenedores Docker
  • Flujos separados de stdout y stderr

🔧 Configuración

Claude Desktop

El instalador crea automáticamente el archivo de configuración. Si necesitas configurarlo manualmente:

Linux

// ~/.config/Claude/claude_desktop_config.json
{
    "mcpServers": {
        "code-sandbox-mcp": {
            "command": "/path/to/code-sandbox-mcp",
            "args": [],
            "env": {}
        }
    }
}

macOS

// ~/Library/Application Support/Claude/claude_desktop_config.json
{
    "mcpServers": {
        "code-sandbox-mcp": {
            "command": "/path/to/code-sandbox-mcp",
            "args": [],
            "env": {}
        }
    }
}

Windows

// %APPDATA%\Claude\claude_desktop_config.json
{
    "mcpServers": {
        "code-sandbox-mcp": {
            "command": "C:\\path\\to\\code-sandbox-mcp.exe",
            "args": [],
            "env": {}
        }
    }
}

Otras aplicaciones de IA

Para otras aplicaciones de IA que admitan servidores MCP, configúralas para usar el binario code-sandbox-mcp como su backend de ejecución de código.

🛠️ Desarrollo

Si deseas compilar el proyecto localmente o contribuir a su desarrollo, consulta DEVELOPMENT.md.

📝 Licencia

Este proyecto está licenciado bajo la Licencia MIT: consulta el archivo LICENSE para más detalles.