python_sandbox_mcp_server

python_sandbox_mcp_server

2

The Python Sandbox MCP Server is a secure platform for executing Python code in isolated environments using Docker. It enables real-time communication through Server-Sent Events and supports graphical output from Matplotlib.

MseeP.ai Security Assessment Badge

Python Sandbox MCP Server

A secure Python code execution server that enables LLMs to run Python code safely in isolated Docker containers. The server supports:

  • Regular Python code execution with stdout capture
  • Matplotlib plotting with PNG image generation
  • Secure sandboxing via Snekbox Docker container
  • Real-time communication using Server-Sent Events (SSE)

Development

To get started with development, follow these steps:

Step 1: Clone the Repository

Fork and clone the repository:

git clone https://github.com/username/python_sandbox_mcp_server.git

Navigate into the project directory:

cd python_sandbox_mcp_server

Step 2: Install Dependencies

Install the required dependencies:

uv add -r requirements.txt

Step 3: Build the Python Sandbox

Pull the Snekbox Container Image:

docker pull ghcr.io/python-discord/snekbox:latest

Start the Container with Security Parameters:

docker run -d --ipc=none --privileged -p 8060:8060 ghcr.io/python-discord/snekbox

Install Additional Dependencies (Optional):

  • If additional Python packages are required, you can install them as follows:
docker exec <container_id> /bin/sh -c \
    'PYTHONUSERBASE=/snekbox/user_base /snekbox/python/default/bin/python -m pip install --user <package_name>'
  • Replace <container_id> with the ID of your running Snekbox container and <package_name> with the desired package.

Step 4: Update MCP Server Configuration

Update your MCP server configuration to point to the local build:

{
  "mcpServers": {
    "python-sandbox-sse": {
      "command": "mcp-proxy",
      "args": [
        "http://localhost:8060/eval"
      ],
      "ssePath": "/eval"
    }
  }
}

Configuration

The server can be configured through the following environment variables or by modifying the Config class:

  • MCP_SERVER_NAME: Server identifier (default: "python-sandbox-mcp-sse")
  • SNEKBOX_URL: Snekbox API endpoint (default: "http://localhost:8060/eval")
  • TEMP_DIR: Directory for temporary files storage

License