项目简介
这是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为连接到它的 LLM 客户端提供一个安全隔离的代码执行环境。它利用 Docker 容器来运行 LLM 产生的代码,确保代码执行不会影响到宿主系统。
主要功能点
- 安全执行: 在隔离的 Docker 容器中运行代码,限制对宿主系统的访问。
- 多语言支持: 当前主要支持 Python 代码执行,并可方便地扩展支持其他语言。
- 资源限制: 限制代码执行时可用的 CPU 和内存资源,防止滥用。
- MCP 集成: 完全兼容 Model Context Protocol,作为 LLM 的外部功能后端。
- 自动管理: 自动处理 Docker 容器的创建、依赖安装和停止清理。
安装步骤
- 安装依赖软件: 确保你的系统已安装 Docker (Docker Desktop 或 Docker Engine) 和 Python 3.10 或更高版本。
- 克隆仓库: 将项目代码下载到本地。
- 创建并激活虚拟环境: 推荐使用 Python 虚拟环境隔离项目依赖。
- 安装项目依赖: 进入项目目录,使用 pip 安装 'requirements.txt' 中列出的库,包括 'mcp' SDK 和 'docker' Python SDK。
服务器配置
这个 MCP 服务器需要由支持 MCP 协议的 LLM 客户端(如 Cursor, Claude Desktop)来启动和连接。你需要在 LLM 客户端的 MCP 设置中添加一项配置,告诉它如何启动和连接到这个服务器。
配置信息通常包含:
- 服务器名称: 一个标识符,比如 'docker-sandbox'。
- 启动命令 (command): 启动服务器的可执行文件路径,通常是 'python'。
- 启动参数 (args): 传递给启动命令的参数,通常是 'main.py' 脚本的绝对路径。例如:'/绝对/路径/到/你的/mcp-docker-interpreter/main.py'。
- 环境变量 (env): 如果需要指定 Docker 连接方式(例如使用 Colima),可能需要设置 'DOCKER_HOST' 环境变量。例如:'{"DOCKER_HOST": "unix:///路径/到/你的/docker.sock"}'。
请根据你的实际文件路径和 Docker 配置,在 LLM 客户端的 MCP 设置界面中填入这些信息。
基本使用方法
一旦在 LLM 客户端中配置并启动了 MCP 服务器,LLM Agent 就可以通过调用服务器暴露的工具来使用代码执行功能:
- 初始化沙箱 ('initialize_sandbox'): LLM Agent 调用此工具来创建一个新的 Docker 容器沙箱。可以指定使用的 Docker 镜像(例如 'alpine:latest')。
- 执行代码 ('execute_code'): LLM Agent 调用此工具,并传入要执行的代码字符串和指定的编程语言(当前主要支持 'python')。服务器将在沙箱容器内运行代码,捕获输出和错误,并将结果返回给 Agent。
- 停止沙箱 ('stop_sandbox'): LLM Agent 调用此工具来停止并移除当前使用的沙箱容器,释放资源。
LLM Agent 会根据任务需求自动调用这些工具来执行代码,获取结果,并利用结果进行后续的推理或任务完成。
信息
分类
AI与计算