Sandbox MCP Server
Proporciona entornos Docker aislados para la ejecución segura de código.
Documentación
Sandbox MCP Server
Un servidor MCP que proporciona entornos Docker aislados para la ejecución de código. Este servidor permite:
- Crear contenedores con cualquier imagen Docker
- Escribir y ejecutar código en múltiples lenguajes de programación
- Instalar paquetes y configurar entornos de desarrollo
- Ejecutar comandos en contenedores aislados
Requisitos previos
- Python 3.9 o superior
- Docker instalado y en ejecución
- Administrador de paquetes uv (recomendado)
- Servidor Docker MCP (recomendado)
Instalación
- Clona este repositorio:
git clone <your-repo-url>
cd sandbox_server
- Crea y activa un entorno virtual con uv:
uv venv
source .venv/bin/activate # On Unix/MacOS
# Or on Windows:
# .venv\Scripts\activate
- Instala las dependencias:
uv pip install .
Integración con Claude Desktop
- Abre el archivo de configuración de Claude Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Agrega la configuración del servidor Sandbox:
{
"mcpServers": {
"sandbox": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/sandbox_server",
"run",
"sandbox_server.py"
],
"env": {
"PYTHONPATH": "/absolute/path/to/sandbox_server"
}
}
}
}
Reemplaza /absolute/path/to/sandbox_server con la ruta real a tu directorio del proyecto.
- Reinicia Claude Desktop
Ejemplos de uso
Uso básico
Una vez conectado a Claude Desktop, puedes:
- Crear un contenedor de Python:
Could you create a Python container and write a simple hello world program?
- Ejecutar código en diferentes lenguajes:
Could you create a C program that calculates the fibonacci sequence and run it?
- Instalar paquetes y usarlos:
Could you create a Python script that uses numpy to generate and plot some random data?
Guardar y reproducir entornos
El servidor proporciona varias formas de guardar y reproducir tus entornos de desarrollo:
Crear contenedores persistentes
Al crear un contenedor, puedes hacerlo persistente:
Could you create a persistent Python container with numpy and pandas installed?
Esto creará un contenedor que:
- Permanece en ejecución después de cerrar Claude Desktop
- Se puede acceder directamente a través de Docker
- Conserva todos los paquetes y archivos instalados
El servidor proporcionará instrucciones para:
- Acceder al contenedor directamente (
docker exec) - Detener e iniciar el contenedor
- Eliminarlo cuando ya no sea necesario
Guardar el estado del contenedor
Después de configurar tu entorno, puedes guardarlo como una imagen Docker:
Could you save the current container state as an image named 'my-ds-env:v1'?
Esto:
- Creará una nueva imagen Docker con todos tus:
- Paquetes instalados
- Archivos creados
- Cambios de configuración
- Proporcionará instrucciones para reutilizar el entorno
Luego puedes compartir esta imagen o usarla como punto de partida para nuevos contenedores:
Could you create a new container using the my-ds-env:v1 image?
Generar Dockerfiles
Para que tu entorno sea totalmente reproducible, puedes generar un Dockerfile:
Could you export a Dockerfile that recreates this environment?
El Dockerfile generado incluirá:
- Especificación de la imagen base
- Archivos creados
- Plantilla para pasos de configuración adicionales
Puedes usar este Dockerfile para:
- Compartir la configuración de tu entorno con otros
- Control de versiones de tu entorno de desarrollo
- Modificar y personalizar el proceso de construcción
- Desplegar en diferentes sistemas
Flujo de trabajo recomendado
Para entornos de desarrollo reproducibles:
- Crea un contenedor persistente:
Create a persistent Python container for data science work
- Instala los paquetes necesarios y configura el entorno:
Install numpy, pandas, and scikit-learn in the container
- Prueba tu configuración:
Create and run a test script to verify the environment
- Guarda el estado:
Save this container as 'ds-workspace:v1'
- Exporta un Dockerfile:
Generate a Dockerfile for this environment
Esto te da múltiples opciones para recrear tu entorno:
- Usar la imagen Docker guardada directamente
- Construir desde el Dockerfile con modificaciones
- Acceder al contenedor original si es necesario
Notas de seguridad
- Todo el código se ejecuta en contenedores Docker aislados
- Los contenedores se eliminan automáticamente después de su uso
- Los sistemas de archivos están aislados entre contenedores
- El acceso al sistema host está restringido
Estructura del proyecto
sandbox_server/
├── sandbox_server.py # Main server implementation
├── pyproject.toml # Project configuration
└── README.md # This file
Herramientas disponibles
El servidor proporciona tres herramientas principales:
create_container_environment: Crea un nuevo contenedor Docker con la imagen especificadacreate_file_in_container: Crea un archivo en un contenedorexecute_command_in_container: Ejecuta comandos en un contenedorsave_container_state: Guarda el estado del contenedor en un contenedor persistenteexport_dockerfile: exporta un archivo docker para crear un entorno persistenteexit_container: cierra un contenedor para limpiar el entorno cuando haya terminado