
MCP Sandbox Computer VM for AI
io.github.flujo-app由 GitHub 帳號 flujo-app 發布v0.2.3更新於 Oct 24, 2026
Named Docker and Fly Machine sandbox computers with an interactive MCP App dashboard.
概覽
透過 MCP 為 AI 代理提供具名、隔離的 Linux 沙箱電腦,支援指令執行、生命週期工具與儀表板,後端可選 Docker、Fly Machines、Modal 等。
- 可以做什麼
- 在隔離的 Linux 沙箱中執行 shell 指令,回傳 stdout、stderr、結束碼與耗時,並為每個沙箱提供穩定的 computer_id 以及暫時或持久生命週期。
- 適用情境
- 當代理需要執行 grep、find、jq、awk 等 Linux 指令而不碰觸主機作業系統,並希望每個代理或工作階段擁有獨立、可丟棄或可重新連接的沙箱時使用。
- 執行需求
- 以 uvx 或 pip 執行的本機程序,需要 Python 3.13+。預設 Docker 後端需要 Docker 或 Podman。Fly、Modal、E2B 後端需要對應帳號與憑證(例如 FLY_API_TOKEN 或 FLY_TOKEN、E2B_API_KEY、Modal 權杖)。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 MCP Sandbox Computer VM for AI,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
MCP Sandbox Computer VM for AI
Named, manageable Linux computers for AI agents — via MCP
MCP Sandbox Computer VM for AI is a lifecycle-focused fork of Kilntainers. It gives agents isolated Linux computers, stable IDs, temporary or persistent lifecycles, an interactive MCP App dashboard, and first-class Docker and Fly Machines backends.
- 🖥️ MCP App dashboard: List computers, run commands, restart, factory reset, and delete from FLUJO or another stable MCP Apps host.
- 🏷️ Named computers: Reconnect with a stable
computer_id, or omit it to receive a readable random slug. - 💾 Explicit lifecycle: Temporary computers are removed with their MCP session; permanent computers survive and can be reattached later.
- 🧰 Multiple backends: Docker/Podman, native Fly Machines, Modal, E2B, and WebAssembly.
- 🏝️ Isolated per agent: Every agent gets its own dedicated sandbox — no shared state, no cross-contamination.
- 🔒 Secure by design: The agent communicates with the sandbox over MCP — it doesn’t run inside it. No agent API keys, code, or prompts are exposed to the sandbox.
- 🔌 Tool and UI access:
terminal_executestays simple, while optional provider-neutral lifecycle tools power both models and the dashboard. - 📈 Scalable: Scale from a few agents on your laptop to thousands running in parallel in the cloud.
Why sandbox computers?
Agents are already excellent at using terminals and can save thousands of tokens with common Linux utilities like grep, find, jq, and awk. Giving an agent access to the host OS is dangerous, while provisioning large numbers of isolated environments is operationally painful. MCP Sandbox Computer VM for AI gives every agent a dedicated sandbox with an explicit lifecycle.
Quick Start
Run the released package directly from PyPI. Docker and stdio are the defaults:
Add it to Claude Code:
Or add it to a JSON-based MCP client such as Claude Desktop:
By default, the server exposes only terminal_execute. Set ENABLE_LIFECYCLE_TOOLS=true before starting the server to expose the computer_* tools and MCP App dashboard. For a JSON-based stdio client, add it to the server configuration:
Then call computer_dashboard to open the App. The dashboard has no external browser dependencies. Its internal resource URI remains ui://kilntainers/computers for compatibility with the upstream implementation.
Named computer lifecycle
terminal_execute accepts two additional optional inputs:
computer_id: a 1–63 character lowercase slug. The first call without one creates a readable random ID and reuses it as that MCP session's default.temporary: defaults totrue. Temporary computers are removed when the owning MCP session closes. Set it tofalsefor a computer that survives server/session shutdown and can be reattached later by ID.
Every execution result includes computer_id and temporary next to stdout, stderr, exit code, and duration:
Lifecycle tools are provider-neutral and are disabled unless ENABLE_LIFECYCLE_TOOLS=true:
How It Works
- An MCP client starts MCP Sandbox Computer VM for AI over stdio or connects over HTTP
- On the first
terminal_executecall, the server creates a named isolated computer. Each connection gets its own random default unless it explicitly attaches by ID. - Commands run inside the sandbox; stdout, stderr, and exit code are returned
- When the session ends, temporary computers are destroyed; permanent computers remain provider-side.
Security: The agent communicates with the sandbox over MCP — it doesn't run inside it. This is intentional: agents often need secrets (API keys, system prompts, code), and those should never be exposed inside a sandbox where a prompt injection could exfiltrate them.
Agent Isolation & Sandbox Lifecycle: An omitted ID gives each MCP connection an isolated default computer. Explicit IDs make reconnection intentional. Docker labels and Fly Machine metadata make permanent computers discoverable after the MCP server itself restarts.
Backend Examples
See the CLI Reference for all arguments.
Docker and Podman (default)
Local containers via Docker or Podman. Any OCI image works.
Docker Compose HTTP server
The included image contains the Docker CLI and talks to the host daemon through its socket:
Set ENABLE_LIFECYCLE_TOOLS=true in the Compose service environment when you want the optional dashboard and computer_* tools.
compose.yaml binds only to loopback. For a remote listener, set KILNTAINERS_AUTH_TOKEN and send it as an Authorization: Bearer … header. Mounting the Docker socket grants the service control of the host Docker daemon; use a dedicated host or a restricted remote daemon in production.
Fly Machines
Fly.io deploys OCI images as VM root filesystems. The fly backend provisions real Fly Machines through flyctl: temporary Machines use disposable root filesystems, while permanent Machines use persist_rootfs=always.
The normal setup is local stdio MCP with remote Fly Machines. There are no required app, region, CPU, or memory choices:
On first use the backend:
- uses an existing
flyorflyctl, or downloads the current official release to~/.fly/bin(setAUTO_INSTALL_FLYCTL=falseto opt out); - uses your cached
fly auth loginsession,FLY_API_TOKEN, orFLY_TOKEN; - chooses the
personalorganization when available, otherwise the first organization on the account; - creates a generated Fly App once and remembers it in
~/.mcp-sandbox-computer-vm-for-ai/fly.json; - lets Fly choose the region and uses one shared CPU with 512 MB by default.
Authentication is the only unavoidable account step. On a genuinely fresh machine, start the MCP once so it installs flyctl, then run the exact flyctl auth login command shown by its error and restart the MCP client. CI can set FLY_API_TOKEN instead. FLY_ORG, FLY_APP_NAME, FLY_REGION, and the --fly-* flags remain optional overrides.
This repository's .mcp.json is ready for Fly mode and runs the local checkout with lifecycle tools enabled. For a client outside the checkout, use this equivalent configuration:
The first terminal_execute call creates a temporary Machine. To keep its root filesystem, pass a stable computer_id and temporary=false (or create a permanent computer in the dashboard).
Hosted MCP controller (advanced)
The included fly.toml can still host the MCP HTTP controller itself. This requires an app-scoped deploy token inside that controller because a Fly Machine cannot use your laptop's cached login:
The remote MCP endpoint is https://mcp-sandbox-computer-vm-for-ai.fly.dev/mcp; send KILNTAINERS_AUTH_TOKEN as a bearer token. The checked-in controller config uses gru, but local stdio mode does not choose a region unless you explicitly set one.
Cloud Containers & VMs
Modal.com
Hosted containers with sub-second startup via Modal.com. Scales to thousands of parallel sandboxes. Supports GPUs.
Authenticate via modal setup CLI or --modal-token-id / --modal-token-secret flags.
E2B
Cloud hosted micro-VM sandboxes from E2B.
Authenticate with --e2b-api-key CLI arg, or E2B_API_KEY environment variable.
WASM Go BusyBox (Experimental)
Runs go-busybox in a WebAssembly sandbox. Not a full Linux environment, but provides common utilities (grep, awk, sed, ls, wc, sort, etc.) in a very lightweight and secure sandbox.
WASM Runner
Run a custom WASM module as the sandbox backend. Provides agents a set tools compiled to WebAssembly, and an isolated filesystem.
Installation
Requires Python 3.13+. Docker backend requires Docker or Podman. The Modal and E2B backends require accounts to those services.
Releasing
Node is used only as the cross-platform release task runner; the published package remains Python. The release command synchronizes all package and registry metadata.
PyPI publication uses Trusted Publishing, so no PyPI token is stored locally or in GitHub. Configure the PyPI publisher once with owner flujo-app, repository mcp-sandbox-computer-vm-for-ai, workflow release.yml, and environment pypi. The release command pushes the version commit and tag, dispatches .github/workflows/release.yml, and waits for PyPI and the GitHub Release.
After the PyPI version is visible, validate and publish its immutable metadata to the official MCP Registry:
The registry command verifies the published PyPI README ownership marker before authenticating. mcp:validate and mcp:publish are retained as aliases matching the sibling MCP App repositories.
CLI Reference
來源:README.md,提交 43023aa
工具
0版本歷史
1- v0.2.3最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分