Skip to main content
Glama

tenki_create_sandbox

Create a persistent microVM sandbox in seconds, optionally from a snapshot or template image, and get a session ID for executing code, managing files, and running git commands.

Instructions

Create a persistent sandbox microVM, optionally from a snapshot or template image. Returns the session (id, state) and its data-plane endpoint. Boots in ~2s. Use tenki_exec / tenki_read_file / tenki_write_file against the returned session_id.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
envNoEnvironment variables as a key→value object.
nameNoHuman-readable name.
tagsNoTags for later filtering.
imageNoBoot from a template image, passed as a reference STRING: the imageDigestRef of a READY build from tenki_build_template / tenki_get_template_build (e.g. 'ws/name@sha256:...'), or 'workspace/name' for its latest version.
cpu_coresNovCPUs (default 2).
memory_mbNoMemory in MB (default 4096).
wait_readyNoPoll until the sandbox is RUNNING before returning (default true).
snapshot_idNoBoot from a snapshot.
disk_size_gbNoDisk in GB (default 5).
workspace_idNoWorkspace to create in (defaults to the key's first workspace).
allow_inboundNoAllow inbound networking (off by default).
allow_outboundNoAllow outbound networking (off by default).
clone_repo_urlNoGit URL to clone into the sandbox on boot.
idle_timeout_minutesNoReap after N idle minutes.
max_duration_secondsNoHard lifetime cap in seconds.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide generic readOnly/destructive/idempotent hints (all false), so the description carries most of the behavioral disclosure burden. It adds materially useful behavior: the sandbox is persistent, boots in ~2 seconds, optionally polls until RUNNING (tie to wait_ready), and exposes a data-plane endpoint plus session_id for follow-up. It does not fully document cost/implications of persistent resources or failure behavior, but it does disclose key runtime behavior beyond what annotations state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact: three sentences, with the core action and persistence front-loaded, followed by a concrete downstream usage pointer. Every sentence adds value: what it is, what is returned, and how to use the result. No filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter, 0-required tool with no output schema, the description compensates well by naming the returned fields (session id, state, endpoint), the boot behavior, and the next-step functions. It could be slightly stronger by noting higher-level lifecycle implications (e.g., persistent resources run until terminated or idle-reaped) or how idle_timeout and max_duration_seconds govern lifetime. Given the schema covers all parameters and sibling tools cover lifecycle/cleanup, the description is functionally complete for selecting and invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of the parameters, so the baseline is high, and the description's pointers to tenki_exec / tenki_read_file / tenki_write_file reinforce the central return-value semantics. The description adds the notion of persistence, boot time, and the returned session/endpoint, which helps interpret parameters like wait_ready, image, snapshot_id, and idle_timeout. It does not rehash every parameter, but with complete schema coverage that is not necessary.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Create a persistent sandbox microVM'), the optional source ('from a snapshot or template image'), and the primary outputs (session id/state, data-plane endpoint). It also clearly differentiates this from the many sibling tools by naming the session-based interaction tools (tenki_exec, tenki_read_file, tenki_write_file) that operate on the returned session_id. This distinguishes it from other create/update/terminate operations while covering the main resource and verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete usage context: persistence, ~2s boot, and how to interact with the returned session_id using named sibling tools. It implicitly explains when to use this tool (when a persistent sandbox is needed) versus alternatives like snapshots, templates, volumes, or one-off code execution, though it does not explicitly enumerate exclusions or provide conditional routing to alternatives beyond the exec/read/write trio. The guidance is strong but could be clearer about when tenki_run_code or tenki_create_snapshot would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools