使用说明

项目简介

Sandbox MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为大型语言模型 (LLM) 提供安全隔离的代码执行环境。它利用 Docker 容器技术,允许 LLM 客户端创建和管理容器,在容器中执行代码,安装软件包,并保存和导出环境配置,从而扩展 LLM 的功能边界,使其能够安全地执行代码相关的任务。

主要功能点

  • 隔离的代码执行环境: 使用 Docker 容器为 LLM 提供的代码执行请求创建隔离的环境,确保安全性和稳定性。
  • 多语言支持: 支持多种编程语言,取决于你选择的 Docker 镜像。你可以根据需要创建 Python、C++、Node.js 等各种语言的容器。
  • 环境配置与管理: 允许在容器中安装软件包、创建文件,配置开发环境,并能保存容器状态或导出 Dockerfile 以便环境复用和分享。
  • 与 MCP 客户端集成: 通过标准的 MCP 协议与 LLM 客户端(如 Claude Desktop)通信,接收指令并返回结果。
  • 工具化操作: 提供一系列工具,例如创建容器、执行命令、保存状态、导出 Dockerfile 和清理容器等,方便 LLM 客户端调用。

安装步骤

  1. 克隆仓库: 在你的本地机器上克隆 GitHub 仓库:
    git clone https://github.com/Tsuchijo/sandbox-mcp
    cd sandbox-mcp
  2. 创建并激活虚拟环境: 推荐使用 'uv' 包管理器创建 Python 虚拟环境:
    uv venv
    source .venv/bin/activate   # Linux/macOS
    # .venv\Scripts\activate  # Windows
  3. 安装依赖: 使用 'uv' 安装项目依赖:
    uv pip install .
    确保你的系统上已经安装了 Docker 并正在运行。

服务器配置

要将 Sandbox MCP Server 集成到 MCP 客户端(例如 Claude Desktop),你需要配置客户端以连接到该服务器。配置信息通常以 JSON 格式提供,你需要指定服务器的启动命令和参数。以下是一个示例配置,你需要根据你的实际安装路径进行调整:

{
    "mcpServers": {
        "sandbox": {
            "command": "uv",
            "args": [
                "--directory",
                "/absolute/path/to/sandbox-mcp",  // 替换为你的 sandbox-mcp 仓库的绝对路径
                "run",
                "sandbox_server.py"
            ],
            "env": {
                "PYTHONPATH": "/absolute/path/to/sandbox-mcp"   // 替换为你的 sandbox-mcp 仓库的绝对路径
            }
        }
    }
}

请注意:

  • 将 '/absolute/path/to/sandbox-mcp' 替换为你克隆 'sandbox-mcp' 仓库的实际绝对路径。
  • 上述配置假设你使用 'uv' 运行服务器。如果使用 'python' 直接运行,'command' 应设置为 'python','args' 应调整为 '["/absolute/path/to/sandbox-mcp/sandbox_server.py"]'。
  • 'PYTHONPATH' 环境变量确保 Python 可以找到项目代码。

基本使用方法

成功配置并连接到 Sandbox MCP Server 后,你可以通过 MCP 客户端向服务器发送指令。例如,在 Claude Desktop 中,你可以使用自然语言指令来指示服务器执行各种操作:

  • 创建 Python 容器并执行代码:
    Could you create a Python container and write a simple hello world program?
  • 创建 C++ 程序并运行:
    Could you create a C program that calculates the fibonacci sequence and run it?
  • 安装 Python 包并使用:
    Could you create a Python script that uses numpy to generate and plot some random data?

服务器会解析这些指令,调用相应的工具来创建和管理 Docker 容器,并在容器中执行代码,最后将结果返回给 MCP 客户端。 你可以参考仓库的 README.md 文件中 "Usage Examples" 部分获取更多使用示例。

信息

分类

开发者工具