Sandbox MCP Server

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Provides isolated Docker environments for code execution, allowing users to create containers with any Docker image, run commands in isolated containers, and save container states as Docker images.

  • Mentioned as an example package that can be installed and used in the isolated containers for data analysis.

  • Mentioned as an example package that can be installed and used in the isolated containers for data manipulation.

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)

Instalación

  1. Clonar este repositorio:
git clone <your-repo-url> cd sandbox_server
  1. Crear y activar un entorno virtual con uv:
uv venv source .venv/bin/activate # On Unix/MacOS # Or on Windows: # .venv\Scripts\activate
  1. Instalar dependencias:
uv pip install .

Integración con Claude Desktop

  1. Abra el archivo de configuración de Claude Desktop:
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Ventanas: %APPDATA%\Claude\claude_desktop_config.json
  1. 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.

  1. Reiniciar Claude Desktop

Ejemplos de uso

Uso básico

Una vez conectado a Claude Desktop, podrá:

  1. Crear un contenedor de Python:
Could you create a Python container and write a simple hello world program?
  1. Ejecutar código en diferentes idiomas:
Could you create a C program that calculates the fibonacci sequence and run it?
  1. 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:

  1. Crea una nueva imagen de Docker con todos tus:
    • Paquetes instalados
    • Archivos creados
    • Cambios de configuración
  2. 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:

  1. Comparte la configuración de tu entorno con otros
  2. Control de versiones de su entorno de desarrollo
  3. Modificar y personalizar el proceso de construcción
  4. Implementar en diferentes sistemas

Flujo de trabajo recomendado

Para entornos de desarrollo reproducibles:

  1. Crear un contenedor persistente:
Create a persistent Python container for data science work
  1. Instale los paquetes necesarios y configure el entorno:
Install numpy, pandas, and scikit-learn in the container
  1. Pruebe su configuración:
Create and run a test script to verify the environment
  1. Guardar el estado:
Save this container as 'ds-workspace:v1'
  1. Exportar un Dockerfile:
Generate a Dockerfile for this environment

Esto 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 file

Herramientas disponibles

El servidor proporciona tres herramientas principales:

  1. create_container_environment : crea un nuevo contenedor Docker con la imagen especificada
  2. create_file_in_container : Crea un archivo en un contenedor
  3. execute_command_in_container : ejecuta comandos en un contenedor
  4. save_container_state : guarda el estado del contenedor en un contenedor persistente
  5. export_dockerfile : exporta un archivo docker para crear un entorno persistente
  6. exit_container : cierra un contenedor para limpiar el entorno cuando termina
-
security - not tested
F
license - not found
-
quality - not tested

Proporciona entornos Docker aislados para la ejecución de código, lo que permite a los usuarios crear y administrar contenedores, ejecutar código en varios idiomas, guardar y reproducir entornos de desarrollo, lo que garantiza la seguridad y el aislamiento.

  1. Prerequisites
    1. Installation
      1. Integration with Claude Desktop
        1. Usage Examples
          1. Basic Usage
          2. Saving and Reproducing Environments
        2. Security Notes
          1. Project Structure
            1. Available Tools
              ID: t3aw07q2a3