Servidor MCP de Sandbox
Un servidor MCP que proporciona entornos Docker aislados para la ejecución de código. Este servidor permite:
Crea contenedores con cualquier imagen de 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
Prerrequisitos
Python 3.9 o superior
Docker instalado y en ejecución
gestor de paquetes uv (recomendado)
Servidor Docker MCP (recomendado)
Related MCP server: Python MCP Sandbox
Instalación
Clonar este repositorio:
git clone <your-repo-url>
cd sandbox_serverCrear y activar un entorno virtual con uv:
uv venv
source .venv/bin/activate # On Unix/MacOS
# Or on Windows:
# .venv\Scripts\activateInstalar dependencias:
uv pip install .Integración con Claude Desktop
Abra el archivo de configuración de Claude Desktop:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonVentanas:
%APPDATA%\Claude\claude_desktop_config.json
Agregue 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"
}
}
}
}Reemplace /absolute/path/to/sandbox_server con la ruta real al directorio de su proyecto.
Reiniciar Claude Desktop
Ejemplos de uso
Uso básico
Una vez conectado a Claude Desktop, podrá:
Crear un contenedor de Python:
Could you create a Python container and write a simple hello world program?Ejecutar código en diferentes idiomas:
Could you create a C program that calculates the fibonacci sequence and run it?Instalar paquetes y utilizarlos:
Could you create a Python script that uses numpy to generate and plot some random data?Salvando y reproduciendo entornos
El servidor proporciona varias formas de guardar y reproducir sus entornos de desarrollo:
Creación de 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:
Sigue funcionando después de que Claude Desktop se cierra
Se puede acceder directamente a través de Docker
Conserva todos los paquetes y archivos instalados
El servidor proporcionará instrucciones para:
Acceder directamente al contenedor (
docker exec)Parada y arranque del contenedor
Quitarlo cuando ya no sea necesario
Guardar el estado del contenedor
Después de configurar su entorno, puede guardarlo como una imagen de Docker:
Could you save the current container state as an image named 'my-ds-env:v1'?Esto hará lo siguiente:
Crea una nueva imagen de Docker con todos tus:
Paquetes instalados
Archivos creados
Cambios de configuración
Proporcionar instrucciones para reutilizar el medio ambiente.
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?Generando Dockerfiles
Para que su entorno sea totalmente reproducible, puede 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:
Comparte la configuración de tu entorno con otros
Control de versiones de su entorno de desarrollo
Modificar y personalizar el proceso de construcción
Implementar en diferentes sistemas
Flujo de trabajo recomendado
Para entornos de desarrollo reproducibles:
Crear un contenedor persistente:
Create a persistent Python container for data science workInstale los paquetes necesarios y configure el entorno:
Install numpy, pandas, and scikit-learn in the containerPruebe su configuración:
Create and run a test script to verify the environmentGuardar el estado:
Save this container as 'ds-workspace:v1'Exportar un Dockerfile:
Generate a Dockerfile for this environmentEsto le brinda múltiples opciones para recrear su entorno:
Utilice directamente la imagen de Docker guardada
Construir desde el Dockerfile con modificaciones
Acceda al contenedor original si es necesario
Notas de seguridad
Todo el código se ejecuta en contenedores Docker aislados
Los contenedores se retiran 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 fileHerramientas 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 termina