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 코드에서
stdout및stderr캡처합니다.오류 보고: QuickJS의 런타임 오류와 0이 아닌 종료 코드를 보고합니다.
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/server.js에 대한./dist/qjs-wasi.wasm). 별도로 구하거나 컴파일해야 할 수도 있습니다.
설치
저장소를 복제합니다(해당되는 경우).
종속성 설치:
지엑스피1
용법
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