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

👉 Посмотрите на официальном сайте
Функции
Запуск и управление изолированными контейнерами-песочницами Node.js
Выполнять произвольные команды оболочки внутри контейнеров
Установить указанные зависимости npm для каждого задания
Запуск фрагментов JavaScript модуля ES и захват stdout
Аккуратно разбирайте контейнеры.
Режим Detached: сохранение контейнера активным после выполнения скрипта (например, для долго работающих серверов)
Примечание: контейнеры работают с контролируемыми ограничениями ЦП/памяти.
Related MCP server: Docker MCP Server
Изучите интересные варианты использования
Если вам нужны идеи для интересных и эффективных способов использования этой библиотеки, ознакомьтесь с разделом вариантов использования на веб-сайте. Он содержит тщательно подобранный список подсказок, примеров и творческих экспериментов, которые вы можете попробовать с сервером 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
или с NPX:
Примечание: убедитесь, что ваш рабочий каталог указывает на созданный сервер, а Docker установлен/запущен.
Докер
Запустите сервер в контейнере (при необходимости смонтируйте сокет Docker) и передайте нужный вам выходной каталог хоста как переменную окружения:
Эта привязка монтирует вашу папку хоста в контейнер по тому же абсолютному пути и делает FILES_DIR доступным внутри сервера MCP.
Использование с VS Code
Кнопки быстрой установки (VS Code и Insiders):
Установить js-sandbox-mcp (NPX) Установить js-sandbox-mcp (Docker)
Ручная настройка : добавьте в settings.json или .vscode/mcp.json вашего VS Code:
API
Инструменты
run_js_эфемерный
Запустите одноразовый JS-скрипт в совершенно новом одноразовом контейнере.
Входные данные:
image(строка, необязательно): образ Docker для использования (по умолчанию:node:lts-slim).code(строка, обязательно): исходный код JavaScript для выполнения.dependencies(массив{ name, version }, необязательно): пакеты NPM и версии для установки (по умолчанию:[]).
Поведение:
Создает новый контейнер.
Записывает ваш
index.jsи минимальныйpackage.json.Устанавливает указанные зависимости.
Выполняет скрипт.
Разбирает (снимает) контейнер.
Возвращает захваченный stdout.
Если ваш код сохраняет какие-либо файлы в текущем каталоге, эти файлы будут возвращены автоматически.
Изображения (например, PNG, JPEG) возвращаются как содержимое
image.Другие файлы (например,
.txt,.json) возвращаются как содержимоеresource.Примечание: функция сохранения файлов в настоящее время доступна только в эфемерном инструменте.
Совет: чтобы вернуть файлы, просто сохраните их во время выполнения скрипта.
Пример вызова:
Пример сохранения файла:
Это вернет вывод консоли и файл hello.txt .
sandbox_initialize
Запустите новый контейнер-песочницу.
Вход :
image( string , необязательно, по умолчанию:node:lts-slim): образ Docker для песочницыport( число , необязательно): если задано, сопоставляет этот порт контейнера с хостом
Вывод : строка идентификатора контейнера
sandbox_exec
Запуск команд оболочки внутри запущенной песочницы.
Вход :
container_id( string ): идентификатор изsandbox_initializecommands( string[] ): Массив команд оболочки для выполнения
Вывод : объединенный stdout каждой команды
запустить_js
Установите зависимости npm и выполните код JavaScript.
Вход :
container_id( string ): идентификатор изsandbox_initializecode( string ): исходный код JS для запуска (поддерживаются модули ES)dependencies( массив из , необязательно, по умолчанию:[]): имена пакетов npm → версии semverlistenOnPort( число , необязательно): если установлено, процесс остается запущенным и хосту предоставляется доступ к этому порту ( режим Detached Mode ).
Поведение:
Создает временное рабочее пространство внутри контейнера.
Записывает
index.jsи минимальныйpackage.jsonЗапускает
npm install --omit=dev --ignore-scripts --no-audit --loglevel=errorВыполняет
node index.jsи захватывает stdout или оставляет процесс работающим в фоновом режиме, если установленlistenOnPortОчищает рабочее пространство, если не запущен в отсоединенном режиме
Вывод : stdout скрипта или уведомление о фоновом выполнении
песочница_стоп
Завершите работу и удалите контейнер-песочницу.
Вход :
container_id( string ): идентификатор изsandbox_initialize
Вывод : Подтверждающее сообщение
Советы по использованию
Инструменты на основе сеансов (
sandbox_initialize➔run_js➔sandbox_stop) идеально подходят, когда вы хотите:Держите контейнер-песочницу с длительным сроком службы открытым.
Выполнение нескольких команд или скриптов в одной среде.
Поэтапная установка и повторное использование зависимостей.
Однократное выполнение с помощью
run_js_ephemeralидеально подходит для:Быстрые эксперименты или простые сценарии.
Случаи, когда вам не нужно поддерживать зависимости состояния или кэша.
Чистые, атомарные запуски без необходимости ручной разборки.
Режим «Отдельно» полезен, когда вы хотите:
Разворачивайте серверы или долгосрочные сервисы «на лету»
Выставляйте и тестируйте конечные точки из запущенных контейнеров
Выберите рабочий процесс, который лучше всего подходит для вашего варианта использования!
Строить
Компиляция и объединение:
Лицензия
Лицензия Массачусетского технологического института
Настоящим предоставляется разрешение любому лицу, получившему копию этого программного обеспечения и связанных с ним файлов документации («Программное обеспечение»), безвозмездно использовать Программное обеспечение без ограничений, включая, помимо прочего, права на использование, копирование, изменение, объединение, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также разрешать лицам, которым предоставляется Программное обеспечение, делать это при соблюдении следующих условий:
Вышеуказанное уведомление об авторских правах и настоящее уведомление о разрешении должны быть включены во все копии или существенные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. АВТОРЫ ИЛИ ОБЛАДАТЕЛИ АВТОРСКИХ ПРАВ НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГУЮ ОТВЕТСТВЕННОСТЬ, БУДЬ ТО В ДЕЙСТВИИ ПО КОНТРАКТУ, ДЕЛИКТЕ ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКАЮЩИЕ ИЗ, ИЗ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ДЕЛАМИ В ПРОГРАММНОМ ОБЕСПЕЧЕНИИ.