沙盒MCP服务器
一个MCP服务器,为代码执行提供隔离的Docker环境。此服务器允许您:
- 使用任何Docker镜像创建容器
- 用多种编程语言编写和执行代码
- 安装软件包并设置开发环境
- 在隔离容器中运行命令
先决条件
- Python 3.9或更高版本
- Docker已安装并正在运行
- uv包管理器(推荐)
- Docker MCP服务器(推荐)
安装
- 克隆此存储库:
git clone
cd sandbox_server- 使用uv创建和激活虚拟环境:
uv venv
source .venv/bin/activate # On Unix/MacOS
# Or on Windows:
# .venv\Scripts\activate- 安装依赖项:
uv pip install .与Claude Desktop集成
- 打开Claude Desktop的配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
- 添加沙盒服务器配置:
{
"mcpServers": {
"sandbox": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/sandbox_server",
"run",
"sandbox_server.py"
],
"env": {
"PYTHONPATH": "/absolute/path/to/sandbox_server"
}
}
}
}替换 /absolute/path/to/sandbox_server 带有项目目录的实际路径。
- 重新启动克劳德桌面
使用示例
基本用法
连接到Claude Desktop后,您可以:
- 创建一个Python容器:
Could you create a Python container and write a simple hello world program?- 用不同语言运行代码:
Could you create a C program that calculates the fibonacci sequence and run it?- 安装软件包并使用它们:
Could you create a Python script that uses numpy to generate and plot some random data?保存和复制环境
服务器提供了几种保存和复制开发环境的方法:
创建持久容器
创建容器时,可以使其持久化:
Could you create a persistent Python container with numpy and pandas installed?这将创建一个容器,该容器:
- Claude Desktop关闭后仍在运行
- 可以直接通过Docker访问
- 保留所有已安装的软件包和文件
服务器将提供以下说明:
- 直接访问容器(
docker exec) - 停止和启动容器
- 不再需要时将其删除
保存容器状态
设置环境后,您可以将其另存为Docker映像:
Could you save the current container state as an image named 'my-ds-env:v1'?这将:
- 使用您的所有内容创建一个新的Docker镜像:
- 已安装的软件包 - 已创建文件 - 配置更改
- 提供重复使用环境的说明
然后,您可以共享此图像或将其用作新容器的起点:
Could you create a new container using the my-ds-env:v1 image?生成Dockerfiles
为了使您的环境完全可复制,您可以生成一个Dockerfile:
Could you export a Dockerfile that recreates this environment?生成的Dockerfile将包括:
- 基础图像规范
- 已创建文件
- 其他设置步骤的模板
您可以使用此Dockerfile来:
- 与他人共享您的环境设置
- 版本控制您的开发环境
- 修改和自定义构建过程
- 部署到不同的系统
推荐工作流程
对于可重复的开发环境:
- 创建持久容器:
Create a persistent Python container for data science work- 安装所需的软件包并设置环境:
Install numpy, pandas, and scikit-learn in the container- 测试您的设置:
Create and run a test script to verify the environment- 保存状态:
Save this container as 'ds-workspace:v1'- 导出Dockerfile:
Generate a Dockerfile for this environment这为您提供了多种重新创建环境的选项:
- 直接使用保存的Docker镜像
- 通过修改从Dockerfile构建
- 如果需要,可以访问原始容器
安全说明
- 所有代码都在隔离的Docker容器中执行
- 使用后容器会自动移除
- 文件系统在容器之间是隔离的
- 主机系统访问受到限制
项目结构
sandbox_server/
├── sandbox_server.py # Main server implementation
├── pyproject.toml # Project configuration
└── README.md # This file可用工具
服务器提供三个主要工具:
create_container_environment:使用指定映像创建新的Docker容器create_file_in_container:在容器中创建文件execute_command_in_container:在容器中运行命令save_container_state:将容器状态保存到持久容器export_dockerfile:导出docker文件以创建持久环境exit_container:完成后关闭容器以清理环境
