【技术文档摘要】:

Sandbox MCP 是一个模型上下文协议(MCP)服务器,它允许LLMs(MCP主机/客户端)在安全隔离的Docker容器中运行代码。
虽然LLMs擅长生成代码,但大多数无法运行它们生成的代码。你最终会在自己的机器上直接运行这些未经测试的代码,这可能会导致严重的意外后果。
给LLMs提供安全测试代码的工具可以防止这些问题,并帮助你在更少的迭代中生成更准确的代码。
Sandbox MCP 给LLMs提供了一个易于使用的执行环境,任何人都可以通过简单的AI原生MCP服务器创建和配置这个环境,该服务器本地运行。
Sandbox MCP 可用于许多不同的任务,包括但不限于:
此演示展示了Sandbox MCP如何与Claude Desktop一起工作。

如果GIF不清楚,请尝试视频。
你可以从发布页面下载适用于你的操作系统(例如,Darwin)和处理器架构(arm64)的适当二进制文件(sandbox-mcp_Darwin_arm64.tar.gz)。
前提条件:
go install github.com/pottekkat/sandbox-mcp/cmd/sandbox-mcp@latest
获取sandbox-mcp二进制文件的路径:
which sandbox-mcp
参见开发部分。
在使用sandbox-mcp与LLMs之前,你需要初始化其配置:
# 在$XDG_CONFIG_HOME/sandbox-mcp中创建配置目录
# 并从GitHub拉取默认沙箱
sandbox-mcp --pull
# 构建沙箱的Docker镜像
sandbox-mcp --build
[!NOTE] 确保已安装并运行Docker。
将以下内容添加到Claude Desktop的claude_desktop_config.json或Cursor IDE的mcp.json中:
{
"mcpServers": {
"sandbox-mcp": {
"command": "path/to/sandbox-mcp",
"args": [
"--stdio"
]
}
}
}
[!NOTE] 确保将
path/to/sandbox-mcp替换为实际的sandbox-mcp二进制文件路径。
| 沙箱 | 描述 |
|---|---|
| shell | 一个安全隔离的Linux环境,用于运行不需要网络访问的轻量级命令。 |
| python | 在安全隔离的环境中安全执行Python代码。 |
| rust | 在隔离的环境中编译和运行Rust代码。 |
| network-tools | 在隔离的Linux沙箱中使用各种网络工具。非常适合网络诊断和故障排除。请参阅https://github.com/jonlabelle/docker-network-tools以了解可用工具列表。 |
| go | 在具有网络访问权限的隔离环境中安全运行Go代码。 |
| javascript | 使用Node.js在隔离的环境中运行JavaScript代码。 |
| apisix | 运行Apache APISIX的轻量级实例,可通过YAML文件配置并通过提供的main.sh文件中的curl命令进行交互。例如,curl -sI http://127.0.0.1:9080/ip。 |
| java | 在隔离的沙箱中编译和运行Java代码。支持Java预览特性。 |
[!IMPORTANT]
自定义沙箱
你可以在
$XDG_CONFIG_HOME/sandbox-mcp/sandboxes中创建和添加自己的沙箱。沙箱本质上是一个Dockerfile和一个JSON配置。请参阅示例和指南以了解更多信息。
分叉并克隆仓库:
git clone https://github.com/username/sandbox-mcp.git
切换到目录:
cd sandbox-mcp
安装依赖项:
make deps
构建项目:
make build
更新你的MCP服务器配置,指向本地构建:
{
"mcpServers": {
"sandbox-mcp": {
"command": "/path/to/sandbox-mcp/dist/sandbox-mcp",
"args": [
"--stdio"
]
}
}
}