319 查看 · 2026-07-07 更新
沙盒 MCP 服务器
提供隔离的 Docker 环境以执行代码的 MCP 服务器。该服务器允许您:
- 使用任意 Docker 镜像创建容器
- 在多种编程语言中编写和执行代码
- 安装包并设置开发环境
- 在隔离的容器中运行命令
先决条件
- Python 3.9 或更高版本
- 已安装并正在运行的 Docker
- uv 包管理器(推荐)
- Docker MCP 服务器(推荐)
安装
-
克隆此仓库: bash git clone
cd sandbox_server -
使用 uv 创建并激活虚拟环境: bash uv venv source .venv/bin/activate # 在 Unix/MacOS 上
或者在 Windows 上:
.venvScriptsactivate
- 安装依赖项: bash uv pip install .
与 Claude Desktop 的集成
- 打开 Claude Desktop 的配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%Claudeclaude_desktop_config.json
- 添加沙盒服务器配置: 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
使用示例
基本使用
一旦连接到 Claude Desktop,您可以:
- 创建一个 Python 容器:
能否创建一个 Python 容器并编写一个简单的“Hello World”程序?
- 在不同语言中运行代码:
能否创建一个计算斐波那契数列的 C 程序并运行它?
- 安装包并使用它们:
能否创建一个使用 numpy 生成并绘制一些随机数据的 Python 脚本?
保存和重现环境
服务器提供了几种方法来保存和重现您的开发环境:
创建持久化容器
在创建容器时,您可以使其持久化:
能否创建一个已安装 numpy 和 pandas 的持久化 Python 容器?
这将创建一个容器,该容器:
- 在 Claude Desktop 关闭后仍然运行
- 可以直接通过 Docker 访问
- 保留所有已安装的包和文件
服务器将提供以下操作的说明:
- 直接访问容器 (
docker exec) - 停止和启动容器
- 不再需要时删除它
保存容器状态
设置好环境后,可以将其保存为 Docker 镜像:
能否将当前容器状态保存为名为 my-ds-env:v1 的镜像?
这将:
- 创建一个新的 Docker 镜像,包含您的:
- 已安装的包
- 创建的文件
- 配置更改
- 提供重新使用环境的说明
然后,您可以共享此镜像或将其作为新容器的起点:
能否使用 my-ds-env:v1 镜像创建一个新容器?
生成 Dockerfile
为了使您的环境完全可重现,您可以生成一个 Dockerfile:
能否导出一个可以重现此环境的 Dockerfile?
生成的 Dockerfile 将包括:
- 基础镜像规格
- 创建的文件
- 附加设置步骤的模板
您可以使用此 Dockerfile 来:
- 与他人共享您的环境设置
- 对开发环境进行版本控制
- 修改和自定义构建过程
- 部署到不同的系统
推荐的工作流程
对于可重现的开发环境:
- 创建一个持久化容器:
创建一个用于数据科学工作的持久化 Python 容器
- 安装所需的包并设置环境:
在容器中安装 numpy、pandas 和 scikit-learn
- 测试您的设置:
创建并运行一个测试脚本来验证环境4. 保存状态:
将此容器保存为 ds-workspace:v1
- 导出 Dockerfile:
为此环境生成一个 Dockerfile
这为您重新创建环境提供了多种选择:
- 直接使用保存的 Docker 镜像
- 通过修改后的 Dockerfile 构建
- 如有需要,访问原始容器
安全注意事项
- 所有代码都在隔离的 Docker 容器中执行
- 容器在使用后会自动删除
- 容器之间的文件系统是隔离的
- 对主机系统的访问受到限制
项目结构
sandbox_server/ ├── sandbox_server.py # 主服务器实现 ├── pyproject.toml # 项目配置 └── README.md # 此文件
可用工具
服务器提供了三个主要工具:
create_container_environment: 使用指定镜像创建一个新的 Docker 容器create_file_in_container: 在容器中创建文件execute_command_in_container: 在容器中运行命令save_container_state: 将容器状态保存到持久化容器export_dockerfile: 导出 Dockerfile 以创建持久化环境exit_container: 关闭容器以清理环境
服务配置
[{'mcpServers': {'sandbox': {'args': ['--directory', '/absolute/path/to/sandbox_server', 'run', 'sandbox_server.py'], 'command': 'uv', 'env': {'PYTHONPATH': '/absolute/path/to/sandbox_server'}}}}]
来源
- 来源:github
- 链接:https://github.com/Tsuchijo/sandbox-mcp