Skip to main content
Glama

MCP QuickJS Runner

by jlucaso1

MCP QuickJS 러너

WebAssembly(WASM)로 컴파일된 QuickJS 엔진 내에서 임의의 JavaScript 코드를 안전하게 실행하고 Node.js의 내장 WASI 구현을 사용하여 실행하는 도구를 제공하는 MCP(Model Context Protocol)를 구현하는 서버입니다.

설명

이 서버는 MCP 도구 제공자 역할을 합니다. JavaScript 코드 문자열을 입력으로 받는 run_javascript_code 라는 단일 도구를 제공합니다. 이 코드는 샌드박스 처리된 QuickJS WASM 환경에서 실행됩니다. 서버는 실행 과정에서 표준 출력( stdout )과 표준 오류( stderr ) 스트림을 캡처하여 실행 오류와 함께 MCP 클라이언트로 반환합니다.

이를 통해 언어 모델이나 다른 MCP 클라이언트는 호스트 시스템을 손상시키지 않고 잠재적으로 신뢰할 수 없는 JavaScript 코드 조각을 안전하게 실행할 수 있습니다.

특징

  • 안전한 실행: QuickJS 및 Node.js WASI를 사용하여 WASM 샌드박스에서 JavaScript를 실행합니다.
  • 표준 I/O 캡처: 실행된 JavaScript 코드에서 stdoutstderr 캡처합니다.
  • 오류 보고: QuickJS의 런타임 오류와 0이 아닌 종료 코드를 보고합니다.
  • MCP 통합: stdio 통해 표준 MCP 도구로 기능을 제공합니다.
  • TypeScript로 구축: 개발 중에 유형 안전성을 제공합니다.

작동 원리

  1. WASM 모듈: WebAssembly System Interface(WASI)를 타겟으로 하는 사전 컴파일된 QuickJS 엔진( qjs-wasi.wasm )을 사용합니다.
  2. Node.js WASI: Node.js의 node:wasi 모듈을 활용하여 WASM 모듈을 인스턴스화하고 실행합니다.
  3. Stdio 리디렉션(임시 파일): WASM 환경에서 stdoutstderr 캡처하기 위해 서버는 현재 node:wasi 와 호환되는 표준 접근 방식을 사용합니다.
    • node:fs/promisesnode:os 사용하여 호스트 파일 시스템에 임시 디렉토리를 생성합니다.
    • stdoutstderr 의 임시 파일은 이 디렉토리에서 열립니다.
    • 이러한 파일에 대한 실제 OS 파일 설명자는 초기화 중에 WASI 인스턴스로 전달됩니다( stdout: fd , stderr: fd ).
    • QuickJS WASM 모듈은 이러한 설명자에 출력을 쓰고, 이 출력은 WASI에 의해 임시 파일에 라우팅됩니다.
    • 실행이 완료되면 서버는 파일 핸들을 닫고 임시 파일의 내용을 읽습니다.
    • 임시 디렉토리와 파일이 정리됩니다.
    • (참고: 메모리 내 파이프나 memfs 와 같은 가상 파일 시스템을 사용하려는 시도는 실패했습니다. 왜냐하면 node:wasi 현재 stdio에 대한 실제 OS 파일 설명자를 필요로 하기 때문입니다.)
  4. MCP 통신: 서버는 @modelcontextprotocol/sdk 사용하여 stdio 통해 MCP 요청을 수신하고 프로토콜에 따라 포맷된 실행 결과로 응답합니다.

필수 조건

  • Node.js (v23.x 이상 권장, 특정 버전에 대한 node:wasi 호환성 확인)
  • npm 또는 yarn
  • QuickJS WASM 파일( qjs-wasi.wasm )은 컴파일된 서버 스크립트와 같은 디렉토리에 있어야 합니다(예: ./dist/server.js 에 대한 ./dist/qjs-wasi.wasm ). 별도로 구하거나 컴파일해야 할 수도 있습니다.

설치

  1. 저장소를 복제합니다(해당되는 경우).
  2. 종속성 설치:지엑스피1

용법

node server.ts
-
security - not tested
-
license - not tested
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

샌드박스 QuickJS WASM 환경 내에서 임의의 JavaScript 코드를 안전하게 실행하여 언어 모델이나 다른 MCP 클라이언트가 호스트 시스템을 손상시키지 않고 JavaScript 코드 조각을 안전하게 실행할 수 있도록 합니다.

  1. 설명
    1. 특징
      1. 작동 원리
        1. 필수 조건
          1. 설치
            1. 용법

              Related MCP Servers

              • -
                security
                A
                license
                -
                quality
                The sessionless code interpreter. Securely run AI-generated code in stateful sandboxes that run forever.
                Last updated -
                65
                176
                Rust
                MIT License
              • 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
              • -
                security
                F
                license
                -
                quality
                A 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.
                Last updated -
                JavaScript
              • 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/jlucaso1/mcp-javascript-sandbox'

              If you have feedback or need assistance with the MCP directory API, please join our Discord server