Token导航 LogoToken导航TokenDH.com
Isolator MCP Server logo
安全风控未说明官方级别未说明来源级核验

Isolator MCP Server

MCP Server

Isolator MCP Server 是一个基于 Model Context Protocol (MCP) 的代码执行沙箱服务,支持 Python、Go 和 JavaScript 代码的安全执行,适用于 LLM 应用开发。

工具数

1

提示词数

0

GitHub Stars

2

资源数

0
代码执行安全执行GoClineCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Ompragash

提供方

Ompragash

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

隔离器MCP服务器

isolator-mcp 是一个 模型上下文协议(MCP) 用TypeScript编写的服务器。它充当嵌入式系统的包装器 isolator Go CLI工具,提供可通过MCP访问的安全代码执行沙盒。

LLM应用程序(MCP主机)可以连接到此服务器并使用其 execute_code 该工具用于安全运行直接提供或从预定义代码段文件加载的Python、Go或JavaScript代码段。

特性

  • 提供 execute_code MCP工具。
  • 支持执行直接提供的代码(language, entrypoint_code)或通过命名片段(snippet_name).
  • 支持多种语言(Python、Go、JavaScript、可配置)。
  • 使用嵌入式 isolator Go CLI(isolator-cli/)用于安全的Docker容器执行。
  • 通过以下方式配置安全默认值(超时、资源限制、网络) isolator_config.json.
  • 管理主机上用于代码执行的临时目录。
  • 处理文件复制到容器中(通过指示 isolator CLI)。
  • 通过MCP设置返回结构化结果(stdout、stderr、status) isError: true 工具级故障。

先决条件

  • Docker: 容器创建和执行所需 isolator-cli.确保Docker守护进程正在运行。
  • 去: 需要构建嵌入式 isolator-cli 去二进制。
  • Node.js和npm: 需要安装依赖项、构建和运行 isolator-mcp TypeScript服务器。

安装

  1. 构建 isolator 转到CLI: 导航到嵌入式Go CLI目录并构建二进制文件:
   cd isolator-cli
   go build -o isolator main.go
   cd .. 

这将创建 ./isolator-cli/isolator 服务器所需的可执行文件。

  1. 配置 isolator-mcp:

- 编辑 isolator_config.json:更新 isolatorPath 指向所构建二进制文件的绝对路径(例如。, /Users/ompragash/Documents/Cline/MCP/isolator-mcp/isolator-cli/isolator).调整默认限制、容器工作目录、语言图像或 promptsDir (用于片段)位置(如果需要)。 - 确保 prompts 目录存在(默认值: ./prompts).添加代码片段文件(例如。, hello_world.py).文件名库(例如。, hello_world)被用作 snippet_name.

  1. 安装服务器依赖关系: 导航到主目录(isolator-mcp)并运行:
   npm install
  1. 构建服务器: 编译TypeScript代码:
   npm run build

这将在以下位置创建可执行脚本 build/index.js.

  1. 配置MCP主机: 将服务器添加到MCP客户端的设置文件中(例如。, cline_mcp_settings.json 对于VS代码扩展):
   {
     "mcpServers": {
       "isolator": {
         "command": "node",
         "args": ["/Users/ompragash/Documents/Cline/MCP/isolator-mcp/build/index.js"],
         "env": {},
         "disabled": false,
         "autoApprove": []
       }
     }
   }

*(调整路径 args 如有必要)*MCP主机应自动检测并启动服务器。

重要提示: 确保中指定的Docker镜像 isolator_config.json (例如。, python:3.11-alpine, golang:1.21-alpine)预先使用 docker pull The isolator 该工具不会自动下载丢失的图像。

本地开发/测试

要在本地运行服务器进行开发或测试(不通过MCP主机设置安装):

  1. 构建Go命令行界面: 确保 isolator Go CLI是在其子目录中构建的:
   cd isolator-cli 
   go build -o isolator main.go
   cd ..
  1. 构建TS服务器: 在这个主目录中(isolator-mcp),跑 npm installnpm run build.
  2. 配置: 确保 isolator_config.json 正确指向已建 ./isolator-cli/isolator 二进制通过 isolatorPath 键(使用绝对路径)。
  3. 运行服务器: 使用Node直接执行构建的服务器:
   node build/index.js

