Enclave MCPサーバー
コミット 2026年11月13日複数のセキュリティレイヤーを備え、LLMが生成したコードを安全に実行するためのセキュアなJavaScriptサンドボックスランタイムを提供します。
別名 agentfront/enclave
- スター
- 6
- ツール
- —
- ダウンロード数(30日間)
- —
- 最新バージョン
- —
- 最終コミット
- 2026年11月13日
- ライセンス
- Apache-2.0
Enclave MCPとは
EnclaveはMCPサーバーです。 複数のセキュリティレイヤーを備え、LLMが生成したコードを安全に実行するためのセキュアなJavaScriptサンドボックスランタイムを提供します。.
プロジェクトのREADMEから生成された概要
Enclave MCP server について
Enclaveは、大規模言語モデル(LLM)によって生成されたコードを実行するために特別に設計された、セキュアなJavaScriptサンドボックスを提供します。6つの異なるセキュリティレイヤーを使用することで、潜在的に悪意のある、あるいは意図しないAIの出力から環境を保護します。開発者は、サンドボックス用の@enclave-vm/coreや、ASTベースのセキュリティ検証を行うast-guardなどの各種専用パッケージを使用して、このランタイムをNode.jsやブラウザベースのアプリケーションに統合できます。
このシステムはNDJSONプロトコルによるリアルタイムのイベントストリーミングをサポートしており、コード実行中のライブアップデートが可能です。複雑な構成向けに、このアーキテクチャにはセッション管理とシークレットのためのツールブローカー、ストリーミングセッションに接続するためのクライアントSDK、そしてLambdaやVercelなどの環境に適したデプロイ可能なランタイムワーカーが含まれています。このモジュール方式により、組み込み型の実行と、クライアント、ブローカー、ランタイムを含む分散型の3サーバー構成の両方が可能です。
ユーザーはサンドボックス内でツール呼び出しを管理でき、制御されたツールハンドラーを通じてAIが外部関数とやり取りすることを可能にします。フレームワークはTypeScriptファーストのアプローチで構築されており、型安全性が確保されているほか、Webインターフェースへの容易な統合を実現する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のよくある質問
AIエージェントにとって、Enclaveの何が安全なのですか?
LLMが生成したコードによるインジェクションやサンドボックス脱出を防ぐため、それらに特化して設計された6つのセキュリティレイヤーによる多層防御アプローチを採用しています。
Enclaveはツール呼び出し(tool calls)を処理できますか?
はい、ツール呼び出しをサポートしたリアルタイムのイベントストリーミングに対応しており、セッション管理用のツールブローカーも含まれています。
EnclaveはReactアプリケーションをサポートしていますか?
はい、useEnclaveSessionのようなReact hooksやEnclaveProviderコンポーネントを提供する専用のパッケージがあります。