Enclave MCP server
2026년 11월 13일 커밋여러 보안 계층을 통해 LLM이 생성한 코드를 안전하게 실행할 수 있는 보안 JavaScript 샌드박스 런타임을 제공합니다.
다른 이름 agentfront/enclave
- 스타
- 6
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- —
- 마지막 커밋
- 2026년 11월 13일
- 라이선스
- Apache-2.0
Enclave MCP란?
Enclave은(는) MCP server입니다. 여러 보안 계층을 통해 LLM이 생성한 코드를 안전하게 실행할 수 있는 보안 JavaScript 샌드박스 런타임을 제공합니다.
프로젝트 README에서 생성된 요약
Enclave MCP server 정보
Enclave는 대규모 언어 모델이 생성한 코드를 실행하기 위해 특별히 설계된 보안 JavaScript 샌드박스를 제공합니다. 잠재적으로 악의적이거나 의도하지 않은 AI 출력물로부터 환경을 보호하기 위해 6개의 독립적인 보안 계층을 사용합니다. 개발자는 샌드박스를 위한 @enclave-vm/core 및 AST 기반 보안 검증을 위한 ast-guard와 같은 다양한 전문 패키지를 사용하여 이 런타임을 Node.js 또는 브라우저 기반 애플리케이션에 통합할 수 있습니다.
이 시스템은 NDJSON 프로토콜을 통한 실시간 이벤트 스트리밍을 지원하여 코드 실행 중 실시간 업데이트가 가능합니다. 복잡한 설정을 위해 이 아키텍처는 세션 및 비밀값 관리를 위한 도구 브로커, 스트리밍 세션 연결을 위한 클라이언트 SDK, 그리고 Lambda 또는 Vercel과 같은 환경에 적합한 배포 가능한 런타임 워커를 포함합니다. 이러한 모듈식 접근 방식을 통해 임베디드 실행과 클라이언트, 브로커, 런타임이 포함된 분산형 3서버 아키텍처를 모두 구현할 수 있습니다.
사용자는 샌드박스 내에서 도구 호출을 관리할 수 있으며, 이를 통해 AI가 제어된 도구 핸들러를 통해 외부 함수와 상호작용할 수 있도록 합니다. 이 프레임워크는 타입 안정성을 보장하기 위해 TypeScript-first 방식으로 구축되었으며, 웹 인터페이스에 쉽게 통합할 수 있도록 useEnclaveSession과 같은 React hooks를 제공합니다.
활용 사례
- 1신뢰할 수 없는 AI 코드 실행시스템 침해를 방지하기 위해 LLM이 생성한 JavaScript 코드를 보호된 환경 내에서 실행합니다.
- 2실시간 실행 데이터 스트리밍라이브 스트리밍 인터페이스를 통해 코드 실행 진행 상황과 도구 호출을 모니터링합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
자동 검사
2026년 11월 15일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능agentfront/enclave is public and reachablegithub.com/agentfront/enclave ↗통과
- 패키지가 이 저장소를 소스로 명시검사되지 않음
- 빌드 출처(Sigstore 증명)검사되지 않음
- 오픈 소스 라이선스 (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-13github.com/agentfront/enclave ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기Enclave
Secure sandbox runtime for AI agents
Documentation | Live Demo | FrontMCP Framework
Why Enclave?
- Extensive security testing - See security audit for details
- Defense in depth - 6 security layers for LLM-generated code
- Streaming runtime - Real-time event streaming with tool call support
- Zero-config - Works out of the box with sensible defaults
- TypeScript-first - Full type safety and excellent DX
Install
Core Packages
npm install @enclave-vm/core # Secure JS sandbox
npm install ast-guard # AST security validation
Streaming Runtime
npm install @enclave-vm/broker # Tool broker & session management
npm install @enclave-vm/client # Browser/Node client SDK
npm install @enclave-vm/react # React hooks & components
Packages
| Package | Description |
|---|---|
@enclave-vm/core |
Secure JavaScript sandbox with 6 security layers |
@enclave-vm/broker |
Tool registry, secrets management, session API |
@enclave-vm/client |
Browser & Node.js client for streaming sessions |
@enclave-vm/react |
React hooks: useEnclaveSession, EnclaveProvider |
@enclave-vm/runtime |
Deployable runtime worker (Lambda, Vercel, etc.) |
@enclave-vm/types |
TypeScript types & Zod schemas |
@enclave-vm/stream |
NDJSON streaming, encryption, reconnection |
ast-guard |
AST-based security validator |
Quick Start
import { Enclave } from '@enclave-vm/core';
const enclave = new Enclave({
securityLevel: 'SECURE',
toolHandler: async (name, args) => {
if (name === 'getUser') return { id: args.id, name: 'Alice' };
throw new Error(`Unknown tool: ${name}`);
},
});
const result = await enclave.run(`
const user = await callTool('getUser', { id: 123 });
return { greeting: 'Hello, ' + user.name };
`);
if (result.success) {
console.log(result.value); // { greeting: 'Hello, Alice' }
}
enclave.dispose();
React Integration
import { EnclaveProvider, useEnclaveSession } from '@enclave-vm/react';
function App() {
return (
<EnclaveProvider brokerUrl="https://your-server.com">
<CodeRunner />
</EnclaveProvider>
);
}
function CodeRunner() {
const { execute, state, result, stdout } = useEnclaveSession();
const runCode = () =>
execute(`
const data = await callTool('fetchData', { id: 123 });
return data;
`);
return (
<div>
<button onClick={runCode} disabled={state === 'running'}>
{state === 'running' ? 'Running...' : 'Run Code'}
</button>
{stdout && <pre>{stdout}</pre>}
{result && <pre>{JSON.stringify(result, null, 2)}</pre>}
</div>
);
}
Architecture
See README-ARCHITECTURE.md for detailed architecture documentation covering:
- Deployment scenarios (embedded vs extracted runtime)
- Streaming protocol (NDJSON)
- Tool broker pattern
- Reference sidecar & auto-ref
- Security & encryption
Demos
Enclave Demo (basic sandbox)
npx nx serve enclave-demo
A CLI script that demonstrates core sandbox features: arithmetic, loops, tool calls, and security blocking of disallowed operations.
Streaming Demo (full architecture)
npx nx demo streaming-demo
Starts a 3-server architecture with a web UI, covering embedded, lambda, and direct execution modes:
- Client (port 4100) — Web UI
- Broker (port 4101) — Tool execution & session management
- Runtime (port 4102) — Sandboxed code execution
License
Enclave MCP 질문
Enclave가 AI 에이전트에 안전한 이유는 무엇인가요?
LLM 생성 코드에 특화된 6단계 보안 계층을 사용하는 심층 방어 방식을 채택하여, 인젝션 및 샌드박스 탈출 공격으로부터 보호합니다.
Enclave에서 도구 호출(tool calls)을 처리할 수 있나요?
네, 도구 호출을 지원하는 실시간 이벤트 스트리밍을 지원하며 세션 관리를 위한 도구 브로커를 포함하고 있습니다.
Enclave는 React 애플리케이션을 지원하나요?
네, useEnclaveSession과 같은 React hooks 및 EnclaveProvider 컴포넌트를 제공하는 전용 패키지가 있습니다.