首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
首页
学习
活动
专区
圈层
工具
MCP广场
MCP广场 >详情页
code-sandbox-mcp2025-05-290分享
github
一种MCP服务器,用于在Docker容器内执行代码时创建安全的代码沙箱环境。
By Automata-Labs-team
2025-05-290
github
详情内容

代码沙箱 MCP 🐳

smithery 徽章

一个用于在 Docker 容器内执行代码的安全沙箱环境。该 MCP 服务器为 AI 应用程序提供了一个安全且隔离的代码运行环境,同时通过容器化技术确保安全性。

🌟 功能特点

  • 灵活的容器管理:创建和管理用于代码执行的隔离 Docker 容器
  • 自定义环境支持:使用任何 Docker 镜像作为执行环境
  • 文件操作:轻松在主机和容器之间传输文件和目录
  • 命令执行:在容器化环境中运行任何 shell 命令
  • 实时日志:实时流式传输容器日志和命令输出
  • 自动更新:内置更新检查功能,可自动更新二进制文件
  • 多平台支持:支持 Linux、macOS 和 Windows

🚀 安装指南

前提条件

快速安装

Linux、macOS

curl -fsSL https://raw.githubusercontent.com/Automata-Labs-team/code-sandbox-mcp/main/install.sh | bash

Windows

# 在 PowerShell 中运行
irm https://raw.githubusercontent.com/Automata-Labs-team/code-sandbox-mcp/main/install.ps1 | iex

安装程序将执行以下操作:

  1. 检查 Docker 是否已安装
  2. 下载适用于您系统的正确二进制文件
  3. 创建必要的配置文件

手动安装

  1. 发布页面下载适用于您平台的最新版本
  2. 将二进制文件放置在 PATH 中的目录下
  3. 使其可执行(仅限类 Unix 系统):
    chmod +x code-sandbox-mcp
    

🛠️ 可用工具

sandbox_initialize

初始化一个新的代码执行计算环境。
基于指定的 Docker 镜像创建容器。

参数:

  • image(字符串,可选):用作基础环境的 Docker 镜像
    • 默认值:'python:3.12-slim-bookworm'

返回值:

  • 可用于与其他工具交互此环境的 container_id

copy_project

将目录复制到沙箱文件系统中。

参数:

  • container_id(字符串,必填):initialize 调用返回的容器 ID
  • local_src_dir(字符串,必填):本地文件系统中的目录路径
  • dest_dir(字符串,可选):在沙箱环境中保存源目录的路径

write_file

向沙箱文件系统写入文件。

参数:

  • container_id(字符串,必填):initialize 调用返回的容器 ID
  • file_name(字符串,必填):要创建的文件名
  • file_contents(字符串,必填):要写入文件的内容
  • dest_dir(字符串,可选):创建文件的目录(默认值:${WORKDIR})

sandbox_exec

在沙箱环境中执行命令。

参数:

  • container_id(字符串,必填):initialize 调用返回的容器 ID
  • commands(数组,必填):要在沙箱环境中运行的命令列表
    • 示例:["apt-get update", "pip install numpy", "python script.py"]

copy_file

将单个文件复制到沙箱文件系统中。

参数:

  • container_id(字符串,必填):initialize 调用返回的容器 ID
  • local_src_file(字符串,必填):本地文件系统中的文件路径
  • dest_path(字符串,可选):在沙箱环境中保存文件的路径

sandbox_stop

停止并移除正在运行的容器沙箱。

参数:

  • container_id(字符串,必填):要停止并移除的容器 ID

描述:
以 10 秒超时优雅地停止指定的容器,并将其及其卷一起移除。

容器日志资源

一个动态资源,提供对容器日志的访问。

资源路径: containers://{id}/logs
MIME 类型: text/plain
描述: 返回指定容器的所有容器日志作为单个文本资源。

🔐 安全特性

  • 使用 Docker 容器实现隔离的执行环境
  • 通过 Docker 容器约束实现资源限制
  • 分离的 stdout 和 stderr 流

🔧 配置

Claude Desktop

安装程序会自动创建配置文件。如果需要手动配置:

Linux

// ~/.config/Claude/claude_desktop_config.json
{
    "mcpServers": {
        "code-sandbox-mcp": {
            "command": "/path/to/code-sandbox-mcp",
            "args": [],
            "env": {}
        }
    }
}

macOS

// ~/Library/Application Support/Claude/claude_desktop_config.json
{
    "mcpServers": {
        "code-sandbox-mcp": {
            "command": "/path/to/code-sandbox-mcp",
            "args": [],
            "env": {}
        }
    }
}

Windows

// %APPDATA%\Claude\claude_desktop_config.json
{
    "mcpServers": {
        "code-sandbox-mcp": {
            "command": "C:\\path\\to\\code-sandbox-mcp.exe",
            "args": [],
            "env": {}
        }
    }
}

其他 AI 应用程序

对于支持 MCP 服务器的其他 AI 应用程序,请将其配置为使用 code-sandbox-mcp 二进制文件作为其代码执行后端。

🛠️ 开发

如果您想本地构建项目或为其开发做出贡献,请参阅 DEVELOPMENT.md

📝 许可证

本项目根据 MIT 许可证授权 - 详情请参阅 LICENSE 文件。

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档