Sandbox MCP Server
Fornece ambientes Docker isolados para execução segura de código.
Documentação
Sandbox MCP Server
Um servidor MCP que fornece ambientes Docker isolados para execução de código. Este servidor permite que você:
- Crie contêineres com qualquer imagem Docker
- Escreva e execute código em várias linguagens de programação
- Instale pacotes e configure ambientes de desenvolvimento
- Execute comandos em contêineres isolados
Pré-requisitos
- Python 3.9 ou superior
- Docker instalado e em execução
- Gerenciador de pacotes uv (recomendado)
- Servidor MCP Docker (recomendado)
Instalação
- Clone este repositório:
git clone <your-repo-url>
cd sandbox_server
- Crie e ative um ambiente virtual com uv:
uv venv
source .venv/bin/activate # On Unix/MacOS
# Or on Windows:
# .venv\Scripts\activate
- Instale as dependências:
uv pip install .
Integração com Claude Desktop
- Abra o arquivo de configuração do Claude Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Adicione a configuração do servidor sandbox:
{
"mcpServers": {
"sandbox": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/sandbox_server",
"run",
"sandbox_server.py"
],
"env": {
"PYTHONPATH": "/absolute/path/to/sandbox_server"
}
}
}
}
Substitua /absolute/path/to/sandbox_server pelo caminho real do diretório do seu projeto.
- Reinicie o Claude Desktop
Exemplos de Uso
Uso Básico
Uma vez conectado ao Claude Desktop, você pode:
- Criar um contêiner Python:
Could you create a Python container and write a simple hello world program?
- Executar código em diferentes linguagens:
Could you create a C program that calculates the fibonacci sequence and run it?
- Instalar pacotes e usá-los:
Could you create a Python script that uses numpy to generate and plot some random data?
Salvando e Reproduzindo Ambientes
O servidor fornece várias maneiras de salvar e reproduzir seus ambientes de desenvolvimento:
Criando Contêineres Persistentes
Ao criar um contêiner, você pode torná-lo persistente:
Could you create a persistent Python container with numpy and pandas installed?
Isso criará um contêiner que:
- Permanece em execução após o Claude Desktop ser fechado
- Pode ser acessado diretamente através do Docker
- Preserva todos os pacotes e arquivos instalados
O servidor fornecerá instruções para:
- Acessar o contêiner diretamente (
docker exec) - Parar e iniciar o contêiner
- Removê-lo quando não for mais necessário
Salvando o Estado do Contêiner
Após configurar seu ambiente, você pode salvá-lo como uma imagem Docker:
Could you save the current container state as an image named 'my-ds-env:v1'?
Isso irá:
- Criar uma nova imagem Docker com todos os seus:
- Pacotes instalados
- Arquivos criados
- Alterações de configuração
- Fornecer instruções para reutilizar o ambiente
Você pode então compartilhar esta imagem ou usá-la como ponto de partida para novos contêineres:
Could you create a new container using the my-ds-env:v1 image?
Gerando Dockerfiles
Para tornar seu ambiente totalmente reproduzível, você pode gerar um Dockerfile:
Could you export a Dockerfile that recreates this environment?
O Dockerfile gerado incluirá:
- Especificação da imagem base
- Arquivos criados
- Modelo para etapas adicionais de configuração
Você pode usar este Dockerfile para:
- Compartilhar a configuração do seu ambiente com outras pessoas
- Controlar versões do seu ambiente de desenvolvimento
- Modificar e personalizar o processo de build
- Implantar em diferentes sistemas
Fluxo de Trabalho Recomendado
Para ambientes de desenvolvimento reproduzíveis:
- Crie um contêiner persistente:
Create a persistent Python container for data science work
- Instale os pacotes necessários e configure o ambiente:
Install numpy, pandas, and scikit-learn in the container
- Teste sua configuração:
Create and run a test script to verify the environment
- Salve o estado:
Save this container as 'ds-workspace:v1'
- Exporte um Dockerfile:
Generate a Dockerfile for this environment
Isso oferece várias opções para recriar seu ambiente:
- Use a imagem Docker salva diretamente
- Construa a partir do Dockerfile com modificações
- Acesse o contêiner original, se necessário
Notas de Segurança
- Todo o código é executado em contêineres Docker isolados
- Os contêineres são removidos automaticamente após o uso
- Os sistemas de arquivos são isolados entre contêineres
- O acesso ao sistema host é restrito
Estrutura do Projeto
sandbox_server/
├── sandbox_server.py # Main server implementation
├── pyproject.toml # Project configuration
└── README.md # This file
Ferramentas Disponíveis
O servidor fornece três ferramentas principais:
create_container_environment: Cria um novo contêiner Docker com a imagem especificadacreate_file_in_container: Cria um arquivo em um contêinerexecute_command_in_container: Executa comandos em um contêinersave_container_state: Salva o estado do contêiner em um contêiner persistenteexport_dockerfile: Exporta um arquivo Docker para criar um ambiente persistenteexit_container: Fecha um contêiner para limpar o ambiente quando terminar