article
README
🚀 MCP Docker沙箱解释器
MCP Docker沙箱解释器是一个基于Docker的安全代码执行环境,专为模型上下文协议(MCP)打造。它能让AI助手在不直接访问主机系统的情况下运行代码,所有代码都在隔离的Docker容器中执行,保障了代码执行的安全性。
🚀 快速开始
该项目提供了一个安全的沙箱,用于通过Model Context Protocol (MCP) 执行代码。它允许AI助手在无需直接访问主机系统的情况下运行代码,所有代码均在隔离的Docker容器中执行。其运行流程如下:
graph LR
A[Claude/Cursor] -->|发送代码| B[MCP服务器]
B -->|执行代码| C[Docker沙箱]
C -->|返回结果| A
✨ 主要特性
- 安全执行:代码在具有严格安全限制的隔离Docker容器中运行
- 多语言支持:目前支持Python,其他语言易于扩展
- 资源限制:CPU和内存限制以防止滥用
- MCP集成:完全兼容Model Context Protocol
- 自动设置:处理容器创建、依赖安装和清理
📦 安装指南
安装需求
- Docker(桌面或引擎)
- Python 3.10+
- MCP SDK (
pip install mcp) - Docker Python SDK (
pip install docker)
安装步骤
-
克隆此仓库:
git clone https://github.com/yourusername/mcp-docker-interpreter.git cd mcp-docker-interpreter -
创建并激活虚拟环境:
python -m venv .venv source .venv/bin/activate # 在Windows上:.venv\Scripts\activate -
安装依赖项:
pip install -r requirements.txt
💻 使用示例
启动MCP服务器
运行以下命令启动服务器:
# 对于Colima用户:
export DOCKER_HOST="unix:///Users/username/.colima/default/docker.sock"
# 运行服务器
uv run mcp dev main.py
与AI助手连接
你可以将此MCP服务器连接到支持Model Context Protocol的AI助手:
Cursor
在Cursor中,将以下内容添加到你的MCP设置中:
{
"mcpServers": {
"docker-sandbox": {
"command": "python",
"args": ["/绝对路径/到/your/main.py"],
"env": {
"DOCKER_HOST": "unix:///path/to/your/docker.sock"
}
}
}
}
将路径替换为你的实际文件路径。
Claude Desktop
与Cursor类似,将配置添加到Claude Desktop的MCP设置中。
MCP工具
此MCP服务器暴露了三个主要工具:
-
initialize_sandbox:创建一个新的Docker容器用于代码执行
参数: - image: 要使用的Docker镜像(默认:"alpine:latest") -
execute_code:在已初始化的沙箱中运行代码
参数: - code: 要执行的代码字符串 - language: 代码的语言(默认:"python") -
clean_container:清理不再需要的容器
无参数
📚 详细文档
工作原理
-
初始化阶段:
- 创建并启动一个Docker容器。
- 配置基本的开发环境。
-
执行阶段:
- 将代码发送到容器中。
- 在指定语言的环境中运行代码。
- 返回执行结果或错误信息。
-
清理阶段:
- 定期检查并清理不再需要的容器,以释放资源。
安全考虑
- 隔离:所有代码均在独立的Docker容器中运行,防止恶意代码影响主机系统。
- 限制:对CPU和内存使用设置上限,防止资源滥用。
- 监控:支持实时监控和终止异常行为的进程。
开发信息
- 该项目基于Docker SDK for Python构建,提供了强大的容器管理功能。
- 完全兼容Model Context Protocol,可与其他MCP工具和服务集成。
微信扫一扫