Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

LLM Sandbox

by vndeeversion 0.3.43i★ –iRuns on your computer
Registry nameio.github.vndee/llm-sandbox

Install

Overview

Description from the maker (original English)

Securely run LLM-generated code in isolated containers across 7 languages and 3 container backends.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Search & AI memory

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: BACKEND, DOCKER_HOST, KUBECONFIG, NAMESPACE, COMMIT_CONTAINER, KEEP_TEMPLATE, SANDBOX_NETWORK_MODE, SANDBOX_READ_ONLY, SANDBOX_CAP_DROP, SANDBOX_SECURITY_OPT, SANDBOX_MEMORY, SANDBOX_CPUS

You need

  • PyPIPython’s uv installed (for the uvx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "llm-sandbox": {
      "command": "uvx",
      "args": [
        "llm-sandbox"
      ],
      "env": {
        "BACKEND": "your-value",
        "DOCKER_HOST": "your-value",
        "KUBECONFIG": "your-value",
        "NAMESPACE": "your-value",
        "COMMIT_CONTAINER": "your-value",
        "KEEP_TEMPLATE": "your-value",
        "SANDBOX_NETWORK_MODE": "your-value",
        "SANDBOX_READ_ONLY": "your-value",
        "SANDBOX_CAP_DROP": "your-value",
        "SANDBOX_SECURITY_OPT": "your-value",
        "SANDBOX_MEMORY": "your-value",
        "SANDBOX_CPUS": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add llm-sandbox --env BACKEND=your-value --env DOCKER_HOST=your-value --env KUBECONFIG=your-value --env NAMESPACE=your-value --env COMMIT_CONTAINER=your-value --env KEEP_TEMPLATE=your-value --env SANDBOX_NETWORK_MODE=your-value --env SANDBOX_READ_ONLY=your-value --env SANDBOX_CAP_DROP=your-value --env SANDBOX_SECURITY_OPT=your-value --env SANDBOX_MEMORY=your-value --env SANDBOX_CPUS=your-value -- uvx llm-sandbox

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "llm-sandbox": {
      "command": "uvx",
      "args": [
        "llm-sandbox"
      ],
      "env": {
        "BACKEND": "your-value",
        "DOCKER_HOST": "your-value",
        "KUBECONFIG": "your-value",
        "NAMESPACE": "your-value",
        "COMMIT_CONTAINER": "your-value",
        "KEEP_TEMPLATE": "your-value",
        "SANDBOX_NETWORK_MODE": "your-value",
        "SANDBOX_READ_ONLY": "your-value",
        "SANDBOX_CAP_DROP": "your-value",
        "SANDBOX_SECURITY_OPT": "your-value",
        "SANDBOX_MEMORY": "your-value",
        "SANDBOX_CPUS": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "llm-sandbox": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "llm-sandbox"
      ],
      "env": {
        "BACKEND": "your-value",
        "DOCKER_HOST": "your-value",
        "KUBECONFIG": "your-value",
        "NAMESPACE": "your-value",
        "COMMIT_CONTAINER": "your-value",
        "KEEP_TEMPLATE": "your-value",
        "SANDBOX_NETWORK_MODE": "your-value",
        "SANDBOX_READ_ONLY": "your-value",
        "SANDBOX_CAP_DROP": "your-value",
        "SANDBOX_SECURITY_OPT": "your-value",
        "SANDBOX_MEMORY": "your-value",
        "SANDBOX_CPUS": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • BACKEND env
    Container backend to use. Must match the installed extra: mcp-docker, mcp-podman, or mcp-k8s.
  • DOCKER_HOST env
    Docker or Podman socket URL, e.g. unix:///var/run/docker.sock
  • KUBECONFIG env
    Path to kubeconfig file when BACKEND=kubernetes.
  • NAMESPACE env
    Kubernetes namespace used for sandbox pods when BACKEND=kubernetes.
  • COMMIT_CONTAINER env
    Commit the container after a run so installed libraries persist between sessions.
  • KEEP_TEMPLATE env
    Keep the base image after the session ends to avoid re-pulling it on the next run.
  • SANDBOX_NETWORK_MODE env
    Network mode for the sandbox container. Set to 'none' for hardened isolation. Docker and Podman backends only.
  • SANDBOX_READ_ONLY env
    Mount the sandbox root filesystem read-only. Recommended: true. Docker and Podman backends only.
  • SANDBOX_CAP_DROP env
    Comma-separated Linux capabilities to drop. Recommended: ALL. Docker and Podman backends only.
  • SANDBOX_SECURITY_OPT env
    Comma-separated container security options, e.g. no-new-privileges. Docker and Podman backends only.
  • SANDBOX_MEMORY env
    Memory limit for the sandbox container, e.g. 4g. Docker and Podman backends only.
  • SANDBOX_CPUS env
    Fractional CPU allocation for the sandbox container, e.g. 1.5. Docker and Podman backends only.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account vndee, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Search & AI memoryi

  • More stars than 0% of the other 7270 servers in this category
  • Published to the registry more recently than 27% of the other 7270 servers in this category
  • Basic checks equal to or better than 100% of the other 7270 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is LLM Sandbox safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.3.43) reached the registry 3 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.

What can I use instead?

In the same category: Context7, Codebase Memory, Exa

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Context7

by upstash

Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.

Computer or cloud★ 64,224MITUpdated yesterday
Install

Codebase Memory

by DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

Runs on your computer★ 48,148MITUpdated 21 days ago
Install

Exa

by exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

Runs in the cloud★ 5,213MITUpdated last month
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

LLM Sandbox

*Securely Execute LLM-Generated Code with Ease*

LLM Sandbox runs Large Language Model (LLM) generated code through a common API for container and local Linux and Windows sandbox backends. Choose an isolation backend for your deployment, configure its security controls, and reuse the same code execution and file APIs.

Documentation: https://vndee.github.io/llm-sandbox/

Backend benchmarks compare Docker, Bubblewrap and NsJail across startup, execution, file transfers and concurrency, with confidence intervals and reproducible evidence.

✨ New: This project now supports the Model Context Protocol (MCP) server, which allows your MCP clients (e.g. Claude Desktop) to run code generated by LLMs in a secure sandbox environment.

🚀 Key Features

🛡️ Security First
  • Isolated Execution: Container or local OS sandboxing with explicitly configured host access
  • Security Policies: Define custom security policies to control code execution
  • Resource Limits: Set CPU, memory, and execution time limits
  • Network Isolation: Control network access for sandboxed code
🏗️ Flexible Sandbox Backends
  • Docker: Most popular and widely supported option
  • Kubernetes: Enterprise-grade orchestration for scalable deployments
  • Podman: Rootless containers for enhanced security
  • Bubblewrap: Local Linux namespaces and seccomp without Docker or a daemon
  • NsJail: Local Linux namespaces and native seccomp policies without a daemon
  • Windows MXC: Native Windows process isolation through Microsoft's MXC/PSEC APIs
  • WSL2 Bubblewrap: Linux namespaces and seccomp in an explicitly selected WSL2 distribution
  • Backend Registry: Register additional adapters and inspect their supported features
🌐 Multi-Language Support

Execute code in multiple programming languages with automatic dependency management:

  • Python - Full ecosystem support with pip packages
  • JavaScript/Node.js - npm package installation
  • Java - Maven and Gradle dependency management
  • C++ - Compilation and execution
  • Go - Module support and compilation
  • R - Statistical computing and data analysis with CRAN packages
🔌 LLM Framework Integration

Runnable examples for eleven agent frameworks — OpenAI Agents SDK, Claude Agent SDK, LangChain, DeepAgents, LlamaIndex, Google ADK, CrewAI, Pydantic AI, smolagents, Strands and AG2. See examples/agent_sdks/.

📊 Advanced Features
  • Artifact Extraction: Automatically capture plots and visualizations
  • Library Management: Install dependencies on-the-fly
  • File Operations: Copy files to/from sandbox environments
  • Custom Images: Use your own container images
  • Fast Production Mode: Skip environment setup for faster container startup
  • Container Pooling: Pre-warm and reuse containers for improved performance (NEW!)

📦 Installation

Basic Installation
pip install llm-sandbox
With Specific Backend Support
# For Docker support (most common)

pip install 'llm-sandbox[docker]'

For Kubernetes support

pip install 'llm-sandbox[k8s]'

For Podman support

pip install 'llm-sandbox[podman]'

All optional container SDKs

pip install 'llm-sandbox[docker,k8s,podman]'

Bubblewrap and NsJail use the base Python package plus system executables; no container SDK extra is needed. See local backend requirements for Linux prerequisites.

The Windows adapters also need no container SDK. windows-mxc requires a compatible Windows host and the native helper, while wsl2-bubblewrap requires a configured WSL2 distribution with the matching Python package and Linux prerequisites. See Windows requirements; neither adapter installs an OS runtime or falls back to unsandboxed execution.

Development Installation

Dev dependencies live in the dev uv dependency group, so install them with uv (or the make install shortcut):

git clone https://github.com/vndee/llm-sandbox.git

cd llm-sandbox make install # uv sync + pre-commit install

See CONTRIBUTING.md for the full workflow.

🏃♂️ Quick Start

Basic Usage
from llm_sandbox import SandboxSession

Create and use a sandbox session

with SandboxSession(lang="python") as session: result = session.run(""" print("Hello from LLM Sandbox!") print("I'm running in a secure container.") """) print(result.stdout)

Local Linux Usage Without Docker

On Debian/Ubuntu, install the system prerequisites with sudo apt install bubblewrap libseccomp2 python3-venv. Bubblewrap must be version 0.8.0 or newer with --disable-userns support; older distributions such as Ubuntu 22.04 need a newer package or upstream build. Your host must permit unprivileged user namespaces; distribution security policy can restrict them.

from llm_sandbox import SandboxSession

with SandboxSession(backend="bubblewrap", lang="python") as session: result = session.run("print('Hello from a local Linux sandbox!')") print(result.stdout)

The local defaults combine namespace isolation with a seccomp syscall denylist, disable network access, expose runtime paths read-only, and provide a private writable workspace and temporary directory. Python setup creates a virtual environment offline. Install the host runtime and its venv support first. Select backend="nsjail" to use an installed NsJail binary instead.

The Linux adapters support run(), execute_command(), install(), file copying, and the artifact wrapper. They do not support container images, pooling, or interactive sessions. Files persist between commands in a session; background processes do not. These backends share the host kernel and are not a VM boundary. See configuration, security, and the backend roadmap.

Windows Usage Without Docker

For native Windows Python execution, use the MXC adapter on a compatible Windows host with the helper installed:

from llm_sandbox import SandboxSession

with SandboxSession(backend="windows-mxc", lang="python") as session: print(session.run("import platform; print(platform.system())").stdout)

To run Linux tools from a Windows Python application, select a WSL2 distribution explicitly:

from llm_sandbox import SandboxSession

with SandboxSession( backend="wsl2-bubblewrap", distribution="Ubuntu", lang="python", ) as session: print(session.run("import platform; print(platform.system())").stdout)

These are experimental adapters with different prerequisites and API limits. MXC initially supports Python and JavaScript with preinstalled dependencies. WSL2 reuses the Linux Bubblewrap runtime, requires seccomp, and restricts mounts to built-in Linux runtime paths to keep Windows interoperability inaccessible. Both default to disabled networking. See backend setup and limitations.

Installing Libraries
from llm_sandbox import SandboxSession

with SandboxSession(lang="python") as session: result = session.run(""" import numpy as np

Create an array

arr = np.array([1, 2, 3, 4, 5]) print(f"Array: {arr}") print(f"Mean: {np.mean(arr)}") """, libraries=["numpy"])

print(result.stdout)

Multi-Language Support
JavaScript
with SandboxSession(lang="javascript") as session:

result = session.run(""" const greeting = "Hello from Node.js!"; console.log(greeting);

const axios = require('axios'); console.log("Axios loaded successfully!"); """, libraries=["axios"])

Java
with SandboxSession(lang="java") as session:

result = session.run(""" public class HelloWorld { public static void main(String[] args) { System.out.println("Hello from Java!"); } } """)

C++
with SandboxSession(lang="cpp") as session:

result = session.run(""" #include

int main() { std::cout << "Hello from C++!" << std::endl; return 0; } """)

Go
with SandboxSession(lang="go") as session:

result = session.run(""" package main import "fmt"

func main() { fmt.Println("Hello from Go!") } """)

R
with SandboxSession(

lang="r", image="ghcr.io/vndee/sandbox-r-451-bullseye", verbose=True, ) as session: result = session.run( """

Basic R operations

print("=== Basic R Demo ===")

Create some data

numbers <- c(1, 2, 3, 4, 5, 10, 15, 20) print(paste("Numbers:", paste(numbers, collapse=", ")))

Basic statistics

print(paste("Mean:", mean(numbers))) print(paste("Median:", median(numbers))) print(paste("Standard Deviation:", sd(numbers)))

Work with data frames

df <- data.frame( name = c("Alice", "Bob", "Charlie", "Diana"), age = c(25, 30, 35, 28), score = c(85, 92, 78, 96) )

print("=== Data Frame ===") print(df)

Calculate average score

avg_score <- mean(df$score) print(paste("Average Score:", avg_score)) """ )

Interactive Sessions

For notebook-style workflows you can use InteractiveSandboxSession, which keeps the Python interpreter state across multiple run calls.

from llm_sandbox import InteractiveSandboxSession

with InteractiveSandboxSession( lang="python", kernel_type="ipython", history_size=200, ) as session: session.run("value = 21 * 2") result = session.run("print(f'Result: {value}')") print(result.stdout) # -> Result: 42

Use magic command to install libraries

session.run("%pip install pandas") result = session.run("import pandas as pd; print(pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}))") print(result.stdout)

Interactive sessions support Docker, Podman, and Kubernetes backends and currently target Python language. They spin up a long-running IPython kernel inside the sandbox, so each run() behaves like a notebook cell—state, imports, and magic commands stay alive until the context manager exits, without any extra networking or manual serialization.

Capturing Plots and Visualizations
Python Plots
from llm_sandbox import ArtifactSandboxSession

import base64 from pathlib import Path

with ArtifactSandboxSession(lang="pyth

Only the beginning is shown; read the rest in the repo

Ask PopNx