アップデート一覧に戻る
New releaseSep 21, 2026

ironcurtain memory-mcp-server/v0.2.1

自律型AIエージェントのためのセキュア*ランタイム。平易な英語の憲法からポリシーを生成。(*https://ironcurtain.dev)

共有

IronCurtain

CI npm License Website

自律型 AI エージェントのためのセキュア*なランタイム。セキュリティポリシーは人間が読める憲法から導出される。

*誰かが「セキュア」と書いたら、すぐに疑うべきです。セキュアとは何を意味するのか?

[!WARNING] 研究プロトタイプ。 IronCurtain は、AI エージェントを真に有用なレベルまで安全にする方法を探求する初期段階の研究プロジェクトです。API、設定フォーマット、アーキテクチャは変更される可能性があります。コントリビューションとフィードバックを歓迎します。

デモ

IronCurtain mux デモ: コマンドモードからの信頼された入力により git clone と git push の自動承認が有効になる

エージェントはリポジトリのクローンと変更のプッシュを依頼されます。git_clone と git_push はどちらもポリシーエンジンによってエスカレーションされますが、自動承認機能がそれらを自動的に承認します — コマンドモード(Ctrl-A)からのユーザーの信頼された入力が明確な意図を示していたため、手動の /approve は不要でした。

問題

自律型 AI エージェントは、ファイルの管理、git コマンドの実行、メッセージの送信、API との連携をあなたに代わって行うことができます。しかし今日のエージェントフレームワークは、エージェントにユーザーと同じ権限 — ファイルシステム、認証情報、ネットワークへの完全なアクセス — を与えています。セキュリティ研究者はこれを ambient authority(環境権限) と呼び、単一のプロンプトインジェクションやマルチターンのドリフトによって、エージェントがファイルを削除したり、データを窃取したり、悪意のあるコードをプッシュしたりする可能性があることを意味します。

一般的な対応は、エージェントを狭いサンドボックスに制限する(有用性を制限する)か、すべてのアクションをユーザーに承認させる(自律性を制限する)かのどちらかです。どちらも満足のいくものではありません。

アプローチ

IronCurtain は別の道を取ります: セキュリティの意図を平易な英語で表現し、システムに強制方法を考えさせる。

あなたは constitution(憲法) を書きます。これはエージェントが何をしてよく、何をしてはいけないかを記述した短い文書です。IronCurtain は LLM パイプラインを使ってこれを決定論的なセキュリティポリシーにコンパイルし、コンパイルされたルールを生成されたテストシナリオに対して検証し、実行時にすべてのツール呼び出しに対してポリシーを強制します。その結果、自然言語で定義した境界内で自律的に動作できるエージェントが得られます。

主要なアイデア:

  • エージェントは信頼されない。 IronCurtain は、LLM がプロンプトインジェクションやドリフトによって侵害される可能性があると想定します。セキュリティはモデルが「善良であること」に依存しません。
  • 英語で入力し、強制で出力する。 あなたは意図を書きます(「承認なしの破壊的な git 操作は禁止」)。システムはそれを決定論的なルールにコンパイルし、実行時にそれ以上の LLM の関与なしに強制します。
  • セマンティックな介在。 エージェントに生のシステムアクセスを与える代わりに、すべてのやり取りは MCP サーバー(ファイルシステム、git など)を経由します。すべてのツール呼び出しはポリシーエンジンを通過し、許可、拒否、または承認のためにユーザーへ エスカレーション されます。
  • 多層防御。 エージェントコードはホストへの直接アクセスを持たない V8 アイソレート内で実行されます。唯一の出口は意味のある MCP ツール呼び出しであり、そのすべてがポリシーに対してチェックされます。

アーキテクチャ

IronCurtain は、異なる信頼モデルを持つ 2 つのセッションモードをサポートしています:

  • Builtin Agent(コードモード) — IronCurtain 独自の LLM エージェントが、V8 サンドボックス内で実行される TypeScript スニペットを書きます。IronCurtain はエージェント、サンドボックス、ポリシーエンジンを制御します。すべてのツール呼び出しは構造化された MCP リクエストとしてサンドボックスを出て、ポリシーエンジン(許可 / 拒否 / エスカレーション)を通過し、その後でのみ実際の MCP サーバーに到達します。

  • Docker Agent モード — 外部エージェント(Claude Code、Goose、Codex)が、パブリックネットワークへの直接アクセスなしでコンテナ内で実行されます。IronCurtain は外部への影響を仲介します: LLM API 呼び出しは TLS 終端 MITM プロキシ(ホスト許可リスト、偽キーから実キーへの交換)を通過し、MCP ツール呼び出しは同じポリシーエンジンを通過し、サポートされているパッケージインストールは検証パッケージプロキシを通過します。

オプトインの ネストされた Docker は、開発者セッションにホストの Docker ソケットを公開することなく、プライベートで一時的なデーモンを提供します。実装済みのプロファイルは、macOS 上の Apple Container と Docker Desktop、および amd64 上の WSL2 + Docker Desktop をカバーしています。その offline、images、packages モードは、ローカルイメージの使用、仲介されたパブリックイメージのプル、サポートされているパッケージビルドを分離します。ネイティブ Linux Engine はネストには許可されていません。前提条件と制限については設定リファレンスを参照してください。

どちらのモードでも、エージェントは 信頼されません。セキュリティはモデルが指示に従うことに依存せず、境界で強制されます。

図、レイヤーごとの信頼分析、macOS プラットフォームの注意事項を含む完全なアーキテクチャについては SANDBOXING.md を参照してください。

クイックスタート

前提条件

  • Node.js 24 または 26 — IronCurtain がテストしている偶数番号のメジャーライン。どちらもビルド済みの isolated-vm バイナリをインストールします。Node 25 はサポートされておらず、テストもされていません。
  • Docker — 必須ではありませんが、最強の分離を提供する Docker Agent モードには 強く推奨 されます。macOS 26+(Apple silicon)では、Apple container が代替バックエンドとして機能します(コンテナごとに VM。そのサービスが実行中の場合に自動的に使用されます — ironcurtain config の containerRuntime を参照)
  • 少なくとも 1 つの LLM プロバイダー(Anthropic、Google、または OpenAI)の API キー

インストール

グローバル CLI ツールとして(エンドユーザー向け):

npm install -g @provos/ironcurtain

ソースから (開発):

git clone https://github.com/provos/ironcurtain.git
cd ironcurtain
npm install

初回セットアップ

1. APIキーを設定する:

export ANTHROPIC_API_KEY=sk-ant-...

プロジェクトルートの .env ファイルにキーを配置することもできます(dotenv 経由で自動的に読み込まれます)。または、ironcurtain config を実行して ~/.ironcurtain/config.json に追加することもできます。環境変数は設定ファイルの値よりも優先されます。サポート対象: ANTHROPIC_API_KEY、GOOGLE_GENERATIVE_AI_API_KEY、OPENAI_API_KEY。

2. 初回起動ウィザードを実行する(推奨される mux パスを使用する前に明示的に実行してください。初回の非 mux の ironcurtain start でも自動的に実行されます):

ironcurtain setup

GitHub トークンのセットアップ、Web 検索プロバイダー、モデル選択、その他の設定を順を追って説明します。選択内容を反映した ~/.ironcurtain/config.json を作成します。

IronCurtain の実行

IronCurtain には、開発者体験を重視したデフォルトポリシーが同梱されています — 読み取り専用操作は許可され、変更操作(書き込み、プッシュ、PR 作成)は人間の承認を求めてエスカレーションされます。セットアップ後すぐに使い始めることができます。

ターミナルマルチプレクサ(推奨)

IronCurtain を使用するための推奨方法です。IronCurtain がポリシーエンジンを通じてすべてのツール呼び出しを仲介しながら、エージェントのインタラクティブ TUI(Claude Code または Goose)の全機能を単一のターミナルで利用できます。

ironcurtain mux

主な機能:

  • フルエージェントTUI — エージェントはネットワークアクセスのないDockerコンテナ内のPTYで実行されます。ローカルで実行されている場合とまったく同じように操作できます。
  • インラインエスカレーション処理 — ツール呼び出しに承認が必要な場合、エスカレーションピッカーがビューポートにオーバーレイ表示され、単一キー操作(a/d/wで承認/拒否/ホワイトリスト)が可能です。/approve+ N を使用すると、セッションの残りの間、ドメインまたはパスをホワイトリストに登録できます。
  • 信頼されたユーザー入力 — コマンドモード(Ctrl-A)で入力されたテキストは、コンテナに入る前にホスト側でキャプチャされます。これにより、自動承認者が利用できる検証済みの意図シグナルが生成されます — 例えば、「push my changes to origin」と入力すると、後続の git_push エスカレーションが自動承認されます。
  • タブ管理 — 複数の同時セッションを生成し(/new)、それらを切り替え(/tab N、Alt-1..9)、閉じることができます(/close)。複数のmuxインスタンスを並行して実行できます。

入力モード、信頼された入力のセキュリティモデル、エスカレーションワークフロー、キーボードリファレンスを含む完全なウォークスルーについては、DEVELOPER_GUIDE.md を参照してください。

非muxセッション

クイックなワンショットタスク、スクリプト、またはローカルの組み込みエージェントを明示的に使用したい場合は、ironcurtain start を使用してください。通常のインタラクティブなDockerエージェント作業には、ironcurtain mux を使用してください。

ironcurtain start "Summarize the files in ./src"     # Single-shot mode
ironcurtain start -w ./my-project "Fix the tests"    # Single-shot workspace mode
ironcurtain start --agent builtin                    # Local builtin REPL, no Docker
ironcurtain start --persona my-assistant "Check my email"  # Use a persona

その他の実行モード

IronCurtainは、セッション再開(--resume <session-id>)、レガシーなraw PTY/デバッグモード、モバイル承認用のSignalメッセージングトランスポート、スケジュールされたcronジョブ用のデーモンモードもサポートしています。デーモンには、ブラウザベースの監視とエスカレーション処理のためのオプションのweb UI(--web-ui)があります。詳細はRUNNING_MODES.mdを参照してください。

マルチエージェントワークフロー

IronCurtainは、構造化されたワークフローを通じて複数のAIエージェントをオーケストレーションします。バンドルされている脆弱性発見ワークフローは、階層化されたハーネスパイプライン(Tier 1 分離関数 → Tier 2 マルチコンポーネント → Tier 3 フルビルド)とlibFuzzer/AFL++のカバレッジゲーティング、仮説駆動型のdiscover/triage状態、そして最終的な人間によるレポートレビューゲートを通じて、ネイティブコードのメモリ安全性および論理バグを追跡します。design-and-codeワークフローは、plan / design / implement / reviewサイクルを実行し、これも人間によるゲートを備えています。各エージェントは、役割固有のポリシー境界を持つ独自のDockerコンテナ内で実行されます。エンジンは、状態遷移、アーティファクトの受け渡し、クラッシュ再開チェックポイントを自動的に管理します。オープンソースで、完全にあなたのマシン上で動作し、憲法ベースのポリシーエンジンを介してエージェントごとのセキュリティポリシーを適用し、任意のDockerコンテナ化されたエージェントで動作します — コーディングタスクにおけるAmazon KiroやGoogle Julesと同等のスコープですが、ファーストクラスのセキュリティと拡張可能なワークフロー定義フォーマットを備えています。

IronCurtain web UIにおける脆弱性発見の状態機械

web UIはワークフロー実行のための意図されたインターフェースです。 デーモンを起動し、表示されたURLを開き、Workflowsページから実行を操作します — 上の状態機械グラフはライブで、エージェントメッセージのタイムラインはmarkdownレンダリングでストリーミングされ、ゲートレビューにはワークスペース + アーティファクトブラウザが含まれ、過去の実行は一覧に残ります。

ironcurtain daemon --web-ui

スクリプト、自動化、デバッグ用にCLIアクセスが利用可能です:

カテゴリ