alfonsograziano/node-code-sandbox-mcp

alfonsograziano/node-code-sandbox-mcp

от alfonsograziano
Выполняет Node.js-код в изолированном Docker-контейнере: ставит npm-пакеты, запускает shell-команды и возвращает вывод.

🐢🚀 Node.js Sandbox MCP Server

Node.js server implementing the Model Context Protocol (MCP) for running arbitrary JavaScript in ephemeral Docker containers with on‑the‑fly npm dependency installation.

Website Preview

👉 Look at the official website

📦 Available on Docker Hub

Features

  • Start and manage isolated Node.js sandbox containers
  • Execute arbitrary shell commands inside containers
  • Install specified npm dependencies per job
  • Run ES module JavaScript snippets and capture stdout
  • Tear down containers cleanly
  • Detached Mode: Keep the container alive after script execution (e.g. for long-running servers)

Note: Containers run with controlled CPU/memory limits.

Explore Cool Use Cases

If you want ideas for cool and powerful ways to use this library, check out the use cases section on the website It contains a curated list of prompts, examples, and creative experiments you can try with the Node.js Sandbox MCP Server.

⚠️ Prerequisites

To use this MCP server, Docker must be installed and running on your machine.

Tip: Pre-pull any Docker images you'll need to avoid delays during first execution.

Часто задаваемые вопросы

Инструменты были проиндексированы:
get_dependency_types

Принимает массив названий npm-пакетов (и опционально версии), получает, поставляет ли каждый пакет собственные определения TypeScript или имеет соответствующий пакет @types/…, и возвращает сырой текст .d.ts. Полезно, когда вы собираетесь запустить скрипт Node.js с незнакомой зависимостью и хотите изучить, какие API и типы она предоставляет.

Параметры
  • dependenciesobject[]обязательный
run_js

Устанавливает npm-зависимости и выполняет JavaScript-код внутри запущенного контейнера-песочницы. После выполнения необходимо вручную остановить песочницу, чтобы освободить ресурсы. Код должен быть написан в формате ESModules (синтаксис import/export). Подходит для сложных рабочих процессов, где требуется повторно использовать окружение при нескольких запусках. При чтении из процессов Node.js и записи в них всегда читайте и записывайте данные в каталог "./files", чтобы обеспечить сохранность данных на подключенном томе.

Параметры
  • codestringобязательный

    Код JavaScript для запуска внутри контейнера.

  • container_idstringобязательный

    Идентификатор контейнера Docker

  • dependenciesobject[]

    Возвращает список зависимостей npm для установки перед запуском кода. Каждый элемент должен иметь name (пакет) и version (диапазон). Если их нет, возвращает пустой массив.

  • listenOnPortnumber

    Если установлено, оставляет процесс работающим и открывает этот порт для хоста.

run_js_ephemeral

Запускает JavaScript-фрагмент во временном одноразовом контейнере с опциональными npm-зависимостями, затем автоматически выполняет очистку. Код должен быть валидным ESModules (синтаксис import/export). Подходит для однократных простых выполнений без поддержания песочницы или ручного управления очисткой. При чтении и записи из процессов Node.js всегда нужно читать и записывать в каталог "./files", чтобы обеспечить сохранность на смонтированном томе. Это включает изображения (например, PNG, JPEG) и другие файлы (например, текст, JSON, бинарники).

Параметры
  • codestringобязательный

    Код JavaScript для запуска во временном контейнере.

  • dependenciesobject[]

    Возвращает список зависимостей npm для установки перед запуском кода. Каждый элемент должен иметь name (пакет) и version (диапазон). Если их нет, возвращает пустой массив.

  • imagestring

    Образ Docker для временного выполнения. Например: - node:lts-slim: версия Node.js LTS, облегчённый вариант. (Лёгкий и быстрый для задач выполнения JavaScript.) - mcr.microsoft.com/playwright:v1.53.2-noble: образ Playwright для автоматизации браузера. (Предварительно настроен для запуска скриптов Playwright.) - alfonsograziano/node-chartjs-canvas:latest: образ Chart.js для генерации диаграмм и генерации диаграмм Mermaid. (Предварительно настроен для генерации диаграмм с помощью chartjs-canvas и Mermaid. Минимальный пример Mermaid: import fs from "fs"; import { run } from "@mermaid-js/mermaid-cli"; fs.writeFileSync("./files/diagram.mmd", "graph LR; A-->B;", "utf8"); await run("./files/diagram.mmd", "./files/diagram.svg");)

sandbox_exec

Выполняет одну или несколько команд оболочки внутри запущенного sandbox-контейнера. Требует предварительно инициализированного sandbox.

Параметры
  • commandsstring[]обязательный
  • container_idstringобязательный
sandbox_initialize

Запускает новый изолированный Docker-контейнер с Node.js. Используется для настройки изолированной сессии для нескольких команд и скриптов.

Параметры
  • imagestring
  • portnumber

    Если задано, сопоставляет этот порт контейнера с хостом.

sandbox_stop

Завершает и удаляет запущенный контейнер sandbox. Следует вызывать после завершения работы в sandbox, инициализированном с помощью sandbox_initialize.

Параметры
  • container_idstringобязательный
search_npm_packages

Ищет npm-пакеты по поисковому запросу и возвращает их название, описание и фрагмент README.

