Python沙箱执行服务器

一个安全的Python代码执行服务器,支持在隔离的Docker容器中安全运行Python代码,适用于LLM开发和测试环境。

  • by cloudywu0410
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 cloudywu0410/python_sandbox_mcp_server

使用说明

Python沙盒MCP服务器

一个安全的Python代码执行服务器,使LLM能够在隔离的环境中安全运行Python代码 Docker容器。服务器支持:

  • 使用stdout捕获进行常规Python代码执行
  • Matplotlib绘图与PNG图像生成
  • 通过Snekbox Docker容器进行安全沙盒
  • 使用服务器发送事件(SSE)进行实时通信

发展

要开始开发,请执行以下步骤:

步骤1:克隆存储库

分叉并克隆存储库:

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

导航到项目目录:

cd python_sandbox_mcp_server

步骤2:安装依赖项

安装所需的依赖项:

uv add -r requirements.txt

步骤3:构建Python沙盒

拉取Snekbox容器图像:

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

使用安全参数启动容器:

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

安装其他依赖项(可选):

  • 如果需要额外的Python包,可以按如下方式安装:
docker exec <container_id> /bin/sh -c \
    'PYTHONUSERBASE=/snekbox/user_base /snekbox/python/default/bin/python -m pip install --user <package_name>'
  • 将<container_id>替换为正在运行的Snekbox容器的id,将<package_name>替换为所需的包。

步骤4:更新MCP服务器配置

更新MCP服务器配置以指向本地版本:

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

配置

可以通过以下环境变量或通过修改 Config 类别:

  • MCP_SERVER_NAME:服务器标识符(默认值:“python沙盒mcp-sse”)
  • SNEKBOX_URL:Snekbox API终结点(默认值:“http://localhost:8060/eval")
  • TEMP_DIR:临时文件存储目录

许可证

MIT许可证