Skip to main content
Glama

Node.js Sandbox MCP Server

Servidor MCP Sandbox de Node.js

Servidor Node.js que implementa el Protocolo de contexto de modelo (MCP) para ejecutar JavaScript arbitrario en contenedores Docker efímeros con instalación de dependencias npm sobre la marcha.

Vista previa del sitio web

👉 Mira la web oficial

Características

  • Iniciar y administrar contenedores sandbox aislados de Node.js
  • Ejecutar comandos de shell arbitrarios dentro de contenedores
  • Instalar dependencias npm especificadas por trabajo
  • Ejecute fragmentos de JavaScript del módulo ES y capture la salida estándar
  • Desmontar los contenedores de forma limpia
  • Modo separado: mantiene activo el contenedor después de la ejecución del script (por ejemplo, para servidores de larga duración)

Nota: Los contenedores se ejecutan con límites de CPU/memoria controlados.

Explora casos de uso interesantes

Si quieres ideas sobre formas interesantes y potentes de usar esta biblioteca, consulta la sección de casos de uso en el sitio web. Contiene una lista seleccionada de indicaciones, ejemplos y experimentos creativos que puedes probar con el servidor MCP Sandbox de Node.js.

⚠️ Requisitos previos

Para utilizar este servidor MCP, Docker debe estar instalado y ejecutándose en su máquina.

Consejo: extraiga con antelación todas las imágenes de Docker que necesitará para evitar demoras durante la primera ejecución.

Ejemplos de imágenes recomendadas:

  • nodo
  • mcr.microsoft.com/playwright.52.0-noble
  • alfonsograziano/node-chartjs-canvas:último

Empezando

Para comenzar a utilizar este servidor MCP, primero debes conectarlo a un cliente (por ejemplo, Claude Desktop).

Una vez que esté en ejecución, puedes probar que funciona completamente con un par de indicaciones de prueba:

  • Validar que la herramienta pueda ejecutarse:
    Create and run a JS script with a console.log("Hello World")
    Esto debería ejecutar un console.log y en la respuesta de la herramienta debería poder ver Hola mundo.
  • Validar que se puedan instalar dependencias y guardar archivos
    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.
    Esto debería crear un archivo en el directorio montado (por ejemplo, el Escritorio) llamado "qrcode.png"

Uso con Claude Desktop

Agregue esto a su claude_desktop_config.json : Puede seguir la Guía oficial para instalar este servidor 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" ] } } }

o con 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 } } } }

Nota: asegúrese de que su directorio de trabajo apunte al servidor creado y que Docker esté instalado/en ejecución.

Estibador

Ejecute el servidor en un contenedor (monte el socket Docker si es necesario) y pase el directorio de salida del host deseado como una variable de entorno:

# 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

Este enlace monta su carpeta de host en el contenedor en la misma ruta absoluta y hace que FILES_DIR esté disponible dentro del servidor MCP.

Uso con VS Code

Botones de instalación rápida (VS Code e Insiders):

Instalar js-sandbox-mcp (NPX) Instalar js-sandbox-mcp (Docker)

Configuración manual : agregue a su archivo VS Code settings.json o .vscode/mcp.json :

"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

Herramientas

run_js_efímero

Ejecute un script JS único en un contenedor desechable nuevo.

Entradas:

  • image (cadena, opcional): imagen de Docker a utilizar (predeterminada: node:lts-slim ).
  • code (cadena, obligatorio): código fuente JavaScript a ejecutar.
  • dependencies (matriz de { name, version } , opcional): paquetes y versiones NPM para instalar (predeterminado: [] ).

Comportamiento:

  1. Crea un contenedor nuevo.
  2. Escribe tu index.js y un package.json mínimo.
  3. Instala las dependencias especificadas.
  4. Ejecuta el script.
  5. Desmonta (quita) el contenedor.
  6. Devuelve la salida estándar capturada.
  7. Si su código guarda algún archivo en el directorio actual, estos archivos se devolverán automáticamente.
    • Las imágenes (por ejemplo, PNG, JPEG) se devuelven como contenido image .
    • Otros archivos (por ejemplo, .txt , .json ) se devuelven como contenido resource .
    • Nota: la función de guardar archivos actualmente solo está disponible en la herramienta efímera.

Consejo: para recuperar los archivos, simplemente guárdelos durante la ejecución del script.

Ejemplo de llamada:

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

Ejemplo para guardar un archivo:

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

Esto devolverá la salida de la consola y el archivo hello.txt .

inicialización de sandbox

Inicie un nuevo contenedor de arena.

  • Aporte :
    • image ( cadena , opcional, valor predeterminado: node:lts-slim ): imagen de Docker para el entorno sandbox
    • port ( número , opcional): si se configura, asigna este puerto de contenedor al host
  • Salida : cadena de identificación del contenedor