Параметры
  • qualifiersobject

    Необязательные квалификаторы для фильтрации результатов поиска. Например, { not: "insecure" } исключает небезопасные пакеты, { author: "sindresorhus" } показывает только пакеты этого автора, { scope: "@vue" } показывает только пакеты с областью видимости Vue.js.

  • searchTermstringобязательный

    Термин для поиска в пакетах npm. Должен содержать весь релевантный контекст. В идеале это текст, который может встречаться в названии пакета, описании или ключевых словах. Используйте знаки плюса (+), чтобы комбинировать связанные термины (например, "react+components" для библиотек компонентов React). Для фильтрации по автору, мейнтейнеру или scope используйте поле qualifiers, а не включайте их в поисковый запрос. Примеры: "express" для Express.js, "ui+components" для пакетов UI-компонентов, "testing+jest" для утилит тестирования Jest.

1.3.0основная
1.2.0
1.1.0
1.0.2
1.0.1
1.0.0
0.1.0

Выберите клиент, чтобы установить alfonsograziano/node-code-sandbox-mcp:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

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

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

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

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

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

Либо добавьте сервер через терминал:

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

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

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

Добавьте сервер одной командой в терминале:

claude mcp add alfonsograziano-node-code-sandbox-mcp-m77p56fad6 --env FILES_DIR=/Users/alfonsograziano/Desktop/node-sandbox --env SANDBOX_MEMORY_LIMIT=512m --env SANDBOX_CPU_LIMIT=0.75 -- npx -y node-code-sandbox-mcp

Либо через JSON-конфиг:

claude mcp add-json alfonsograziano-node-code-sandbox-mcp-m77p56fad6 "{\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"-y\",\"node-code-sandbox-mcp\"],\"env\":{\"FILES_DIR\":\"/Users/alfonsograziano/Desktop/node-sandbox\",\"SANDBOX_MEMORY_LIMIT\":\"512m\",\"SANDBOX_CPU_LIMIT\":\"0.75\"}}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add alfonsograziano-node-code-sandbox-mcp-m77p56fad6 --env FILES_DIR=/Users/alfonsograziano/Desktop/node-sandbox --env SANDBOX_MEMORY_LIMIT=512m --env SANDBOX_CPU_LIMIT=0.75 -- npx -y node-code-sandbox-mcp

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.alfonsograziano-node-code-sandbox-mcp-m77p56fad6]
command = "npx"
args = ["-y", "node-code-sandbox-mcp"]

[mcp_servers.alfonsograziano-node-code-sandbox-mcp-m77p56fad6.env]
FILES_DIR = "/Users/alfonsograziano/Desktop/node-sandbox"
SANDBOX_MEMORY_LIMIT = "512m"
SANDBOX_CPU_LIMIT = "0.75"
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите alfonsograziano/node-code-sandbox-mcp, а в поле команды запуска — строку ниже:
npx -y node-code-sandbox-mcp

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

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

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

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

Создайте файл в .continue/mcpServers/ (например alfonsograziano-node-code-sandbox-mcp-m77p56fad6.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: alfonsograziano-node-code-sandbox-mcp-m77p56fad6
    command: npx
    args:
      - "-y"
      - "node-code-sandbox-mcp"
    env:
      FILES_DIR: /Users/alfonsograziano/Desktop/node-sandbox
      SANDBOX_MEMORY_LIMIT: 512m
      SANDBOX_CPU_LIMIT: 0.75
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

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

Похожие MCP-сервера

yepcode/mcp-server-js

yepcode/mcp-server-js

официальный

от yepcode

YepCode MCP сервер превращает YepCode-процессы в готовые инструменты для ИИ-ассистентов. Он запускает скрипты на Python или Node.js в изолированной среде, управляет параметрами через JSON Schema. Идеально для интеграции AI с бизнес-логикой — от выполнения кода до управления API.

TypeScript⭐ 47
tumf/mcp-shell-server

tumf/mcp-shell-server

от tumf

MCP сервер для безопасного удалённого выполнения команд оболочки с белым списком, изоляцией окружения и аудитом. Поддерживает stdin, пайпы и лимиты времени/вывода. Идеален для интеграции shell-команд в MCP с контролем безопасности.

Python⭐ 201
yanmxa/scriptflow-mcp

yanmxa/scriptflow-mcp

от yanmxa

MCP-сервер для превращения сложных AI-диалогов в готовые скрипты, которые можно выполнять, версионировать и переиспользовать. Поддерживает Python, Bash, Node.js. Управляй библиотекой автономных сце...

TypeScript⭐ 8
g0t4/mcp-server-commands

g0t4/mcp-server-commands

от g0t4

Выполняет команды и скрипты на компьютере: bash, python, zsh, создаёт файлы, передаёт код через stdin и возвращает вывод. Работает с локальными моделями.

TypeScript⭐ 235
yusong652/yade-mcp

yusong652/yade-mcp

от yusong652

MCP инструмент для подключения AI-агентов к YADE - DEM движку. Через естественный язык просматривайте API, запускайте симуляции и выполняйте код в консоли. Для инженеров и исследователей, автоматиз...

Python⭐ 15
maxim-saplin/mcp_safe_local_python_executor

maxim-saplin/mcp_safe_local_python_executor

от maxim-saplin

MCP сервер для безопасного локального выполнения Python кода от LLM. Основан на LocalPythonExecutor от Hugging Face, не требует Docker, ограничивает импорты и файловые операции. Запускается через uv - замена Code Interpreter для Claude Desktop и MCP клиентов.

Python⭐ 48
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин