🐢🚀 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).
После запуска вы можете проверить его полную работоспособность с помощью нескольких тестовых команд:
- Убедитесь, что инструмент может работать:Это должно запустить console.log, и в ответе инструмента вы должны увидеть Hello World.
- Убедитесь, что вы можете устанавливать зависимости и сохранять файлы.Это должно создать файл в смонтированном каталоге (например, на рабочем столе) с именем «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
. - Примечание: функция сохранения файлов в настоящее время доступна только в эфемерном инструменте.
- Изображения (например, PNG, JPEG) возвращаются как содержимое
Совет: чтобы вернуть файлы, просто сохраните их во время выполнения скрипта.
Пример вызова:
Пример сохранения файла:
Это вернет вывод консоли и файл 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 → версии 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
идеально подходит для:- Быстрые эксперименты или простые сценарии.
- Случаи, когда вам не нужно поддерживать зависимости состояния или кэша.
- Чистые, атомарные запуски без необходимости ручной разборки.
- Режим «Отдельно» полезен, когда вы хотите:
- Разворачивайте серверы или долгосрочные сервисы «на лету»
- Выставляйте и тестируйте конечные точки из запущенных контейнеров
Выберите рабочий процесс, который лучше всего подходит для вашего варианта использования!
Строить
Компиляция и объединение:
Лицензия
Лицензия Массачусетского технологического института
Настоящим предоставляется разрешение любому лицу, получившему копию этого программного обеспечения и связанных с ним файлов документации («Программное обеспечение»), безвозмездно использовать Программное обеспечение без ограничений, включая, помимо прочего, права на использование, копирование, изменение, объединение, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также разрешать лицам, которым предоставляется Программное обеспечение, делать это при соблюдении следующих условий:
Вышеуказанное уведомление об авторских правах и настоящее уведомление о разрешении должны быть включены во все копии или существенные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. АВТОРЫ ИЛИ ОБЛАДАТЕЛИ АВТОРСКИХ ПРАВ НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГУЮ ОТВЕТСТВЕННОСТЬ, БУДЬ ТО В ДЕЙСТВИИ ПО КОНТРАКТУ, ДЕЛИКТЕ ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКАЮЩИЕ ИЗ, ИЗ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ДЕЛАМИ В ПРОГРАММНОМ ОБЕСПЕЧЕНИИ.
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Позволяет запускать произвольный код JavaScript в изолированных контейнерах Docker с установкой зависимостей npm «на лету», поддерживая как кратковременные однократные выполнения, так и постоянные среды-песочницы.
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 -21507JavaScript