Skip to main content
Glama

Node.js Sandbox MCP Server

🐢🚀 Node.js Sandbox MCP-сервер

Сервер Node.js, реализующий протокол контекста модели (MCP) для запуска произвольного JavaScript в эфемерных контейнерах Docker с установкой зависимостей npm «на лету».

Предварительный просмотр веб-сайта

👉 Посмотрите на официальном сайте

Функции

  • Запуск и управление изолированными контейнерами-песочницами Node.js
  • Выполнять произвольные команды оболочки внутри контейнеров
  • Установить указанные зависимости npm для каждого задания
  • Запуск фрагментов JavaScript модуля ES и захват stdout
  • Аккуратно разбирайте контейнеры.
  • Режим Detached: сохранение контейнера активным после выполнения скрипта (например, для долго работающих серверов)

Примечание: контейнеры работают с контролируемыми ограничениями ЦП/памяти.

Изучите интересные варианты использования

Если вам нужны идеи для интересных и эффективных способов использования этой библиотеки, ознакомьтесь с разделом вариантов использования на веб-сайте. Он содержит тщательно подобранный список подсказок, примеров и творческих экспериментов, которые вы можете попробовать с сервером Node.js Sandbox MCP.

⚠️ Предварительные условия

Для использования этого сервера MCP на вашем компьютере должен быть установлен и запущен Docker.

Совет: заранее извлеките все необходимые образы Docker, чтобы избежать задержек при первом запуске.

Примеры рекомендуемых изображений:

  • узел:lts-slim
  • mcr.microsoft.com/playwright:v1.52.0-noble
  • alfonsograziano/node-chartjs-canvas:последняя версия

Начиная

Чтобы начать работу с этим MCP-сервером, прежде всего вам необходимо подключить его к клиенту (например, Claude Desktop).

После запуска вы можете проверить его полную работоспособность с помощью нескольких тестовых команд:

  • Убедитесь, что инструмент может работать:
    Create and run a JS script with a console.log("Hello World")
    Это должно запустить console.log, и в ответе инструмента вы должны увидеть Hello World.
  • Убедитесь, что вы можете устанавливать зависимости и сохранять файлы.
    Create and run a JS script that generates a QR code for the URL `https://nodejs.org/en`, and save it as `qrcode.png` **Tip:** Use the `qrcode` package.
    Это должно создать файл в смонтированном каталоге (например, на рабочем столе) с именем «qrcode.png».

Использование с Claude Desktop

Добавьте это в ваш claude_desktop_config.json : Вы можете следовать официальному руководству по установке этого сервера MCP

