Skip to main content
Glama

Node.js Sandbox MCP Server

🐢🚀 Node.js Sandbox MCP-Server

Node.js-Server, der das Model Context Protocol (MCP) implementiert, um beliebiges JavaScript in flüchtigen Docker-Containern mit spontaner Installation von npm-Abhängigkeiten auszuführen.

Website-Vorschau

👉 Besuchen Sie die offizielle Website

Merkmale

  • Starten und Verwalten isolierter Node.js-Sandbox-Container
  • Führen Sie beliebige Shell-Befehle in Containern aus
  • Installieren Sie die angegebenen NPM-Abhängigkeiten pro Job
  • Führen Sie JavaScript-Snippets des ES-Moduls aus und erfassen Sie stdout
  • Behälter sauber zerlegen
  • Detached Mode: Container nach Skriptausführung am Leben halten (zB für Server mit langer Laufzeit)

Hinweis: Container werden mit kontrollierten CPU-/Speichergrenzen ausgeführt.

Entdecken Sie coole Anwendungsfälle

Wenn Sie Ideen für coole und leistungsstarke Verwendungsmöglichkeiten dieser Bibliothek suchen, sehen Sie sich den Abschnitt mit den Anwendungsfällen auf der Website an. Er enthält eine kuratierte Liste mit Eingabeaufforderungen, Beispielen und kreativen Experimenten, die Sie mit dem Node.js Sandbox MCP-Server ausprobieren können.

⚠️ Voraussetzungen

Um diesen MCP-Server zu verwenden, muss Docker auf Ihrem Computer installiert und ausgeführt werden.

Tipp: Laden Sie alle benötigten Docker-Images vorab herunter, um Verzögerungen bei der ersten Ausführung zu vermeiden.

Beispiele für empfohlene Bilder:

  • Knoten:lts-slim
  • mcr.microsoft.com/playwright:v1.52.0-noble
  • alfonsograziano/node-chartjs-canvas:latest

Erste Schritte

Um mit diesem MCP-Server zu beginnen, müssen Sie ihn zunächst mit einem Client verbinden (z. B. Claude Desktop).

Sobald es läuft, können Sie mit einigen Testaufforderungen prüfen, ob es vollständig funktioniert:

  • Überprüfen Sie, ob das Tool ausgeführt werden kann:
    Create and run a JS script with a console.log("Hello World")
    Dadurch sollte ein console.log ausgeführt werden und in der Tool-Antwort sollte „Hello World“ angezeigt werden.
  • Überprüfen Sie, ob Sie Abhängigkeiten installieren und Dateien speichern können
    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.
    Dadurch sollte in Ihrem bereitgestellten Verzeichnis (z. B. dem Desktop) eine Datei mit dem Namen „qrcode.png“ erstellt werden.

Verwendung mit Claude Desktop

Fügen Sie dies zu Ihrer claude_desktop_config.json hinzu: Sie können der offiziellen Anleitung folgen, um diesen MCP-Server zu installieren

{ "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" ] } } }

oder mit 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 } } } }

Hinweis: Stellen Sie sicher, dass Ihr Arbeitsverzeichnis auf den erstellten Server verweist und Docker installiert/ausgeführt ist.

Docker

Führen Sie den Server in einem Container aus (mounten Sie bei Bedarf einen Docker-Socket) und übergeben Sie das gewünschte Host-Ausgabeverzeichnis als Umgebungsvariable:

# 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

Dadurch wird Ihr Hostordner unter demselben absoluten Pfad in den Container eingebunden und FILES_DIR auf dem MCP-Server verfügbar gemacht.

Verwendung mit VS Code

Schaltflächen zur Schnellinstallation (VS Code und Insider):

Installieren Sie js-sandbox-mcp (NPX). Installieren Sie js-sandbox-mcp (Docker).

Manuelle Konfiguration : Fügen Sie zu Ihrem VS Code settings.json oder .vscode/mcp.json hinzu:

"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

Werkzeuge

run_js_ephemeral

Führen Sie ein einmaliges JS-Skript in einem brandneuen Einwegcontainer aus.

Eingänge:

  • image (Zeichenfolge, optional): Zu verwendendes Docker-Image (Standard: node:lts-slim ).
  • code (Zeichenfolge, erforderlich): Auszuführende JavaScript-Quelle.
  • dependencies (Array aus { name, version } , optional): Zu installierende NPM-Pakete und -Versionen (Standard: [] ).

Verhalten:

  1. Erstellt einen neuen Container.
  2. Schreibt Ihre index.js und eine minimale package.json .
  3. Installiert die angegebenen Abhängigkeiten.
  4. Führt das Skript aus.
  5. Reißt den Container ab (entfernt ihn).
  6. Gibt die erfasste Standardausgabe zurück.
  7. Wenn Ihr Code Dateien im aktuellen Verzeichnis speichert, werden diese Dateien automatisch zurückgegeben.
    • Als image werden Bilder (z. B. PNG, JPEG) zurückgegeben.
    • Andere Dateien (z. B. .txt , .json ) werden als resource zurückgegeben.
    • Hinweis: Die Funktion zum Speichern von Dateien ist derzeit nur im temporären Tool verfügbar.

Tipp: Um Dateien wiederherzustellen, speichern Sie sie einfach während der Ausführung Ihres Skripts.

Beispielaufruf:

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

Beispiel zum Speichern einer Datei:

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

Dadurch werden die Konsolenausgabe und die Datei hello.txt zurückgegeben.

