mcpField
K
Kilntainers

Kilntainers

ローカル
github.com/Kiln-AI開発ツール5134 週間前に更新

Kilntainers について

Kilntainers は、LLM エージェントにシェルコマンドを実行するための分離された Linux サンドボックスを提供する MCP サーバーです。接続ごとに専用のサンドボックスが作られ、セッション終了時に削除されます。Docker、Podman、Modal、E2B、WASM などのバックエンドに対応しています。

主な機能

  1. 01エージェント接続ごとの分離されたサンドボックス
  2. 02セッション終了時の自動クリーンアップ
  3. 03Docker、Podman などの複数バックエンド対応
  4. 04任意のコマンドを実行する sandbox_exec ツール
  5. 05MCP のみでサンドボックスと通信する構成

活用シーン

  1. 01エージェントに grep、jq、awk などを安全に使わせる
  2. 02クラウド上で多数の並列エージェント用サンドボックスを動かす
  3. 03ホスト OS を公開せずにエージェント生成のコマンドを実行する

MCP 対応

Kilntainers は MCP サーバーとして、単一のツール sandbox_exec を MCP クライアントに公開します。クライアントはこれを使ってサンドボックス内でコマンドを実行し、標準出力、標準エラー、終了コードを受け取ります。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Kilntainers by Kiln AI Logo

MCP 経由で、あらゆるエージェントに使い捨ての Linux サンドボックスを提供

ビルドとテスト テスト数バッジ PyPi Discord ニュースレター

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         │
└─────────────┘         └──────────────┘      └─────────────────────────┘
  1. MCP クライアントが Kilntainers に接続します。
  2. 最初の sandbox_exec 呼び出し時に、Kilntainers が隔離されたサンドボックスを作成します。接続ごとに独立したサンドボックスが作成されます。
  3. サンドボックス内でコマンドが実行され、stdout、stderr、終了コードが返されます。
  4. セッションが終了すると、サンドボックスは破棄され、リソースがクリーンアップされます。

セキュリティ: エージェントは 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)

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。