
Sandbox MCP Server
为代码执行提供隔离的 Docker 环境,使用户能够创建和管理容器、执行多语言代码、保存和重现开发环境,从而确保安全性和隔离性。
README
沙盒 MCP 服务器
一个 MCP 服务器,提供用于代码执行的隔离 Docker 环境。 此服务器允许您:
- 使用任何 Docker 镜像创建容器
- 使用多种编程语言编写和执行代码
- 安装软件包并设置开发环境
- 在隔离的容器中运行命令
前提条件
- Python 3.9 或更高版本
- 已安装并运行 Docker
- uv 包管理器(推荐)
- Docker MCP 服务器(推荐)
安装
- 克隆此存储库:
git clone <your-repo-url>
cd sandbox_server
- 使用 uv 创建并激活虚拟环境:
uv venv
source .venv/bin/activate # 在 Unix/MacOS 上
# 或者在 Windows 上:
# .venv\Scripts\activate
- 安装依赖项:
uv pip install .
与 Claude Desktop 集成
- 打开 Claude Desktop 的配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%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
使用示例
基本用法
连接到 Claude Desktop 后,您可以:
- 创建一个 Python 容器:
Could you create a Python container and write a simple hello world program?
(你能创建一个 Python 容器并编写一个简单的 hello world 程序吗?)
- 使用不同的语言运行代码:
Could you create a C program that calculates the fibonacci sequence and run it?
(你能创建一个计算斐波那契数列的 C 程序并运行它吗?)
- 安装软件包并使用它们:
Could you create a Python script that uses numpy to generate and plot some random data?
(你能创建一个使用 numpy 生成和绘制一些随机数据的 Python 脚本吗?)
保存和重现环境
服务器提供了几种保存和重现您的开发环境的方法:
创建持久容器
创建容器时,您可以使其持久化:
Could you create a persistent Python container with numpy and pandas installed?
(你能创建一个安装了 numpy 和 pandas 的持久 Python 容器吗?)
这将创建一个容器,该容器:
- 在 Claude Desktop 关闭后保持运行
- 可以通过 Docker 直接访问
- 保留所有已安装的软件包和文件
服务器将提供以下说明:
- 直接访问容器 (
docker exec
) - 停止和启动容器
- 不再需要时删除它
保存容器状态
设置好环境后,您可以将其保存为 Docker 镜像:
Could you save the current container state as an image named 'my-ds-env:v1'?
(你能将当前容器状态保存为名为 'my-ds-env:v1' 的镜像吗?)
这将:
- 创建一个包含以下所有内容的新 Docker 镜像:
- 已安装的软件包
- 创建的文件
- 配置更改
- 提供重用环境的说明
然后,您可以共享此镜像或将其用作新容器的起点:
Could you create a new container using the my-ds-env:v1 image?
(你能使用 my-ds-env:v1 镜像创建一个新容器吗?)
生成 Dockerfile
为了使您的环境完全可重现,您可以生成一个 Dockerfile:
Could you export a Dockerfile that recreates this environment?
(你能导出一个可以重新创建此环境的 Dockerfile 吗?)
生成的 Dockerfile 将包括:
- 基础镜像规范
- 创建的文件
- 其他设置步骤的模板
您可以使用此 Dockerfile 来:
- 与他人共享您的环境设置
- 对您的开发环境进行版本控制
- 修改和自定义构建过程
- 部署到不同的系统
推荐工作流程
对于可重现的开发环境:
- 创建一个持久容器:
Create a persistent Python container for data science work
(创建一个用于数据科学工作的持久 Python 容器)
- 安装所需的软件包并设置环境:
Install numpy, pandas, and scikit-learn in the container
(在容器中安装 numpy、pandas 和 scikit-learn)
- 测试您的设置:
Create and run a test script to verify the environment
(创建并运行一个测试脚本来验证环境)
- 保存状态:
Save this container as 'ds-workspace:v1'
(将此容器保存为 'ds-workspace:v1')
- 导出 Dockerfile:
Generate a Dockerfile for this environment
(为此环境生成一个 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
: 导出 docker 文件以创建持久环境exit_container
: 关闭容器以在完成后清理环境
推荐服务器

Brev
在云端运行、构建、训练和部署机器学习模型。
metoro-mcp-server
使用LLM查询和交互由Metoro监控的Kubernetes环境。查看APM、指标、追踪和性能分析信息。
MCP2Lambda
通过 MCP 协议,人工智能模型能够与 AWS Lambda 函数交互,从而在安全的环境中访问私有资源、实时数据和自定义计算。
mcp-k8s-go
这个项目旨在成为一个连接到 Kubernetes 的 MCP 服务器,同时也是一个用于为 Kubernetes 中任何自定义资源构建更多服务器的库。
Room MCP
一个命令行工具,可以使用 Room 协议启用 MCP,允许代理创建点对点虚拟房间并进行交互,以实现目标导向的协作。
MCP 3D Printer Server
通过 MCP 服务器实现与 3D 打印机管理系统的交互,支持 STL 文件操作、切片以及对 OctoPrint、Klipper、Duet 等打印机的控制。
MCP Server Template
一个用于在 TypeScript 中创建模型上下文协议 (MCP) 服务器的模板,提供诸如基于容器的依赖注入、基于服务的架构以及与 LLM CLI 的集成等功能,以便通过自然语言获得架构设计反馈。
Ollama MCP Server
一个桥梁,能够将 Ollama 的本地 LLM 功能无缝集成到 MCP 驱动的应用程序中,允许用户在本地管理和运行 AI 模型,并提供完整的 API 覆盖。
MCP Code Executor
允许大型语言模型 (LLM) 在指定的 Conda 环境中执行 Python 代码,从而能够访问必要的库和依赖项,以实现高效的代码执行。
docker-mcp
一个强大的模型上下文协议(MCP)服务器,用于 Docker 操作,通过 Claude AI 实现无缝的容器和 Compose 堆栈管理。