安全代码执行服务

Sandbox MCP是一个模型上下文协议(MCP)服务器,允许LLMs在安全、隔离的Docker容器中运行代码,适用于安全代码执行、代码测试、用户代码验证等多种场景。

  • by pottekkat
  • Go
  • 本地部署
  • 122 星标
  • 更新于
在 GitHub 查看 pottekkat/sandbox-mcp

使用说明

沙盒MCP 是一个模型上下文协议(MCP)服务器,它使LLM(MCP主机/客户端)能够 在安全、隔离的Docker容器中运行代码.

虽然LLM非常擅长生成代码,但大多数 无法运行它们生成的代码。您最终会直接在计算机上运行此未经测试的代码,这可能会产生严重的意外后果。

为LLM提供安全测试代码的工具可以防止此类问题,并帮助您 在更少的迭代中生成更准确的代码.

沙盒MCP为LLM提供 易于使用的执行环境,任何人都可以创建和配置 通过在本地运行的简单的AI原生MCP服务器。

灵感来自 Codapi某些沙盒与 Codapi沙盒.

用例

沙盒MCP可用于许多不同的任务,包括但不限于:

  • 安全代码执行:在安全、隔离的环境中运行LLM生成的任何代码,保护您的系统免受不可信或潜在有害代码的侵害。
  • 代码测试:在将代码集成到更大的项目或生产系统之前,在各种环境中自动测试和验证各种语言和/或配置的代码。
  • 用户代码验证:安全地执行和检查用户提交的代码或脚本,确保它们按预期运行,不会执行恶意操作。
  • 网络故障排除:使用隔离的网络工具诊断连接问题、测试端点和分析网络性能,所有这些都不会暴露您的系统。
  • 教育和面试编码:立即编译和运行用于学习、教学或技术面试的代码片段,在安全、临时的环境中提供即时反馈。
  • 自动代码审查和反馈:使LLM能够自动执行、测试和审查代码,在合并或部署代码之前提供可操作的反馈或建议。

演示

此演示展示了Sandbox MCP如何与Claude Desktop配合使用。

试试 视频 如果GIF不清晰。

安装

下载二进制文件

您可以下载适用于您的操作系统的适当二进制文件(例如, Darwin)处理器架构(arm64)从 发布页面 (sandbox-mcp_Darwin_arm64.tar.gz).

通过Go安装

先决条件:

  • 达到1.24或更高
go install github.com/pottekkat/sandbox-mcp/cmd/sandbox-mcp@latest

找到通往 sandbox-mcp 二元的:

which sandbox-mcp

从源代码构建

请参阅 开发部分.

用法

初始化

使用前 sandbox-mcp 对于LLM,您需要初始化其配置:

# Create the configuration directory in
# $XDG_CONFIG_HOME/sandbox-mcp and pull
# the default sandboxes from GitHub
sandbox-mcp --pull

# Build the Docker images for the sandboxes
sandbox-mcp --build

[!注意] 确保你已经安装并运行了Docker。

使用MCP主机/客户端

将此添加到您的 claude_desktop_config.json 适用于Claude Desktop或 mcp.json 对于游标IDE:

{
    "mcpServers": {
        "sandbox-mcp": {
            "command": "path/to/sandbox-mcp",
            "args": [
                "--stdio"
            ]
        }
    }
}

[!注意] 确保更换 path/to/sandbox-mcp 与实际路径 sandbox-mcp 二元的。

可用沙盒

沙盒 描述
外壳 一个安全、隔离的Linux环境,用于运行不需要网络访问的轻量级命令。
python 在安全、隔离的环境中安全地执行Python代码。
锈 在隔离环境中编译和运行Rust代码。
网络工具 在隔离的Linux沙箱中使用各种网络实用程序。非常适合网络诊断和故障排除。看https://github.com/jonlabelle/docker-network-tools查看可用工具列表。
去 在具有网络访问权限的隔离环境中安全运行Go代码。
JavaScript 使用Node.js在隔离环境中运行JavaScript代码。
apisix 运行Apache APISIX的轻量级实例,该实例可以通过YAML文件进行配置,也可以通过main.sh文件中提供的curl命令进行交互。例如,curl-sI http://127.0.0.1:9080/ip.
Java 在隔离的沙箱中编译和运行Java代码。支持Java预览功能。

[!重要]

你自己的沙盒

您可以在中创建和添加自己的沙盒 $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"
            ]
        }
    }
}

许可证

MIT许可证