sandbox_exec

Ejecute comandos de shell dentro del entorno sandbox en ejecución.

  • Aporte :
    • container_id ( cadena ): ID de sandbox_initialize
    • commands ( string[] ): Matriz de comandos de shell para ejecutar
  • Salida : Salida estándar combinada de cada comando

ejecutar_js

Instalar las dependencias npm y ejecutar el código JavaScript.

  • Aporte :
    • container_id ( cadena ): ID de sandbox_initialize
    • code ( cadena ): código fuente JS para ejecutar (módulos ES compatibles)
    • dependencies ( matriz de { name, version } , opcional, predeterminado: [] ): nombres de paquetes npm → versiones semver
    • listenOnPort ( número , opcional): si se configura, deja el proceso en ejecución y expone este puerto al host ( modo separado )
  • Comportamiento:
    1. Crea un espacio de trabajo temporal dentro del contenedor
    2. Escribe index.js y un paquete mínimo package.json
    3. Ejecuta npm install --omit=dev --ignore-scripts --no-audit --loglevel=error
    4. Ejecuta node index.js y captura la salida estándar, o deja el proceso ejecutándose en segundo plano si listenOnPort está configurado
    5. Limpia el espacio de trabajo a menos que se ejecute en modo separado
  • Salida : Salida estándar del script o aviso de ejecución en segundo plano

parada de la zona de pruebas

Terminar y eliminar el contenedor sandbox.

  • Aporte :
    • container_id ( cadena ): ID de sandbox_initialize
  • Salida : Mensaje de confirmación

Consejos de uso

  • Las herramientas basadas en sesiones ( sandbox_initializerun_jssandbox_stop ) son ideales cuando desea:
    • Mantenga abierto el contenedor de arena de larga duración.
    • Ejecute múltiples comandos o scripts en el mismo entorno.
    • Instalar y reutilizar dependencias de forma incremental.
  • La ejecución única con run_js_ephemeral es perfecta para:
    • Experimentos rápidos o scripts simples.
    • Casos en los que no es necesario mantener dependencias de estado o caché.
    • Funcionamiento limpio y atómico sin preocuparse por el desmontaje manual.
  • El modo separado es útil cuando desea:
    • Ponga en marcha servidores o servicios de larga duración sobre la marcha
    • Exponer y probar puntos finales desde contenedores en ejecución

¡Elija el flujo de trabajo que mejor se adapte a su caso de uso!

Construir

Compilar y agrupar:

npm install npm run build

Licencia

Licencia MIT

Por la presente se concede permiso, sin cargo, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para tratar el Software sin restricción, incluyendo, sin limitación, los derechos a usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del Software, y para permitir que las personas a quienes se les proporciona el Software lo hagan, sujeto a las siguientes condiciones:

El aviso de derechos de autor anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.

EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO, ENTRE OTRAS, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN DETERMINADO Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑOS U OTRAS RESPONSABILIDADES, YA SEA EN ACCIÓN CONTRACTUAL, EXTRACONTRACTUAL O DE OTRO TIPO, QUE SURJA DE, SE DERIVE DE O EN RELACIÓN CON EL SOFTWARE O EL USO U OTRAS RELACIONES CON EL MISMO.

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

Permite ejecutar código JavaScript arbitrario en contenedores Docker aislados con instalación de dependencias npm sobre la marcha, admitiendo tanto ejecuciones efímeras únicas como entornos sandbox persistentes.

  1. Características
    1. Explora casos de uso interesantes
      1. ⚠️ Requisitos previos
        1. Empezando
          1. Uso con Claude Desktop
          2. Estibador
          3. Uso con VS Code
        2. API
          1. Herramientas
            1. run\_js\_efímero
            2. inicialización de sandbox
            3. sandbox\_exec
            4. ejecutar\_js
            5. parada de la zona de pruebas
          2. Consejos de uso
            1. Construir
              1. Licencia

                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
                  Facilitates isolated code execution within Docker containers, enabling secure multi-language script execution and integration with language models like Claude via the Model Context Protocol.
                  Last updated -
                  Python
                  MIT License
                  • Linux
                  • Apple
                • -
                  security
                  A
                  license
                  -
                  quality
                  An interactive Python code execution environment that allows users and LLMs to safely execute Python code and install packages in isolated Docker containers.
                  Last updated -
                  13
                  Python
                  Apache 2.0
                • -
                  security
                  A
                  license
                  -
                  quality
                  An interactive Python code execution tool that allows users and LLMs to safely execute Python code and install packages in isolated Docker containers.
                  Last updated -
                  13
                  Python
                  Apache 2.0

                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