项目简介

这是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为连接到它的 LLM 客户端提供一个安全隔离的代码执行环境。它利用 Docker 容器来运行 LLM 产生的代码,确保代码执行不会影响到宿主系统。

主要功能点

  • 安全执行: 在隔离的 Docker 容器中运行代码,限制对宿主系统的访问。
  • 多语言支持: 当前主要支持 Python 代码执行,并可方便地扩展支持其他语言。
  • 资源限制: 限制代码执行时可用的 CPU 和内存资源,防止滥用。
  • MCP 集成: 完全兼容 Model Context Protocol,作为 LLM 的外部功能后端。
  • 自动管理: 自动处理 Docker 容器的创建、依赖安装和停止清理。

安装步骤

  1. 安装依赖软件: 确保你的系统已安装 Docker (Docker Desktop 或 Docker Engine) 和 Python 3.10 或更高版本。
  2. 克隆仓库: 将项目代码下载到本地。
  3. 创建并激活虚拟环境: 推荐使用 Python 虚拟环境隔离项目依赖。
  4. 安装项目依赖: 进入项目目录,使用 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 就可以通过调用服务器暴露的工具来使用代码执行功能:

  1. 初始化沙箱 ('initialize_sandbox'): LLM Agent 调用此工具来创建一个新的 Docker 容器沙箱。可以指定使用的 Docker 镜像(例如 'alpine:latest')。
  2. 执行代码 ('execute_code'): LLM Agent 调用此工具,并传入要执行的代码字符串和指定的编程语言(当前主要支持 'python')。服务器将在沙箱容器内运行代码,捕获输出和错误,并将结果返回给 Agent。
  3. 停止沙箱 ('stop_sandbox'): LLM Agent 调用此工具来停止并移除当前使用的沙箱容器,释放资源。

LLM Agent 会根据任务需求自动调用这些工具来执行代码,获取结果,并利用结果进行后续的推理或任务完成。

信息

分类

AI与计算