项目简介

Swarm Box 是一个便携式的容器化开发环境,专为需要与 Claude AI 交互的开发者设计。它预装了 Claude 命令行工具(CLI)、Node.js、Python、Git、Docker CLI 和 Chrome 浏览器等常用开发工具。其核心亮点是包含了一个基于 Chrome DevTools 的 MCP (Model Context Protocol) 服务器,使得 LLM 客户端能够通过标准协议访问上下文信息和功能。

主要功能点

  • 一键式开发环境: 快速构建和启动一个包含所有必要工具的容器。
  • 集成 Claude CLI: 方便地通过命令行与 Claude AI 进行交互。
  • MCP 服务器支持: 提供一个基于 Chrome DevTools 的 MCP 服务器,作为 LLM 客户端获取上下文和工具调用的后端。
  • 多运行时兼容: 支持 Docker 和 Podman 容器运行时。
  • 持久化工作区: 通过挂载本地 './.work/' 目录到容器内部,确保数据持久性。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/feroult/swarmbox.git
    cd swarmbox
  2. 构建镜像: 运行 './build.sh' 脚本来构建 Swarm Box 容器镜像。 默认使用 Podman,如果未安装则会尝试使用 Docker。

    ./build.sh
    # 可选参数:
    # ./build.sh --runtime docker     # 强制使用 Docker
    # ./build.sh --no-cache           # 不使用缓存构建
  3. 启动容器: 运行 './start.sh' 脚本来启动 Swarm Box 容器。

    ./start.sh
    # 可选参数:
    # ./start.sh --runtime docker     # 强制使用 Docker
    # ./start.sh --ports 3000,8080:80  # 映射端口

    容器启动后,您将进入容器的 shell 环境。

  4. 在容器内使用 Claude: 在容器内部,运行 'yolo' 命令进行身份验证并开始使用 Claude CLI。

服务器配置

当 Swarm Box 容器启动并运行后,它会提供一个可供 LLM 客户端连接的 MCP 服务器。

以下是供 MCP 客户端连接和配置 MCP 服务器的示例 JSON 配置。请注意,这里的 'command' 和 'args' 指的是启动 整个 Swarm Box 容器环境 的命令,因为 MCP 服务器作为该环境的一部分运行。

{
  "servers": [
    {
      "name": "SwarmBox-Claude-MCP",
      "command": "./start.sh", 
      "args": [
        "--runtime", "podman", 
        "--name", "swarmbox-mcp-instance", 
        "--ports", "9000:9000", 
        "--no-shell" 
      ],
      "description": "此配置用于启动一个 Swarm Box 容器实例,该容器内含 Claude CLI 和一个基于 Chrome DevTools 的 MCP 服务器。MCP 客户端可以连接到此容器提供的 MCP 服务器以获取上下文和调用工具。",
      "notes": "请注意,此处 'command' 和 'args' 是用于启动整个 Swarm Box 容器环境,而非直接启动 MCP 服务器的内部进程。一旦容器成功启动并暴露了 MCP 服务器端口(例如,本例中的 9000 端口),MCP 客户端应连接到宿主机的相应端口(如 'localhost:9000')。容器内部 MCP 服务器的具体启动命令在仓库信息中未明确给出,默认假定为容器内部某个进程在 9000 端口提供服务。"
    }
  ]
}

配置参数说明:

  • 'name': 给 MCP 服务器实例起一个便于识别的名称。
  • 'command': 这是一个指向 'swarmbox' 仓库根目录下的 'start.sh' 脚本的相对路径。MCP 客户端在需要时将执行此脚本来启动容器环境。
  • 'args': 传递给 'start.sh' 脚本的参数列表:
    • '--runtime "podman"': 指定使用 Podman 作为容器运行时。您也可以改为 '"docker"'。
    • '--name "swarmbox-mcp-instance"': 为启动的容器实例指定一个唯一的名称。
    • '--ports "9000:9000"': 这是一个关键配置。它指示容器将内部的 9000 端口(我们假设 MCP 服务器在此端口监听)映射到宿主机的 9000 端口。您需要根据实际情况或 MCP 服务器的文档确认其监听端口。
    • '--no-shell': 让容器在后台非交互模式下启动,适合由客户端自动管理。
  • 'description': 对此 MCP 服务器配置的简要描述。
  • 'notes': 重要的补充说明,解释了 'command' 和 'args' 的作用范围(启动整个环境而非单一 MCP 进程)以及端口映射的重要性。

基本使用方法

  1. 启动 Swarm Box 容器: 根据上述“服务器配置”中的 'command' 和 'args' 信息,让您的 MCP 客户端自动执行(或您手动执行)'./start.sh --ports 9000:9000 --no-shell' 来启动 Swarm Box 容器。
  2. 验证 MCP 服务器运行: 容器启动后,您可以通过宿主机访问 'localhost:9000'(如果映射的是 9000 端口)来检查 MCP 服务器是否在运行并可访问。
  3. LLM 客户端连接: 配置您的 LLM 客户端连接到 'localhost:9000'(或您在 'start.sh' 命令中映射的其他宿主机地址/端口)。客户端将通过 JSON-RPC 协议与 Swarm Box 容器内的 MCP 服务器进行通信,请求上下文信息或调用工具。
  4. 在容器内使用 Claude CLI: 如果需要直接与 Claude CLI 交互,您可以进入已运行的容器:'podman exec -it swarmbox-mcp-instance bash' (或 'docker exec -it swarmbox-mcp-instance bash'),然后在容器内部运行 'yolo' 命令。

信息

分类

开发者工具