项目简介

MCP Sandbox 是一个强大的工具,可以将任何标准的JavaScript模块(或TypeScript模块)快速转化为一个遵循 Model Context Protocol (MCP) 的服务器。它通过自动分析模块导出的函数,将这些函数注册为AI可调用的“工具”,并在安全的沙箱环境中执行这些工具。这使得LLM(大型语言模型)客户端能够安全、便捷地访问和利用现有的JavaScript代码能力,例如进行数学计算、字符串处理、文件操作等。

主要功能点

  • 工具自动发现: 自动解析JavaScript模块,识别可导出的函数,并根据JSDoc注释和参数信息生成MCP工具定义。
  • 沙箱安全执行: 在独立的、受控的虚拟机环境中运行JavaScript函数,有效隔离代码执行,防止潜在的安全风险,并支持设置执行时间和内存限制。
  • MCP协议支持: 完全遵循MCP协议规范,支持JSON-RPC 2.0进行请求/响应通信,以及Server-Sent Events (SSE) 进行实时通知,方便与兼容的MCP客户端集成。
  • REST API (测试用): 提供方便的RESTful接口,用于人工测试和验证发现的工具。
  • 配置生成: 可以生成标准的MCP配置文件,包含服务器能力和工具信息,供MCP客户端直接加载使用。

安装步骤

  1. 确保您已安装 Node.js (版本 16 或更高) 和 npm 或 pnpm。

  2. 通过 npm 或 pnpm 全局安装 MCP Sandbox CLI:

    npm install -g @mcp-sandbox/cli
    # 或者使用 pnpm
    pnpm install -g @mcp-sandbox/cli

    或在您的项目中使用:

    npm install @mcp-sandbox/core @mcp-sandbox/cli
    # 或者使用 pnpm
    pnpm install @mcp-sandbox/core @mcp-sandbox/cli

服务器配置

MCP客户端通常需要以下信息来连接并启动 MCP Sandbox 服务器:

客户端配置通常是一个JSON对象,包含:

  • 'server name': 字符串,给服务器起一个易于识别的名称,例如 '"MyJSTools"'。
  • 'command': 字符串,用于启动服务器的可执行命令。如果全局安装了 '@mcp-sandbox/cli',通常是 '"mcp-sandbox"'。如果是在项目中使用并希望通过 'npx' 启动,可以是 '"npx"'。
  • 'args': 字符串数组,传递给 'command' 的命令行参数。这是指定要加载哪个JavaScript模块以及服务器配置的关键部分。

'args' 数组应包含以下基本参数:

  • 第一个参数:'"start"' (指示 mcp-sandbox CLI 执行启动服务器的操作)
  • 第二个参数:要加载的JavaScript模块文件的路径,例如 '"./path/to/your/module.js"' (相对于客户端启动目录的路径)。
  • 可选参数:可以添加其他参数来自定义服务器行为,例如:
    • '"--port"', '"3000"':指定服务器监听的端口(默认为 3000)。
    • '"--host"', '"localhost"':指定服务器监听的主机名或IP(默认为 localhost)。
    • '"--timeout"', '"5000"':设置工具执行的超时时间(毫秒,默认为 5000)。

例如,一个客户端的MCP服务器配置 JSON 可能看起来像(仅为说明结构,请根据实际情况调整参数):

{
  "name": "MyJSToolsSandbox",
  "command": "mcp-sandbox",
  "args": [
    "start",
    "./tools/my-utils.js",
    "--port",
    "3001",
    "--timeout",
    "10000"
  ]
}

客户端会使用这个 'command' 和 'args' 来启动服务器进程,然后通过配置中自动生成的端点(如 '/mcp/jsonrpc' 和 '/sse')进行通信。

基本使用方法

  1. 准备一个JavaScript文件,例如 'my-module.js',并在其中导出一些函数(例如,包含 JSDoc 注释以提供描述)。

  2. 打开终端,运行以下命令启动MCP Sandbox服务器,加载您的模块:

    mcp-sandbox start ./my-module.js
  3. 服务器启动后,您将看到输出显示服务器运行的地址以及各个MCP端点的URL,例如:

    🚀 MCP Sandbox server running at http://localhost:3000
    📋 MCP Tools: http://localhost:3000/mcp/tools
    ⚡ MCP Execute: http://localhost:3000/mcp/execute
    🔄 MCP SSE: http://localhost:3000/sse
    📡 MCP JSON-RPC: http://localhost:3000/mcp/jsonrpc
    ⚙️  MCP Config: http://localhost:3000/mcp-config
  4. 您的MCP客户端可以使用 '/mcp-config' 端点获取完整的服务器配置,然后通过 '/mcp/jsonrpc' 端点调用在 'my-module.js' 中发现的函数(工具),并通过 '/sse' 端点接收实时通知。

信息

分类

AI与计算