Node.js Sandbox MCP Server

Integrations

  • Enables running arbitrary JavaScript code in isolated Docker containers with controlled CPU/memory limits. The server manages container lifecycle including creation, execution, and teardown.

  • Allows execution of arbitrary JavaScript snippets in isolated environments, capturing stdout and supporting both one-off and session-based execution models.

  • Provides tools for executing Node.js code in sandboxed environments, supporting ES modules and allowing stdout capture from executed scripts.

🐢🚀 Node.js サンドボックス MCP サーバー

オンザフライの npm 依存関係インストールを使用して、一時的な Docker コンテナで任意の JavaScript を実行するための Model Context Protocol (MCP) を実装した Node.js サーバー。

特徴

  • 分離された Node.js サンドボックス コンテナを起動および管理する
  • コンテナ内で任意のシェルコマンドを実行する
  • ジョブごとに指定された npm 依存関係をインストールする
  • ES モジュールの JavaScript スニペットを実行し、標準出力をキャプチャします。
  • コンテナをきれいに解体する

注: コンテナは制御された CPU/メモリ制限で実行されます。

API

ツール

実行JSエフェメラル

まったく新しい使い捨てコンテナで 1 回限りの JS スクリプトを実行します。

入力:

  • image (文字列、オプション): 使用する Docker イメージ (デフォルト: node:20-slim )。
  • code (文字列、必須): 実行する JavaScript ソース。
  • dependencies{ name, version }の配列、オプション):インストールする NPM パッケージとバージョン(デフォルト: [] )。

行動:

  1. 新しいコンテナを作成します。
  2. index.jsと最小限のpackage.jsonを書き込みます。
  3. 指定された依存関係をインストールします。
  4. スクリプトを実行します。
  5. コンテナを解体(削除)します。
  6. キャプチャした標準出力を返します。
  7. コードが現在のディレクトリにファイルを保存すると、これらのファイルは自動的に返されます。
    • imageコンテンツとして画像 (PNG、JPEG など) が返されます。
    • その他のファイル (例: .txt.json ) はresourceコンテンツとして返されます。

**ヒント:**ファイルを復元するには、スクリプトの実行中にファイルを保存するだけです。

呼び出し例:

