VOOZH about

URL: https://glama.ai/mcp/servers/alfonsograziano/node-code-sandbox-mcp?locale=ru-RU

⇱ Node.js Sandbox MCP-сервер by alfonsograziano | Glama


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

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

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

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

Функции

  • Запуск и управление изолированными контейнерами-песочницами Node.js

  • Выполнять произвольные команды оболочки внутри контейнеров

  • Установить указанные зависимости npm для каждого задания

  • Запуск фрагментов JavaScript модуля ES и захват stdout

  • Аккуратно разбирайте контейнеры.

  • Режим Detached: сохранение контейнера активным после выполнения скрипта (например, для долго работающих серверов)

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

Related MCP server: MCP-REPL

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

Если вам нужны идеи для интересных и эффективных способов использования этой библиотеки, ознакомьтесь с разделом вариантов использования на веб-сайте. Он содержит тщательно подобранный список подсказок, примеров и творческих экспериментов, которые вы можете попробовать с сервером 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

Лицензия

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

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

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

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

F
license - not found
-
quality - not tested
F
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity
Issues opened vs closed

Latest Blog Posts

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