项目简介
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客户端直接加载使用。
安装步骤
-
确保您已安装 Node.js (版本 16 或更高) 和 npm 或 pnpm。
-
通过 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')进行通信。
基本使用方法
-
准备一个JavaScript文件,例如 'my-module.js',并在其中导出一些函数(例如,包含 JSDoc 注释以提供描述)。
-
打开终端,运行以下命令启动MCP Sandbox服务器,加载您的模块:
mcp-sandbox start ./my-module.js -
服务器启动后,您将看到输出显示服务器运行的地址以及各个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 -
您的MCP客户端可以使用 '/mcp-config' 端点获取完整的服务器配置,然后通过 '/mcp/jsonrpc' 端点调用在 'my-module.js' 中发现的函数(工具),并通过 '/sse' 端点接收实时通知。
信息
分类
AI与计算