{ "name": "run_js_ephemeral", "arguments": { "image": "node:20-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ファイルが返されます。

サンドボックスの初期化

新しいサンドボックス コンテナーを起動します。

  • 入力:
    • image (文字列、オプション、デフォルト: node:20-slim ): サンドボックス用のDockerイメージ
  • 出力: コンテナID文字列

サンドボックス実行

実行中のサンドボックス内でシェル コマンドを実行します。

  • 入力:
    • container_id (文字列): sandbox_initializeからのID
    • commands ( string[] ): 実行するシェルコマンドの配列
  • 出力: 各コマンドの標準出力を結合したもの

実行js

npm の依存関係をインストールし、JavaScript コードを実行します。

  • 入力:
    • container_id (文字列): sandbox_initializeからのID
    • code (文字列): 実行するJSソース(ESモジュールをサポート)
    • dependencies{ name, version }の配列、オプション、デフォルト: [] ): npmパッケージ名 → semverバージョン
  • 行動
    1. コンテナ内に一時ワークスペースを作成します
    2. index.jsと最小限のpackage.jsonを書きます
    3. npm install --omit=dev --ignore-scripts --no-audit --loglevel=error実行します。
    4. node index.jsを実行し、stdoutをキャプチャします。
    5. ワークスペースをクリーンアップする
  • 出力: スクリプトの標準出力

サンドボックスストップ

サンドボックス コンテナーを終了して削除します。

  • 入力:
    • container_id (文字列): sandbox_initializeからのID
  • 出力: 確認メッセージ

Claude Desktopでの使用

これをclaude_desktop_config.jsonに追加します:

{ "mcpServers": { "js-sandbox": { "command": "node", "args": ["dist/server.js", "stdio"], "cwd": "/path/to/js-sandbox-mcp" } } }

注: 作業ディレクトリがビルドされたサーバーを指していること、および Docker がインストール/実行されていることを確認してください。

使用上のヒント

  • セッションベースのツール( sandbox_initializerun_jssandbox_stop ) は、次のような場合に最適です。
    • 長期間有効なサンドボックス コンテナーを開いたままにします。
    • 同じ環境で複数のコマンドまたはスクリプトを実行します。
    • 依存関係を段階的にインストールして再利用します。
  • run_js_ephemeralを使用したワンショット実行は、次のような場合に最適です。
    • 簡単な実験や簡単なスクリプト。
    • 状態またはキャッシュの依存関係を維持する必要がないケース。
    • 手動によるティアダウンを気にすることなく、クリーンでアトミックな実行を実現します。

ユースケースに最適なワークフローを選択してください。

ドッカー

コンテナ内でサーバーを実行します (必要に応じて Docker ソケットをマウントします)。

# Build and publish your image locally if needed # docker build -t alfonsograziano/node-code-sandbox-mcp . # Run with stdio transport docker run --rm -it \ -v /var/run/docker.sock:/var/run/docker.sock \ alfonsograziano/node-code-sandbox-mcp stdio

VS Codeでの使用

クイックインストールボタン (VS Code および Insiders):

js-sandbox-mcp (NPX) をインストールする js-sandbox-mcp (Docker) をインストールする

手動設定: VS Code のsettings.jsonまたは.vscode/mcp.jsonに追加します。

"mcp": { "servers": { "js-sandbox": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "/var/run/docker.sock:/var/run/docker.sock", "alfonsograziano/node-code-sandbox-mcp" ], } } }

Claude Desktopでの使用

このMCPサーバーをインストールするには、公式ガイドに従ってください。

{ "mcpServers": { "js-sandbox": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "/var/run/docker.sock:/var/run/docker.sock", "alfonsograziano/node-code-sandbox-mcp" ] } } }

建てる

コンパイルしてバンドルする:

npm install npm run build

ライセンス

MITライセンス

本ソフトウェアおよび関連ドキュメント ファイル (以下「本ソフトウェア」) のコピーを入手したすべての人物は、以下の条件に従い、本ソフトウェアを無制限に扱う権利 (使用、コピー、変更、統合、公開、配布、サブライセンス、および/または販売する権利を含みますが、これに限定されません) および本ソフトウェアの提供を受けた人物が同様の行為を行うことを許可する権利を無償で付与されます。

上記の著作権表示およびこの許可通知は、ソフトウェアのすべてのコピーまたは大部分に含めるものとします。

本ソフトウェアは「現状有姿」で提供され、明示的または黙示的を問わず、商品性、特定目的への適合性、非侵害性を含むがこれらに限定されない、いかなる種類の保証も付与されません。いかなる場合においても、著作者または著作権者は、契約違反、不法行為、またはその他の行為にかかわらず、本ソフトウェア、本ソフトウェアの使用、またはその他の取り扱いに起因または関連して発生するいかなる請求、損害、またはその他の責任についても責任を負わないものとします。

-
security - not tested
F
license - not found
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

オンザフライの npm 依存関係インストールにより、分離された Docker コンテナーで任意の JavaScript コードを実行できるようになり、一時的なワンショット実行と永続的なサンドボックス環境の両方をサポートします。

  1. Features
    1. API
      1. Tools
        1. run_js_ephemeral
        2. sandbox_initialize
        3. sandbox_exec
        4. run_js
        5. sandbox_stop
      2. Usage with Claude Desktop
        1. Usage Tips
          1. Docker
            1. Usage with VS Code
              1. Usage with Claude Desktop
                1. Build
                  1. License

                    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
                      1,369
                      3
                      JavaScript
                      • Linux
                      • Apple

                    View all related MCP servers

                    ID: htroou6m7r