关于 Code Sandbox MCP 🐳
Code Sandbox MCP 是一个 MCP 服务,通过 Docker 容器为 AI 应用提供安全、隔离的代码执行环境。它支持自定义镜像,并可在容器内执行命令与传输文件。
主要功能
- 01基于 Docker 容器创建隔离的执行环境
- 02支持使用任意 Docker 镜像作为基础环境
- 03主机与容器之间的文件和目录传输
- 04在容器内执行 shell 命令
- 05实时流式输出容器日志与命令结果
- 06提供 Linux、macOS 和 Windows 版本
适用场景
- 01让 AI 应用在隔离容器中运行不受信任的代码
- 02在指定镜像中安装依赖并执行 Python 脚本
- 03将本地项目复制到沙箱中进行测试
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 sandbox_initialize、copy_project、write_file、sandbox_exec、copy_file、sandbox_stop 等工具,并提供 containers://{id}/logs 容器日志资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Code Sandbox MCP 🐳
一个安全的沙箱环境,可在 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
安装程序将:
- 检查是否已安装 Docker
- 下载适用于你系统的二进制文件
- 创建必要的配置文件
手动安装
- 从发布页面下载适用于你平台的最新版本
- 将二进制文件放入 PATH 中的某个目录
- 设置为可执行文件(仅适用于类 Unix 系统):
chmod +x code-sandbox-mcp
🛠️ 可用工具
sandbox_initialize
初始化用于代码执行的新计算环境。 根据指定的 Docker 镜像创建容器。
参数:
image(字符串,可选):用作基础环境的 Docker 镜像- 默认值:'python:3.12-slim-bookworm'
返回:
- 可与其他工具配合使用、以便在此环境中进行操作的
container_id
copy_project
将目录复制到沙箱文件系统。
参数:
container_id(字符串,必需):初始化调用返回的容器 IDlocal_src_dir(字符串,必需):本地文件系统中的目录路径dest_dir(字符串,可选):在沙箱环境中保存 src 目录的路径
write_file
将文件写入沙箱文件系统。
参数:
container_id(字符串,必需):初始化调用返回的容器 IDfile_name(字符串,必需):要创建的文件名file_contents(字符串,必需):要写入文件的内容dest_dir(字符串,可选):创建文件的目录(默认值:${WORKDIR})
sandbox_exec
在沙箱环境中执行命令。
参数:
container_id(字符串,必需):初始化调用返回的容器 IDcommands(数组,必需):要在沙箱环境中运行的命令列表- 示例:["apt-get update", "pip install numpy", "python script.py"]
copy_file
将单个文件复制到沙箱文件系统。
参数:
container_id(字符串,必需):初始化调用返回的容器 IDlocal_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 许可,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。