{ "mcpServers": { "js-sandbox": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "/var/run/docker.sock:/var/run/docker.sock", "-v", "$HOME/Desktop/sandbox-output:/root", "-e", "FILES_DIR=$HOME/Desktop/sandbox-output", "-e", "SANDBOX_MEMORY_LIMIT=512m", // optional "-e", "SANDBOX_CPU_LIMIT=0.75", // optional "alfonsograziano/node-code-sandbox-mcp" ] } } }

или с NPX:

{ "mcpServers": { "node-code-sandbox-mcp": { "type": "stdio", "command": "npx", "args": ["-y", "node-code-sandbox-mcp"], "env": { "FILES_DIR": "/Users/alfonsograziano/Desktop/node-sandbox", "SANDBOX_MEMORY_LIMIT": "512m", // optional "SANDBOX_CPU_LIMIT": "0.75" // optional } } } }

Примечание: убедитесь, что ваш рабочий каталог указывает на созданный сервер, а Docker установлен/запущен.

Докер

Запустите сервер в контейнере (при необходимости смонтируйте сокет Docker) и передайте нужный вам выходной каталог хоста как переменную окружения:

# Build locally if necessary # docker build -t alfonsograziano/node-code-sandbox-mcp . docker run --rm -it \ -v /var/run/docker.sock:/var/run/docker.sock \ -v "$HOME/Desktop/sandbox-output":"/root" \ -e FILES_DIR="$HOME/Desktop/sandbox-output" \ -e SANDBOX_MEMORY_LIMIT="512m" \ -e SANDBOX_CPU_LIMIT="0.5" \ alfonsograziano/node-code-sandbox-mcp stdio

Эта привязка монтирует вашу папку хоста в контейнер по тому же абсолютному пути и делает FILES_DIR доступным внутри сервера MCP.

Использование с VS Code

Кнопки быстрой установки (VS Code и Insiders):

Установить js-sandbox-mcp (NPX) Установить js-sandbox-mcp (Docker)

Ручная настройка : добавьте в settings.json или .vscode/mcp.json вашего VS Code:

"mcp": { "servers": { "js-sandbox": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "/var/run/docker.sock:/var/run/docker.sock", "-v", "$HOME/Desktop/sandbox-output:/root", "-e", "FILES_DIR=$HOME/Desktop/sandbox-output", "-e", "SANDBOX_MEMORY_LIMIT=512m", "-e", "SANDBOX_CPU_LIMIT=1", "alfonsograziano/node-code-sandbox-mcp" ] } } }

API

Инструменты

run_js_эфемерный

Запустите одноразовый JS-скрипт в совершенно новом одноразовом контейнере.

Входные данные:

  • image (строка, необязательно): образ Docker для использования (по умолчанию: node:lts-slim ).
  • code (строка, обязательно): исходный код JavaScript для выполнения.
  • dependencies (массив { name, version } , необязательно): пакеты NPM и версии для установки (по умолчанию: [] ).

Поведение:

  1. Создает новый контейнер.
  2. Записывает ваш index.js и минимальный package.json .
  3. Устанавливает указанные зависимости.
  4. Выполняет скрипт.
  5. Разбирает (снимает) контейнер.
  6. Возвращает захваченный stdout.
  7. Если ваш код сохраняет какие-либо файлы в текущем каталоге, эти файлы будут возвращены автоматически.
    • Изображения (например, PNG, JPEG) возвращаются как содержимое image .
    • Другие файлы (например, .txt , .json ) возвращаются как содержимое resource .
    • Примечание: функция сохранения файлов в настоящее время доступна только в эфемерном инструменте.

Совет: чтобы вернуть файлы, просто сохраните их во время выполнения скрипта.

Пример вызова:

{ "name": "run_js_ephemeral", "arguments": { "image": "node:lts-slim", "code": "console.log('One-shot run!');", "dependencies": [{ "name": "lodash", "version": "^4.17.21" }], }, }

Пример сохранения файла:

import fs from 'fs/promises'; await fs.writeFile('hello.txt', 'Hello world!'); console.log('Saved hello.txt');

Это вернет вывод консоли и файл hello.txt .

sandbox_initialize

Запустите новый контейнер-песочницу.

  • Вход :
    • image ( string , необязательно, по умолчанию: node:lts-slim ): образ Docker для песочницы
    • port ( число , необязательно): если задано, сопоставляет этот порт контейнера с хостом
  • Вывод : строка идентификатора контейнера

sandbox_exec

Запуск команд оболочки внутри запущенной песочницы.

  • Вход :
    • container_id ( string ): идентификатор из sandbox_initialize
    • commands ( string[] ): Массив команд оболочки для выполнения
  • Вывод : объединенный stdout каждой команды

запустить_js

Установите зависимости npm и выполните код JavaScript.

  • Вход :
    • container_id ( string ): идентификатор из sandbox_initialize
    • code ( string ): исходный код JS для запуска (поддерживаются модули ES)
    • dependencies ( массив из { name, version } , необязательно, по умолчанию: [] ): имена пакетов npm → версии semver
    • listenOnPort ( число , необязательно): если установлено, процесс остается запущенным и хосту предоставляется доступ к этому порту ( режим Detached Mode ).
  • Поведение:
    1. Создает временное рабочее пространство внутри контейнера.
    2. Записывает index.js и минимальный package.json
    3. Запускает npm install --omit=dev --ignore-scripts --no-audit --loglevel=error
    4. Выполняет node index.js и захватывает stdout или оставляет процесс работающим в фоновом режиме, если установлен listenOnPort
    5. Очищает рабочее пространство, если не запущен в отсоединенном режиме
  • Вывод : stdout скрипта или уведомление о фоновом выполнении

песочница_стоп

Завершите работу и удалите контейнер-песочницу.

  • Вход :
    • container_id ( string ): идентификатор из sandbox_initialize
  • Вывод : Подтверждающее сообщение

Советы по использованию

  • Инструменты на основе сеансов ( sandbox_initializerun_jssandbox_stop ) идеально подходят, когда вы хотите:
    • Держите контейнер-песочницу с длительным сроком службы открытым.
    • Выполнение нескольких команд или скриптов в одной среде.
    • Поэтапная установка и повторное использование зависимостей.
  • Однократное выполнение с помощью run_js_ephemeral идеально подходит для:
    • Быстрые эксперименты или простые сценарии.
    • Случаи, когда вам не нужно поддерживать зависимости состояния или кэша.
    • Чистые, атомарные запуски без необходимости ручной разборки.
  • Режим «Отдельно» полезен, когда вы хотите:
    • Разворачивайте серверы или долгосрочные сервисы «на лету»
    • Выставляйте и тестируйте конечные точки из запущенных контейнеров

Выберите рабочий процесс, который лучше всего подходит для вашего варианта использования!

Строить

Компиляция и объединение:

npm install npm run build

Лицензия

Лицензия Массачусетского технологического института

Настоящим предоставляется разрешение любому лицу, получившему копию этого программного обеспечения и связанных с ним файлов документации («Программное обеспечение»), безвозмездно использовать Программное обеспечение без ограничений, включая, помимо прочего, права на использование, копирование, изменение, объединение, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также разрешать лицам, которым предоставляется Программное обеспечение, делать это при соблюдении следующих условий:

Вышеуказанное уведомление об авторских правах и настоящее уведомление о разрешении должны быть включены во все копии или существенные части Программного обеспечения.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. АВТОРЫ ИЛИ ОБЛАДАТЕЛИ АВТОРСКИХ ПРАВ НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГУЮ ОТВЕТСТВЕННОСТЬ, БУДЬ ТО В ДЕЙСТВИИ ПО КОНТРАКТУ, ДЕЛИКТЕ ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКАЮЩИЕ ИЗ, ИЗ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ДЕЛАМИ В ПРОГРАММНОМ ОБЕСПЕЧЕНИИ.

-
security - not tested
F
license - not found
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

Позволяет запускать произвольный код JavaScript в изолированных контейнерах Docker с установкой зависимостей npm «на лету», поддерживая как кратковременные однократные выполнения, так и постоянные среды-песочницы.

  1. Функции
    1. Изучите интересные варианты использования
      1. ⚠️ Предварительные условия
        1. Начиная
          1. Использование с Claude Desktop
          2. Докер
          3. Использование с VS Code
        2. API
          1. Инструменты
            1. run\js\эфемерный
            2. sandbox\_initialize
            3. sandbox\_exec
            4. запустить\_js
            5. песочница\_стоп
          2. Советы по использованию
            1. Строить
              1. Лицензия

                Related MCP Servers

                • -
                  security
                  F
                  license
                  -
                  quality
                  Provides 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 -
                  6
                  Python
                  • Apple
                • -
                  security
                  A
                  license
                  -
                  quality
                  An MCP server to create secure code sandbox environment for executing code within Docker containers.
                  Last updated -
                  69
                  Go
                  MIT License
                  • Linux
                  • Apple
                • A
                  security
                  F
                  license
                  A
                  quality
                  Provides a secure, isolated JavaScript execution environment with configurable time and memory limits for safely running code from Claude.
                  Last updated -
                  1
                  5
                  JavaScript
                  • Apple
                • A
                  security
                  F
                  license
                  A
                  quality
                  A secure JavaScript REPL server that enables executing code snippets in a sandboxed environment with memory protection, timeout handling, and comprehensive error reporting.
                  Last updated -
                  2
                  150
                  7
                  JavaScript
                  • Linux
                  • Apple

                View all related MCP servers

                MCP directory API

                We provide all the information about MCP servers via our MCP API.

                curl -X GET 'https://glama.ai/api/mcp/v1/servers/alfonsograziano/node-code-sandbox-mcp'

                If you have feedback or need assistance with the MCP directory API, please join our Discord server