M

MCP代码沙箱

一种MCP服务器,用于在Docker容器内执行代码时创建安全的代码沙箱环境。

cloud-platformsvirtualizationsecurity-and-iam

695 查看 · 2026-07-07 更新

简介

一种MCP服务器,用于在Docker容器内执行代码时创建安全的代码沙箱环境。

简介

一种MCP服务器,用于在Docker容器内执行代码时创建安全的代码沙箱环境。

代码沙箱 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

# Run in 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 (字符串, 必需): 从初始化调用返回的容器 ID
  • local_src_dir (字符串, 必需): 本地文件系统中的目录路径
  • dest_dir (字符串, 可选): 在沙箱环境中保存源目录的路径

write_file

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

参数:

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

sandbox_exec

在沙箱环境中执行命令。

参数:

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

copy_file

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

参数:

  • container_id (字符串,必填):从初始化调用返回的容器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文件。

来源