服务器将启动,通过stdio连接,并打印日志(包括 console.error 消息来自 index.ts)到控制台。

  1. 交互(手动): 您可以手动发送JSON-RPC消息(例如。, tools/list, tools/call)以测试服务器的响应。工具如 @modelcontextprotocol/inspector 也可能有所帮助(npm run inspector).

*(在依赖MCP主机通过设置文件启动服务器之前,请记住停止此手动运行的服务器。)*

架构与流程

  1. MCP主机请求: LLM要求MCP主机(例如VS代码扩展)调用 isolator 服务器的 execute_code 带有论据的工具。
  2. 服务器处理(index.ts):

- 收到 tools/call 通过stdio请求。 - 使用Zod验证参数。 - 从加载配置 isolator_config.json. - 确定代码源: - 如果 snippet_name 提供,从配置的文件中读取相应的文件 promptsDir 并根据文件扩展名确定语言。 - 如果 entrypoint_codelanguage 直接使用它们。 - 在主机上创建临时目录。 - 写入入口点代码和任何 additional_files 进入临时目录。 - 为嵌入式系统构造命令行参数 isolator Go CLI,包括配置中的安全标志和临时目录的路径。 - 产卵 isolator 使用Node.js的进程 child_process.spawn.

  1. Go CLI执行(isolator-cli/isolator run):

- 解析标志(包括新的 --env 旗)。 - 创建临时目录内容的tar流。 - 使用Docker SDK创建具有指定映像、资源限制和环境变量的容器(来自 --env),以及安全设置(无绑定挂载)。 - 用途 CopyToContainer 将tar流复制到容器的工作目录中。 - 启动执行所请求命令的容器(例如。, python /workspace/hello_world.py). - 等待完成,捕获stdout/stderr。 - 移除容器。 - 将结果(状态、输出等)作为JSON打印到其stdout。

  1. 服务器结果处理(index.ts):

- 读取已完成的JSON输出 isolator 进程stdout。 - 解析JSON结果。 - 格式化 CallToolResult 对于MCP,结合stdout/stderr和设置 isError 如果Go CLI报告了不成功状态。 - 将结果发送回MCP主机。 - 清理主机上的临时目录。

  1. MCP主机响应: 将结果转发回LLM,然后LLM为用户制定响应。

execute_code 工具

描述

在安全、隔离的容器环境中执行代码(Python、Go、JavaScript)。

输入模式(arguments)

  • language (字符串,可选):编程语言(例如“python”、“go”、“javascript”)。如果需要 snippet_name 未提供。
  • entrypoint_code (string,可选):要执行的主要代码内容。如果需要 snippet_name 未提供。
  • entrypoint_filename (string,可选):主代码的文件名(例如“main.py”、“script.js”)。如果未提供,则基于语言的默认值。
  • additional_files (array,可选):对象数组,每个对象具有:

- filename (string,必填):附加文件的名称。 - content (string,必填):附加文件的内容。

  • snippet_name (字符串,可选):位于配置文件中的预定义代码段文件的名称(不带扩展名) promptsDir.相互排斥 languageentrypoint_code.

约束: 要么 snippet_name 或两者 languageentrypoint_code 必须提供。

输出(CallToolResult)

  • content:一个包含单个 TextContent 对象。

- type:“文本” - text:一个包含执行时stdout和stderr组合的字符串,格式如下:

    --- stdout ---
    [Actual stdout output]
    --- stderr ---
    [Actual stderr output]

如果发生错误 *在...期间* 执行(非零退出代码,超时),文本将加上 Execution Failed (status): [error message]\n\n.

  • isError (布尔值): true 如果执行状态由 isolator CLI为“错误”或“超时”, false 否则。

*(协议级错误,如无效参数或无法启动进程,将导致标准MCP错误响应,而不是 CallToolResult)*.

目录标签

目录标签

代码执行安全执行GoCline本地部署沙箱环境多语言支持LLM应用

支持客户端

Cline

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明nonelocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP