Runs JavaScript in disposable Docker containers with on-the-fly npm dependency installation.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add node-code-sandbox --env FILES_DIR='<FILES_DIR>' -- docker run -i --rm -v /var/run/docker.sock:/var/run/docker.sock -v '$HOME/Desktop/sandbox-output:/root' -e 'FILES_DIR=$HOME/Desktop/sandbox-output' -e SANDBOX_MEMORY_LIMIT=512m -e SANDBOX_CPU_LIMIT=0.75 mcp/node-code-sandbox~/.codex/config.toml
[mcp_servers.node-code-sandbox]
command = "docker"
args = ["run", "-i", "--rm", "-v", "/var/run/docker.sock:/var/run/docker.sock", "-v", "$HOME/Desktop/sandbox-output:/root", "-e", "FILES_DIR=$HOME/Desktop/sandbox-output", "-e", "SANDBOX_MEMORY_LIMIT=512m", "-e", "SANDBOX_CPU_LIMIT=0.75", "mcp/node-code-sandbox"]
env = { FILES_DIR = "<FILES_DIR>" }
# codex mcp add node-code-sandbox --env FILES_DIR='<FILES_DIR>' -- docker run -i --rm -v /var/run/docker.sock:/var/run/docker.sock -v '$HOME/Desktop/sandbox-output:/root' -e 'FILES_DIR=$HOME/Desktop/sandbox-output' -e SANDBOX_MEMORY_LIMIT=512m -e SANDBOX_CPU_LIMIT=0.75 mcp/node-code-sandbox~/.cursor/mcp.json
{
"mcpServers": {
"node-code-sandbox": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/var/run/docker.sock:/var/run/docker.sock",
"-v",
"$HOME/Desktop/sandbox-output:/root",
"-e",
"FILES_DIR=$HOME/Desktop/sandbox-output",
"-e",
"SANDBOX_MEMORY_LIMIT=512m",
"-e",
"SANDBOX_CPU_LIMIT=0.75",
"mcp/node-code-sandbox"
],
"env": {
"FILES_DIR": "<FILES_DIR>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"node-code-sandbox": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/var/run/docker.sock:/var/run/docker.sock",
"-v",
"$HOME/Desktop/sandbox-output:/root",
"-e",
"FILES_DIR=$HOME/Desktop/sandbox-output",
"-e",
"SANDBOX_MEMORY_LIMIT=512m",
"-e",
"SANDBOX_CPU_LIMIT=0.75",
"mcp/node-code-sandbox"
],
"env": {
"FILES_DIR": "<FILES_DIR>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"node-code-sandbox": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/var/run/docker.sock:/var/run/docker.sock",
"-v",
"$HOME/Desktop/sandbox-output:/root",
"-e",
"FILES_DIR=$HOME/Desktop/sandbox-output",
"-e",
"SANDBOX_MEMORY_LIMIT=512m",
"-e",
"SANDBOX_CPU_LIMIT=0.75",
"mcp/node-code-sandbox"
],
"env": {
"FILES_DIR": "<FILES_DIR>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"node-code-sandbox": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/var/run/docker.sock:/var/run/docker.sock",
"-v",
"$HOME/Desktop/sandbox-output:/root",
"-e",
"FILES_DIR=$HOME/Desktop/sandbox-output",
"-e",
"SANDBOX_MEMORY_LIMIT=512m",
"-e",
"SANDBOX_CPU_LIMIT=0.75",
"mcp/node-code-sandbox"
],
"env": {
"FILES_DIR": "<FILES_DIR>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"node-code-sandbox": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/var/run/docker.sock:/var/run/docker.sock",
"-v",
"$HOME/Desktop/sandbox-output:/root",
"-e",
"FILES_DIR=$HOME/Desktop/sandbox-output",
"-e",
"SANDBOX_MEMORY_LIMIT=512m",
"-e",
"SANDBOX_CPU_LIMIT=0.75",
"mcp/node-code-sandbox"
],
"env": {
"FILES_DIR": "<FILES_DIR>"
}
}
}
}Environment variables
FILES_DIR
Replace the placeholders with your own credentials and keep them out of version control.