MCP Code Sandbox Server

Servidor Sandbox de código MCP

Un servidor de Protocolo de Comunicación de Mensajes (MCP) extensible que proporciona capacidades de ejecución segura de código en entornos aislados. Este servidor sigue el estándar MCP, lo que lo hace compatible con Claude for Desktop y otros clientes MCP.

Características

  • Crear entornos sandbox aislados para la ejecución de código
  • Ejecutar código Python de forma segura
  • Realizar operaciones con archivos (enumerar, leer, escribir)
  • Instalar paquetes de Python en el entorno sandbox
  • Arquitectura extensible con interfaz de intérprete de código abstracto
  • Diseño modular con clara separación de preocupaciones

Arquitectura

El servidor está construido con una arquitectura modular y extensible:

Componentes principales

  • Interfaz de intérprete abstracto : permite integrar diferentes backends de ejecución de código
  • Administración de Sandbox : Herramientas para crear y administrar entornos Sandbox
  • Ejecución de código : herramientas para ejecutar código e instalar paquetes
  • Operaciones con archivos : herramientas para gestionar archivos dentro de entornos sandbox

Estructura del proyecto

├── src/ │ └── sandbox/ │ ├── __pycache__/ │ ├── e2b/ │ │ ├── __pycache__/ │ │ ├── __init__.py │ │ ├── e2b_file_interface.py │ │ └── e2b_interpreter.py │ ├── __init__.py │ ├── code_interpreter.py │ ├── file_interface.py │ └── interpreter_factory.py ├── tools/ │ ├── __pycache__/ │ ├── __init__.py │ ├── code_execution_tools.py │ ├── file_tools.py │ └── sandbox_tools.py ├── main.py ├── .env ├── .gitignore ├── .python-version ├── pyproject.toml ├── README.md └── uv.lock

Prerrequisitos

  • Python 3.10 o superior
  • Clave API E2B (para el intérprete E2B predeterminado)

Instalación

  1. Clonar este repositorio:
    git clone https://github.com/yourusername/mcp-code-sandbox.git cd mcp-code-sandbox
  2. Configurar un entorno virtual:
    # Using venv python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Or using uv (recommended) uv init uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
  3. Instalar los paquetes necesarios:
    # Using pip pip install fastmcp python-dotenv e2b-code-interpreter # Or using uv uv add fastmcp python-dotenv e2b-code-interpreter
  4. Configurar variables de entorno:
    # Create a .env file with the following variables E2B_API_KEY=your_e2b_api_key_here INTERPRETER_TYPE=e2b # Default, can be changed to other implemented interpreters

Uso

Ejecución del servidor independiente

Puede ejecutar el servidor directamente desde la línea de comandos:

python main.py

Esto iniciará el servidor usando el transporte stdio, haciéndolo compatible con Claude for Desktop.

Uso con Claude para escritorio

  1. Asegúrate de tener instalada la última versión de Claude for Desktop
  2. Abra el archivo de configuración de Claude for Desktop:
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Ventanas: %APPDATA%\Claude\claude_desktop_config.json
  3. Agregue la configuración de su servidor sandbox de código:
    { "mcpServers": { "code-sandbox": { "command": "python", "args": [ "/ABSOLUTE/PATH/TO/main.py" ] } } }
    O si estás usando uv :
    { "mcpServers": { "code-sandbox": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/PROJECT_DIRECTORY", "run", "main.py" ] } } }
  4. Guarde el archivo y reinicie Claude for Desktop

Herramientas disponibles

El servidor proporciona las siguientes herramientas:

Administración de Sandbox

  • create_sandbox : Crea un nuevo entorno sandbox
  • close_sandbox : Cierra y limpia un sandbox
  • get_sandbox_status : Verificar el estado de los entornos sandbox

Ejecución de código

  • execute_code : Ejecutar código Python en un entorno aislado
  • install_package : Instalar un paquete de Python
  • create_run_close : Herramienta todo en uno que crea un espacio aislado, ejecuta código y limpia

Operaciones con archivos

  • list_files : Lista los archivos en el sandbox
  • read_file : Lee el contenido de un archivo
  • write_file : Escribe contenido en un archivo
  • upload_file : Sube un archivo al sandbox

Ampliación con nuevos intérpretes

El sistema está diseñado para ser extensible. Para añadir un nuevo intérprete de código:

  1. Cree un nuevo directorio en src/sandbox/ para la implementación de su intérprete
  2. Implementar las interfaces definidas en src/sandbox/code_interpreter.py y src/sandbox/file_interface.py
  3. Agregue el nuevo tipo de intérprete a src/sandbox/interpreter_factory.py
  4. Configure la variable de entorno INTERPRETER_TYPE para su nuevo intérprete

Ejemplo de implementación de un nuevo intérprete:

# src/sandbox/my_backend/my_interpreter.py from src.sandbox.code_interpreter import CodeInterpreter, ExecutionResult from src.sandbox.file_interface import FileInterface class MyFileInterface(FileInterface): # Implement the required methods class MyInterpreter(CodeInterpreter): # Implement the required methods # Update src/sandbox/interpreter_factory.py to include your new interpreter

Descripciones de los módulos

Núcleo de Sandbox ( src/sandbox/ )

  • code_interpreter.py : Clase base abstracta para intérpretes de código
  • file_interface.py : Interfaz abstracta para operaciones con archivos
  • interpreter_factory.py : Fábrica para crear instancias de intérprete de código

Implementación E2B ( src/sandbox/e2b/ )

  • e2b_interpreter.py : implementación E2B del intérprete de código
  • e2b_file_interface.py : implementación E2B de operaciones con archivos

Herramientas ( tools/ )

  • sandbox_tools.py : Herramientas para la administración de sandbox
  • code_execution_tools.py : Herramientas para la ejecución de código
  • file_tools.py : Herramientas para operaciones con archivos

Aplicación principal

  • main.py : punto de entrada de la aplicación principal

Solución de problemas

Si encuentra problemas:

  • Asegúrese de tener la clave API correcta para el intérprete elegido
  • Consulte los registros para ver mensajes de error detallados
  • Verifique que todos los paquetes necesarios estén instalados
  • Asegúrese de que Claude for Desktop esté configurado con la ruta correcta a su script

Consideraciones de seguridad

  • La ejecución del código se realiza en entornos aislados por seguridad.
  • No utilice este servidor para ejecutar código no confiable en entornos de producción
  • El servidor actualmente no implementa autenticación: solo debe usarse en entornos confiables

Licencia

Licencia MIT

-
security - not tested
-
license - not tested
-
quality - not tested

Un servidor de protocolo de comunicación de mensajes extensible que proporciona capacidades de ejecución de código seguro en entornos sandbox aislados, compatible con Claude for Desktop y otros clientes MCP.

  1. Features
    1. Architecture
      1. Core Components
      2. Project Structure
    2. Prerequisites
      1. Installation
        1. Usage
          1. Running the Server Standalone
          2. Using with Claude for Desktop
        2. Available Tools
          1. Sandbox Administration
          2. Code Execution
          3. File Operations
        3. Extending with New Interpreters
          1. Module Descriptions
            1. Sandbox Core (src/sandbox/)
            2. E2B Implementation (src/sandbox/e2b/)
            3. Tools (tools/)
            4. Main Application
          2. Troubleshooting
            1. Security Considerations
              1. License
                ID: r705eifg0x