Integrations
Enables running arbitrary JavaScript code in isolated Docker containers with controlled CPU/memory limits. The server manages container lifecycle including creation, execution, and teardown.
Allows execution of arbitrary JavaScript snippets in isolated environments, capturing stdout and supporting both one-off and session-based execution models.
Provides tools for executing Node.js code in sandboxed environments, supporting ES modules and allowing stdout capture from executed scripts.
🐢🚀 Node.js 沙盒 MCP 服务器
Node.js 服务器实现了模型上下文协议 (MCP),用于在临时 Docker 容器中运行任意 JavaScript,并动态安装 npm 依赖项。
特征
- 启动和管理隔离的 Node.js 沙盒容器
- 在容器内执行任意shell命令
- 为每个作业安装指定的 npm 依赖项
- 运行 ES 模块 JavaScript 代码片段并捕获标准输出
- 彻底拆除容器
注意:容器在受控的 CPU/内存限制下运行。
API
工具
run_js_ephemeral
在全新的一次性容器中运行一次性 JS 脚本。
输入:
image
(字符串,可选):要使用的 Docker 映像(默认值:node:20-slim
)。code
(字符串,必需):要执行的 JavaScript 源。dependencies
({ name, version }
数组,可选):要安装的 NPM 包和版本(默认值:[]
)。
行为:
- 创建一个新的容器。
- 编写
index.js
和最小的package.json
。 - 安装指定的依赖项。
- 执行脚本。
- 拆除(移除)容器。
- 返回捕获的标准输出。
- 如果您的代码在当前目录中保存了任何文件,这些文件将被自动返回。
- 图像(例如 PNG、JPEG)作为
image
内容返回。 - 其他文件(例如
.txt
、.json
)作为resource
内容返回。
- 图像(例如 PNG、JPEG)作为
**提示:**要恢复文件,只需在脚本执行期间保存它们。
示例调用:
保存文件的示例:
这将返回控制台输出和hello.txt
文件。
sandbox_initialize
启动一个新的沙盒容器。
- 输入:
image
(字符串,可选,默认值:node:20-slim
):沙盒的 Docker 映像
- 输出:容器 ID 字符串
sandbox_exec
在运行的沙箱内运行 shell 命令。
- 输入:
container_id
(字符串):来自sandbox_initialize
IDcommands
( string[] ):要执行的shell命令数组
- 输出:每个命令的组合标准输出
运行js
安装 npm 依赖项并执行 JavaScript 代码。
- 输入:
container_id
(字符串):来自sandbox_initialize
IDcode
(字符串):要运行的 JS 源(支持 ES 模块)dependencies
({ name, version }
数组,可选,默认值:[]
):npm 包名称 → semver 版本
- 行为:
- 在容器内创建临时工作区
- 编写
index.js
和最小的package.json
- 运行
npm install --omit=dev --ignore-scripts --no-audit --loglevel=error
- 执行
node index.js
并捕获 stdout - 清理工作区
- 输出:脚本标准输出
sandbox_stop
终止并删除沙盒容器。
- 输入:
container_id
(字符串):来自sandbox_initialize
ID
- 输出:确认信息
与 Claude Desktop 一起使用
将其添加到您的claude_desktop_config.json
中:
注意:确保您的工作目录指向构建的服务器,并且 Docker 已安装/正在运行。
使用技巧
- 当您想要执行以下操作时**,基于会话的工具**(
sandbox_initialize
➔run_js
➔sandbox_stop
)是理想的选择:- 保持长期沙盒容器处于打开状态。
- 在同一环境中运行多个命令或脚本。
- 逐步安装并重用依赖项。
- 使用
run_js_ephemeral
进行一次性执行非常适合:- 快速实验或简单脚本。
- 您不需要维护状态或缓存依赖的情况。
- 干净、原子运行,无需担心手动拆卸。
选择最适合您的用例的工作流程!
Docker
在容器中运行服务器(如果需要,安装 Docker 套接字):
与 VS Code 一起使用
快速安装按钮(VS Code 和 Insiders):
安装 js-sandbox-mcp (NPX) 安装 js-sandbox-mcp (Docker)
手动配置:添加到您的 VS Code settings.json
或.vscode/mcp.json
:
与 Claude Desktop 一起使用
您可以按照官方指南安装此 MCP 服务器
建造
编译并捆绑:
执照
MIT 许可证
特此授予获得此软件和相关文档文件(“软件”)副本的任何人免费许可,以无限制方式处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再授权和/或销售软件副本的权利,并允许向其提供软件的人员这样做,但须遵守以下条件:
上述版权声明和本许可声明均应包含在软件的所有副本或实质性部分中。
本软件按“原样”提供,不附带任何形式的明示或暗示保证,包括但不限于适销性、适用于特定用途和非侵权性的保证。在任何情况下,作者或版权所有者均不对因本软件或使用或以其他方式处理本软件而引起的或与之相关的任何索赔、损害或其他责任承担责任,无论是合同、侵权或其他诉讼。
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
通过动态 npm 依赖项安装,可以在隔离的 Docker 容器中运行任意 JavaScript 代码,支持短暂的一次性执行和持久的沙盒环境。
Related MCP Servers
- -securityFlicense-qualityProvides isolated Docker environments for code execution, enabling users to create and manage containers, execute multi-language code, save and reproduce development environments, ensuring security and isolation.Last updated -6Python
- -securityAlicense-qualityAn MCP server to create secure code sandbox environment for executing code within Docker containers.Last updated -69GoMIT License
- AsecurityFlicenseAqualityProvides a secure, isolated JavaScript execution environment with configurable time and memory limits for safely running code from Claude.Last updated -15JavaScript
- AsecurityFlicenseAqualityA secure JavaScript REPL server that enables executing code snippets in a sandboxed environment with memory protection, timeout handling, and comprehensive error reporting.Last updated -21,3693JavaScript