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
Prerrequisitos
- Python 3.10 o superior
- Clave API E2B (para el intérprete E2B predeterminado)
Instalación
- Clonar este repositorio:Copy
- Configurar un entorno virtual:Copy
- Instalar los paquetes necesarios:Copy
- Configurar variables de entorno:Copy
Uso
Ejecución del servidor independiente
Puede ejecutar el servidor directamente desde la línea de comandos:
Esto iniciará el servidor usando el transporte stdio, haciéndolo compatible con Claude for Desktop.
Uso con Claude para escritorio
- Asegúrate de tener instalada la última versión de Claude for Desktop
- 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
- macOS:
- Agregue la configuración de su servidor sandbox de código:O si estás usandoCopy
uv
:Copy - 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:
- Cree un nuevo directorio en
src/sandbox/
para la implementación de su intérprete - Implementar las interfaces definidas en
src/sandbox/code_interpreter.py
ysrc/sandbox/file_interface.py
- Agregue el nuevo tipo de intérprete a
src/sandbox/interpreter_factory.py
- Configure la variable de entorno
INTERPRETER_TYPE
para su nuevo intérprete
Ejemplo de implementación de un nuevo intérprete:
Descripciones de los módulos
Núcleo de Sandbox ( src/sandbox/
)
code_interpreter.py
: Clase base abstracta para intérpretes de códigofile_interface.py
: Interfaz abstracta para operaciones con archivosinterpreter_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ódigoe2b_file_interface.py
: implementación E2B de operaciones con archivos
Herramientas ( tools/
)
sandbox_tools.py
: Herramientas para la administración de sandboxcode_execution_tools.py
: Herramientas para la ejecución de códigofile_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
This server cannot be installed
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.