🐢🚀 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.
👉 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: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önnenDadurch 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
oder mit NPX:
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:
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:
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:
- Erstellt einen neuen Container.
- Schreibt Ihre
index.js
und eine minimalepackage.json
. - Installiert die angegebenen Abhängigkeiten.
- Führt das Skript aus.
- Reißt den Container ab (entfernt ihn).
- Gibt die erfasste Standardausgabe zurück.
- 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 alsresource
zurückgegeben. - Hinweis: Die Funktion zum Speichern von Dateien ist derzeit nur im temporären Tool verfügbar.
- Als
Tipp: Um Dateien wiederherzustellen, speichern Sie sie einfach während der Ausführung Ihres Skripts.
Beispielaufruf:
Beispiel zum Speichern einer Datei:
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 Sandboxport
( 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 vonsandbox_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 vonsandbox_initialize
code
( Zeichenfolge ): Auszuführende JS-Quelle (ES-Module werden unterstützt)dependencies
( Array aus{ name, version }
, optional, Standard:[]
): npm-Paketnamen → Semver-VersionenlistenOnPort
( Zahl , optional): Wenn gesetzt, wird der Prozess weiter ausgeführt und dieser Port dem Host zugänglich gemacht ( Detached Mode )
- Verhalten:
- Erstellt einen temporären Arbeitsbereich innerhalb des Containers
- Schreibt
index.js
und ein minimalespackage.json
- Führt
npm install --omit=dev --ignore-scripts --no-audit --loglevel=error
- Führt
node index.js
aus und erfasst stdout oder lässt den Prozess im Hintergrund laufen, wennlistenOnPort
gesetzt ist - 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 vonsandbox_initialize
- Ausgabe : Bestätigungsnachricht
Nutzungstipps
- Sitzungsbasierte Tools (
sandbox_initialize
➔run_js
➔sandbox_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:
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.
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.
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.
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