使用说明

项目简介

Deno Sandbox MCP服务器是一个基于 Model Context Protocol (MCP) 的后端实现,它使用 Deno 运行时环境为大型语言模型 (LLM) 客户端提供一个安全的沙箱环境来执行 TypeScript 和 JavaScript 代码。该服务器允许用户通过细粒度的权限控制,限制代码的访问能力,从而安全地扩展 LLM 的功能。

主要功能点

  • 代码沙箱执行: 在受控的 Deno 运行时环境中执行 TypeScript/JavaScript 代码,隔离潜在的恶意代码。
  • 细粒度权限控制: 基于 Deno 的权限系统,允许用户通过命令行参数灵活配置代码的运行时权限,例如网络访问、文件系统访问等。
  • 资源管理: 提供 "permissions://deno" 资源,允许客户端查询当前服务器的 Deno 权限配置。
  • 工具注册与调用: 注册 "runTypescript" 工具,允许 LLM 客户端请求服务器执行指定的 TypeScript 代码,并将执行结果返回给客户端。
  • 清晰的错误提示: 当代码执行因权限不足或其他错误失败时,服务器返回详细的错误信息,帮助用户理解和解决问题。

安装步骤

本仓库无需传统意义上的安装步骤。您需要确保已安装 DenoNode.js (以及 npm)。

服务器配置

要将此 MCP 服务器与 MCP 客户端(例如 Claude Desktop)配合使用,您需要在客户端的配置文件中添加服务器配置信息。以下是两种配置示例,分别适用于已安装 Deno 和 Node.js 的情况。

如果已安装 Deno

{
  "mcpServers": {
    "denoSandbox": {
      "command": "deno",
      "args": [
        "run",
        "npm:mcp-deno-sandbox",
        "--allow-net=example.com"  // 示例权限:允许访问 example.com 域名
        // 您可以根据需要添加其他 Deno 权限参数,例如 --allow-read, --allow-write=/tmp 等
      ]
    }
  }
}

如果已安装 Node.js

{
  "mcpServers": {
    "denoSandbox": {
      "command": "npx",
      "args": [
        "mcp-deno-sandbox",
        "--allow-net=example.com"  // 示例权限:允许访问 example.com 域名
        // 您可以根据需要添加其他 Deno 权限参数,例如 --allow-read, --allow-write=/tmp 等
      ]
    }
  }
}

配置参数说明:

  • 'server name': 'denoSandbox' (服务器名称,客户端用于标识和调用)
  • 'command': 启动服务器的命令。
    • 如果您已安装 Deno 并将其添加到系统 PATH 环境变量,则可以使用 '"deno"'。
    • 如果您使用 Node.js 和 npm,可以使用 '"npx"',它会自动查找并执行 'mcp-deno-sandbox' 包。
  • 'args': 传递给服务器命令的参数数组。
    • '"run"' (仅当 command 为 "deno" 时): Deno 的 'run' 子命令,用于执行脚本。
    • '"npm:mcp-deno-sandbox"' (仅当 command 为 "deno" 时): 指定从 npm 安装并运行 'mcp-deno-sandbox' 包。
    • '"mcp-deno-sandbox"' (当 command 为 "npx" 时): 指定要执行的 npm 包 'mcp-deno-sandbox'。
    • '--allow-net=example.com': 示例权限参数。 这指示 Deno 运行时允许代码进行网络访问,但仅限于 'example.com' 域名。您可以根据需要修改或添加其他 Deno 权限参数。 请务必根据实际需求配置合适的权限,以确保安全性和功能性。 更多 Deno 权限选项请参考 Deno Security

基本使用方法

配置完成后,MCP 客户端将能够连接到此服务器。客户端可以:

  1. 查询权限资源: 客户端可以请求读取 "permissions://deno" 资源,以获取服务器当前配置的 Deno 权限信息。
  2. 调用 runTypescript 工具: 客户端可以调用 "runTypescript" 工具,并提供 TypeScript 代码作为参数。服务器将在 Deno 沙箱中执行代码,并将执行结果返回给客户端。

注意: 您需要在启动服务器时通过命令行参数设置 Deno 权限。修改权限配置后,需要重启服务器才能生效。 请仔细阅读 Security Considerations 部分,了解安全风险并谨慎配置权限。

信息

分类

开发者工具