sandbox_initialisieren

Starten Sie einen neuen Sandbox-Container.

  • Eingabe :
    • image ( Zeichenfolge , optional, Standard: node:lts-slim ): Docker-Image für die Sandbox
    • port ( Zahl , optional): Wenn festgelegt, wird dieser Container-Port dem Host zugeordnet
  • Ausgabe : Container-ID-Zeichenfolge

sandbox_exec

Führen Sie Shell-Befehle innerhalb der laufenden Sandbox aus.

  • Eingabe :
    • container_id ( Zeichenfolge ): ID von sandbox_initialize
    • commands ( Zeichenfolge[] ): Array der auszuführenden Shell-Befehle
  • Ausgabe : Kombinierte Standardausgabe jedes Befehls

run_js

Installieren Sie npm-Abhängigkeiten und führen Sie JavaScript-Code aus.

  • Eingabe :
    • container_id ( Zeichenfolge ): ID von sandbox_initialize
    • code ( Zeichenfolge ): Auszuführende JS-Quelle (ES-Module werden unterstützt)
    • dependencies ( Array aus { name, version } , optional, Standard: [] ): npm-Paketnamen → Semver-Versionen
    • listenOnPort ( Zahl , optional): Wenn gesetzt, wird der Prozess weiter ausgeführt und dieser Port dem Host zugänglich gemacht ( Detached Mode )
  • Verhalten:
    1. Erstellt einen temporären Arbeitsbereich innerhalb des Containers
    2. Schreibt index.js und ein minimales package.json
    3. Führt npm install --omit=dev --ignore-scripts --no-audit --loglevel=error
    4. Führt node index.js aus und erfasst stdout oder lässt den Prozess im Hintergrund laufen, wenn listenOnPort gesetzt ist
    5. Bereinigt den Arbeitsbereich, sofern er nicht im getrennten Modus ausgeführt wird
  • Ausgabe : Hinweis zur Standardausgabe des Skripts oder zur Ausführung im Hintergrund

Sandbox_Stopp

Beenden und entfernen Sie den Sandbox-Container.

  • Eingabe :
    • container_id ( Zeichenfolge ): ID von sandbox_initialize
  • Ausgabe : Bestätigungsnachricht

Nutzungstipps

  • Sitzungsbasierte Tools ( sandbox_initializerun_jssandbox_stop ) sind ideal, wenn Sie Folgendes möchten:
    • Halten Sie einen langlebigen Sandbox-Container offen.
    • Führen Sie mehrere Befehle oder Skripte in derselben Umgebung aus.
    • Installieren und verwenden Sie Abhängigkeiten schrittweise wieder.
  • Die einmalige Ausführung mit run_js_ephemeral ist perfekt für:
    • Schnelle Experimente oder einfache Skripte.
    • Fälle, in denen Sie keine Status- oder Cache-Abhängigkeiten verwalten müssen.
    • Saubere, atomare Ausführung, ohne dass Sie sich um die manuelle Demontage kümmern müssen.
  • Der getrennte Modus ist nützlich, wenn Sie Folgendes möchten:
    • Starten Sie Server oder langlebige Dienste im Handumdrehen
    • Endpunkte aus laufenden Containern verfügbar machen und testen

Wählen Sie den Workflow, der am besten zu Ihrem Anwendungsfall passt!

Bauen

Kompilieren und bündeln:

npm install npm run build

Lizenz

MIT-Lizenz

Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die „Software“) erhält, unentgeltlich die Genehmigung erteilt, mit der Software uneingeschränkt zu verfahren, insbesondere das Recht, die Software zu verwenden, zu kopieren, zu ändern, zusammenzufügen, zu veröffentlichen, zu verteilen, unterzulizenzieren und/oder Kopien der Software zu verkaufen und diese Rechte unter den folgenden Bedingungen anderen Personen zu übertragen:

Der obige Copyright-Vermerk und dieser Genehmigungsvermerk müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.

DIE SOFTWARE WIRD „WIE VORLIEGEND“ BEREITGESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GARANTIE, EINSCHLIESSLICH DER GARANTIE DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG. IN KEINEM FALL HAFTEN DIE AUTOREN ODER URHEBERRECHTSINHABER FÜR ANSPRÜCHE, SCHÄDEN ODER ANDERE VERBINDLICHKEITEN, OB AUS VERTRAG, UNERLAUBTER HANDLUNG ODER ANDERWEITIG, DIE AUS DER SOFTWARE ODER DER NUTZUNG ODER DEM ANDEREN UMGANG MIT DER SOFTWARE ENTSTEHEN, DAMIT IN VERBINDUNG STEHEN.

-
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.

Ermöglicht die Ausführung von beliebigem JavaScript-Code in isolierten Docker-Containern mit spontaner Installation von npm-Abhängigkeiten und unterstützt sowohl flüchtige einmalige Ausführungen als auch dauerhafte Sandbox-Umgebungen.

  1. Merkmale
    1. Entdecken Sie coole Anwendungsfälle
      1. ⚠️ Voraussetzungen
        1. Erste Schritte
          1. Verwendung mit Claude Desktop
          2. Docker
          3. Verwendung mit VS Code
        2. API
          1. Werkzeuge
            1. run\_js\_ephemeral
            2. sandbox\_initialisieren
            3. sandbox\_exec
            4. run\_js
            5. Sandbox\_Stopp
          2. Nutzungstipps
            1. Bauen
              1. Lizenz

                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