Kilntainers について
Kilntainers は、LLM エージェントにシェルコマンドを実行するための分離された Linux サンドボックスを提供する MCP サーバーです。接続ごとに専用のサンドボックスが作られ、セッション終了時に削除されます。Docker、Podman、Modal、E2B、WASM などのバックエンドに対応しています。
主な機能
- 01エージェント接続ごとの分離されたサンドボックス
- 02セッション終了時の自動クリーンアップ
- 03Docker、Podman などの複数バックエンド対応
- 04任意のコマンドを実行する sandbox_exec ツール
- 05MCP のみでサンドボックスと通信する構成
活用シーン
- 01エージェントに grep、jq、awk などを安全に使わせる
- 02クラウド上で多数の並列エージェント用サンドボックスを動かす
- 03ホスト OS を公開せずにエージェント生成のコマンドを実行する
MCP 対応
Kilntainers は MCP サーバーとして、単一のツール sandbox_exec を MCP クライアントに公開します。クライアントはこれを使ってサンドボックス内でコマンドを実行し、標準出力、標準エラー、終了コードを受け取ります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP 経由で、あらゆるエージェントに使い捨ての Linux サンドボックスを提供
Kilntainers は、LLM エージェントにシェルコマンド実行用の隔離された Linux サンドボックスを提供する MCP サーバーです。
- 🧰 複数のバックエンド: コンテナー(Docker、Podman)、クラウドホスト型マイクロ VM(Modal、E2B)、WebAssembly サンドボックス(WASM BusyBox、または任意の WASM モジュール)。
- 🏝️ エージェントごとに隔離: 各エージェント専用のサンドボックスを用意するため、状態は共有されず、相互に影響しません。
- 🧹 使い捨て: サンドボックスは MCP セッション中のみ存続し、セッション終了後に自動的にシャットダウンしてクリーンアップされます。
- 🔒 セキュリティを重視した設計: エージェントは MCP 経由でサンドボックスと通信します。サンドボックス内で実行されるわけではありません。エージェントの API キー、コード、プロンプトがサンドボックスに公開されることはありません。
- 🔌 シンプルな MCP インターフェース: 単一の MCP ツール
sandbox_execを使って、エージェントから任意の Linux コマンドを実行できます。 - 📈 スケーラブル: ノート PC 上で数体のエージェントを動かすところから、クラウドで数千体を並列実行するところまで拡張できます。
Kilntainers を選ぶ理由
エージェントはすでにターミナルを使いこなしており、grep、find、jq、awk などの一般的な Linux ユーティリティを活用することで、数千トークンを節約できます。しかし、エージェントにホスト OS へのアクセスを許可するのはセキュリティ上の悪夢であり、サービス上で数千体のエージェントを並列実行するのも困難です。Kilntainers は、各エージェントに専用の隔離された使い捨てサンドボックスを提供します。
クイックスタート
CLI からインストールして実行します。
# install
uv tool install kilntainers
# starts with defaults: stdio MCP server, Docker, and Debian-slim (see options below)
kilntainers
MCP クライアント(Claude、Cursor など)に追加します。
{
"mcpServers": {
"kilntainers": {
"command": "kilntainers"
}
}
}
仕組み
┌─────────────┐ MCP ┌──────────────┐ ┌─────────────────────────┐
│ LLM Agent │◄───────►│ Kilntainers │◄────►│ Sandboxes │
│ (client) │ │ MCP Server │ │ - Docker/Podman │
│ │ │ │ │ - Cloud VM (Modal,E2B) │
│ │ │ │ │ - WASM Sandbox │
└─────────────┘ └──────────────┘ └─────────────────────────┘
- MCP クライアントが Kilntainers に接続します。
- 最初の
sandbox_exec呼び出し時に、Kilntainers が隔離されたサンドボックスを作成します。接続ごとに独立したサンドボックスが作成されます。 - サンドボックス内でコマンドが実行され、stdout、stderr、終了コードが返されます。
- セッションが終了すると、サンドボックスは破棄され、リソースがクリーンアップされます。
セキュリティ: エージェントは MCP 経由でサンドボックスと通信します。サンドボックス内で実行されるわけではありません。これは意図的な設計です。エージェントは多くの場合、シークレット(API キー、システムプロンプト、コード)を必要としますが、プロンプトインジェクションによって外部に持ち出される可能性のあるサンドボックス内に、それらを決して公開すべきではありません。
エージェントの隔離とサンドボックスのライフサイクル: MCP 接続ごとに、独自の隔離されたサンドボックスが開始されます。ストリーミング HTTP モードでは、単一の MCP サーバーで多数のサンドボックスを並列稼働でき、exec 呼び出しはその接続に関連付けられたサンドボックスにルーティングされます。stdio モードでは、サーバーはプロセスごとに単一のサンドボックスを実行します。接続が閉じられると、そのサンドボックスはシャットダウンされ、削除されます。
バックエンドの例
すべての引数については、CLI リファレンスを参照してください。
Docker と Podman(デフォルト)
Docker または Podman を使用したローカルコンテナーです。任意の OCI イメージを使用できます。
kilntainers # Docker + debian-slim (defaults)
kilntainers --image alpine --engine podman # Podman + Alpine
kilntainers --image node:22 --network # Node.js with networking
クラウドコンテナーと VM
Modal.com
Modal.com を介して、起動時間が 1 秒未満のホスト型コンテナを利用できます。数千のサンドボックスを並列でスケールできます。GPU に対応しています。
kilntainers --backend modal
kilntainers --backend modal --gpu A10G --region us-east # GPU-accelerated
modal setup CLI、または --modal-token-id/--modal-token-secret フラグを使って認証します。
E2B
E2B のクラウドホスト型マイクロ VM サンドボックスです。
kilntainers --backend e2b # Default Debian image
kilntainers --backend e2b --e2b-api-key ABCD --e2b-template my-custom-alpine # Custom image
--e2b-api-key CLI 引数、または E2B_API_KEY 環境変数を使って認証します。
WASM Go BusyBox(実験的)
WebAssembly サンドボックス内で go-busybox を実行します。完全な Linux 環境ではありませんが、軽量で安全なサンドボックス内で一般的なユーティリティ(grep、awk、sed、ls、wc、sort など)を利用できます。
uv tool install kilntainers[wasm] # WASM support is an optional dependency (+15MB)
kilntainers --backend go_busybox
WASM Runner
カスタム WASM モジュールをサンドボックスのバックエンドとして実行します。エージェントに WebAssembly にコンパイルされたツール群と、隔離されたファイルシステムを提供します。
uv tool install kilntainers[wasm] # WASM support is an optional dependency (+15MB)
kilntainers --backend wasm --wasm-path ./my_tool.wasm
インストール
uv tool install kilntainers # recommended
uv tool install kilntainers[wasm] # optional, include WASM backends (+15MB)
pip install kilntainers # also works with pip
Python 3.13 以降が必要です。Docker バックエンドには Docker または Podman が必要です。Modal および E2B バックエンドには、各サービスのアカウントが必要です。
CLI リファレンス
usage: kilntainers [-h] [--backend {docker,go_busybox,modal,wasm}] [--transport {stdio,http}] [...]
MCP server providing isolated Linux sandboxes for LLM agent shell execution.
options:
-h, --help show this help message and exit
core options:
--backend {docker,e2b,go_busybox,modal,wasm}
Backend to use (default: docker). Available: docker, e2b, go_busybox, modal, wasm
--transport {stdio,http}
MCP transport (default: stdio)
--host HOST HTTP bind address (default: 127.0.0.1, HTTP mode only)
--port PORT HTTP listen port (default: 8435, HTTP mode only)
--timeout TIMEOUT Default exec timeout in seconds (default: 120)
--output-limit OUTPUT_LIMIT
Max combined stdout+stderr bytes per exec (default: 2097152 = 2 MiB)
--session-timeout SESSION_TIMEOUT
Idle session timeout in seconds (default: 300, HTTP mode only)
--shell SHELL Shell binary for command mode (e.g., /bin/bash, ash). Default: /bin/bash.
--network Enable network access in sandboxes (default: disabled)
tool description:
--tool-instruction-override TOOL_INSTRUCTION_OVERRIDE
Replace the entire sandbox_exec tool description
--extended-tool-instruction EXTENDED_TOOL_INSTRUCTION
Append to the backend's default tool description
docker backend options:
--engine ENGINE Container CLI binary (default: docker). Supports podman.
--docker-host DOCKER_HOST
Docker daemon socket/address, passed as -H to the Docker CLI (e.g., "ssh://user@remote-host", "tcp://host:2375")
--image IMAGE Docker image (default: debian:bookworm-slim)
--cpu CPU Docker CPU limit (e.g., "1.5")
--memory MEMORY Docker memory limit (e.g., "512m")
--docker-run-flag DOCKER_RUN_FLAGS
Additional flag passed to docker run. Repeatable. (e.g., --docker-run-flag "--pids-limit=256")
e2b backend options:
--e2b-api-key E2B_API_KEY
E2B API key (overrides E2B_API_KEY environment variable)
--e2b-template E2B_TEMPLATE
E2B template name or ID (default: base)
--e2b-sandbox-timeout E2B_SANDBOX_TIMEOUT
Sandbox lifetime timeout in seconds (default: 3600)
--e2b-metadata E2B_METADATA
Metadata key=value pairs (can be used multiple times)
--e2b-env E2B_ENV Environment variable key=value pairs (can be used multiple times)
modal backend options:
--modal-token-id MODAL_TOKEN_ID
Modal token ID (overrides environment/default auth)
--modal-token-secret MODAL_TOKEN_SECRET
Modal token secret (overrides environment/default auth)
--modal-app-name MODAL_APP_NAME
Modal app name (default: kilntainers)
--modal-cpu MODAL_CPU
CPU cores (fractional, default: 1.0)
--modal-memory MODAL_MEMORY
Memory in MiB (default: 512)
--gpu GPU GPU type (e.g., "A10G", "H100")
--region REGION Geographic region (e.g., "us-east")
--sandbox-timeout SANDBOX_TIMEOUT
Sandbox lifetime timeout in seconds (default: 3600, max 86400)
wasm backend options:
--wasm-path WASM_PATH
Path to the .wasm file to execute (required for wasm backend)
--wasm-max-memory WASM_MAX_MEMORY
Max WASM memory in MiB (default: 256)
--wasm-fuel WASM_FUEL
WASM instruction fuel limit (default: unlimited)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。