mcp/node-code-sandboxNode.js Sandbox MCP Server 是一个基于 Node.js 的模型上下文协议(Model Context Protocol,MCP)服务器,通过启动临时 Docker 容器来安全执行任意 JavaScript 代码。
什么是 MCP 服务器?
| 属性 | 详情 |
|---|---|
| Docker 镜像 | mcp/node-code-sandbox |
| 作者 | alfonsograziano |
| 代码仓库 | [***] |
| Dockerfile | [***] |
| 镜像构建方 | Docker Inc. |
| Docker Scout 健康评分 | !Docker Scout Health Score |
| 签名验证命令 | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/node-code-sandbox --key [***] |
| 许可证 | 未提供 |
| 工具名称 | 简要描述 |
|---|---|
get_dependency_types | 获取 npm 包的 TypeScript 类型定义(自带或 @types/ 包)及原始 .d.ts 文本 |
run_js | 在运行中的沙箱容器内安装 npm 依赖并执行 JavaScript 代码 |
run_js_ephemeral | 在临时容器中执行 JavaScript 代码,支持可选依赖,执行后自动清理容器 |
sandbox_exec | 在运行中的沙箱容器内执行一个或多个 shell 命令 |
sandbox_initialize | 启动新的隔离 Docker 容器(运行 Node.js),用于多命令/脚本的沙箱会话 |
sandbox_stop | 终止并移除运行中的沙箱容器 |
search_npm_packages | 按关键词搜索 npm 包,返回名称、描述及 README 片段 |
get_dependency_types描述:给定 npm 包名数组(可选包含版本),获取每个包是否自带 TypeScript 定义或有对应的 @types/… 包,并返回原始 .d.ts 文本。
适用场景:执行未知依赖的 Node.js 脚本前,检查依赖的 API 和类型定义。
| 参数 | 类型 | 描述 |
|---|---|---|
dependencies | array | npm 包名数组(可选包含版本信息) |
run_js描述:在运行中的沙箱容器内安装 npm 依赖并执行 JavaScript 代码。执行后需手动停止沙箱以释放资源。代码必须为 valid ES 模块(使用 import/export 语法)。适用于需跨多次执行复用环境的复杂工作流。
注意:Node.js 进程读写文件时,需使用 "./files" 目录以确保挂载卷上的持久化。
| 参数 | 类型 | 描述 |
|---|---|---|
code | string | 容器内执行的 JavaScript 代码 |
container_id | string | Docker 容器标识符 |
dependencies | array | 可选,npm 依赖列表(每个项包含 name 和 version) |
listenOnPort | number | 可选,若设置,保持进程运行并暴露端口到主机 |
run_js_ephemeral描述:在临时容器中执行 JavaScript 代码,支持可选 npm 依赖,执行后自动清理容器。代码必须为 valid ES 模块。适用于简单的一次性执行,无需手动管理沙箱或清理。
注意:文件读写需使用 "./files" 目录以确保持久化(含图片、文本、JSON 等文件)。
| 参数 | 类型 | 描述 |
|---|---|---|
code | string | 临时容器内执行的 JavaScript 代码 |
dependencies | array | 可选,npm 依赖列表(每个项包含 name 和 version) |
image | string | 可选,临时执行使用的 Docker 镜像,支持: - node:lts-slim:轻量 Node.js LTS 版本- mcr.microsoft.com/playwright:v1.55.0-noble:Playwright 浏览器自动化镜像- alfonsograziano/node-chartjs-canvas:latest:Chart.js 和 Mermaid 图表生成镜像(示例:js<br>import fs from "fs";<br>import { run } from "@mermaid-js/mermaid-cli";<br>fs.writeFileSync("./files/diagram.mmd", "graph LR; A-->B;", "utf8");<br>await run("./files/diagram.mmd", "./files/diagram.svg");<br>) |
sandbox_exec描述:在运行中的沙箱容器内执行一个或多个 shell 命令。需事先初始化沙箱。
| 参数 | 类型 | 描述 |
|---|---|---|
commands | array | 待执行的 shell 命令数组 |
container_id | string | Docker 容器标识符 |
sandbox_initialize描述:启动新的隔离 Docker 容器(运行 Node.js),用于设置支持多命令/脚本的沙箱会话。
| 参数 | 类型 | 描述 |
|---|---|---|
image | string | 可选,使用的 Docker 镜像 |
port | number | 可选,将容器端口映射到主机 |
sandbox_stop描述:终止并移除运行中的沙箱容器。在使用 sandbox_initialize 初始化的沙箱完成工作后调用。
| 参数 | 类型 | 描述 |
|---|---|---|
container_id | string | Docker 容器标识符 |
search_npm_packages描述:按关键词搜索 npm 包,返回名称、描述及 README 片段。
| 参数 | 类型 | 描述 |
|---|---|---|
searchTerm | string | 搜索关键词,可使用加号(+)组合相关术语(如 "react+components");作者/范围筛选建议使用 qualifiers 参数 |
qualifiers | object | 可选,筛选条件,如 { not: "insecure" }(排除不安全包)、{ author: "sindresorhus" }(指定作者)、{ scope: "@vue" }(指定范围) |
在 MCP 配置中添加以下内容以使用此服务器:
json{ "mcpServers": { "node-code-sandbox": { "command": "docker", "args": [ "run", "-i", "--rm", "mcp/node-code-sandbox" ] } } }
Docker 官方博客:模型上下文协议(MCP)—— 简化使用 Anthropic Claude Desktop 和 Docker 构建 AI 应用


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务