MCP QuickJS ランナー
モデル コンテキスト プロトコル (MCP) を実装するサーバー。WebAssembly (WASM) にコンパイルされた QuickJS エンジン内で任意の JavaScript コードを安全に実行し、Node.js の組み込み WASI 実装を使用して実行するためのツールを提供します。
説明
このサーバーはMCPツールプロバイダーとして機能します。run_javascript_code run_javascript_code単一のツールを公開しており、このツールはJavaScriptコードの文字列を入力として受け取ります。コードはサンドボックス化されたQuickJS WASM環境内で実行されます。サーバーは実行から標準出力( stdout )と標準エラー( stderr )ストリームをキャプチャし、実行エラーとともにMCPクライアントに返します。
これにより、言語モデルやその他の MCP クライアントは、ホスト システムを危険にさらすことなく、信頼できない可能性のある JavaScript コード スニペットを安全に実行できるようになります。
特徴
安全な実行: QuickJS と Node.js WASI を使用して、WASM サンドボックスで JavaScript を実行します。
**標準 I/O キャプチャ:**実行された JavaScript コードから
stdoutとstderrをキャプチャします。エラー報告: QuickJS からの実行時エラーとゼロ以外の終了コードを報告します。
MCP 統合:
stdio経由で標準 MCP ツールとして機能を公開します。**TypeScript で構築:**開発中に型の安全性を提供します。
仕組み
WASM モジュール: WebAssembly System Interface (WASI) をターゲットとした、事前コンパイルされた QuickJS エンジン (
qjs-wasi.wasm) を使用します。Node.js WASI: Node.js の
node:wasiモジュールを活用して、WASM モジュールをインスタンス化して実行します。stdio リダイレクト (一時ファイル): WASM 環境から
stdoutとstderrをキャプチャするために、サーバーは現在、node:wasiと互換性のある標準的なアプローチに依存しています。node:fs/promisesとnode:os使用して、ホスト ファイルシステム上に一時ディレクトリが作成されます。このディレクトリ内で
stdoutおよびstderrの一時ファイルが開かれます。これらのファイルの**実際の OS ファイル記述子は、**初期化中に
WASIインスタンスに渡されます (stdout: fd、stderr: fd)。QuickJS WASM モジュールは出力をこれらの記述子に書き込み、WASI によって一時ファイルにルーティングされます。
実行が終了すると、サーバーはファイル ハンドルを閉じ、一時ファイルの内容を読み取ります。
一時ディレクトリとファイルがクリーンアップされます。
(注:
**MCP 通信:**サーバーは
@modelcontextprotocol/sdkを使用して、stdio経由で MCP 要求をリッスンし、プロトコルに従ってフォーマットされた実行結果で応答します。
前提条件
Node.js (v23.x 以降を推奨、特定のバージョンの
node:wasi互換性を確認してください)QuickJS WASMファイル(
qjs-wasi.wasm)は、コンパイル済みのサーバースクリプトと同じディレクトリ(例:./dist/qjs-wasi.wasm``./dist/server.js)に配置する必要があります。このファイルは別途入手またはコンパイルする必要がある場合があります。
インストール
リポジトリをクローンします (該当する場合)。
依存関係をインストールします:
npm install
使用法
This server cannot be installed
Related Resources
Related MCP Servers
- AsecurityFlicenseAqualityProvides a secure, isolated JavaScript execution environment with configurable time and memory limits for safely running code from Claude.Last updated -1155
- -security-license-qualityA secure MCP server that provides controlled ShellJS access for LLMs, enabling AI systems to safely execute shell commands and interact with the filesystem within a configurable security sandbox.
- AsecurityAlicenseAqualityA secure JavaScript REPL server that enables executing code snippets in a sandboxed environment with memory protection, timeout handling, and comprehensive error reporting.Last updated -721108MIT License
- AsecurityFlicenseAqualityA secure Node.js execution environment that allows coding agents and LLMs to run JavaScript dynamically, install NPM packages, and retrieve results while adhering to the Model Control Protocol.Last updated -7324