Skip to main content
Glama

golden_adopt

Record an existing VirtualBox VM as a golden image for env_fork, updating credentials on re-run. Supports adding SSH user, password, or key later without modifying the VM.

Instructions

Record a VirtualBox VM that already exists on this machine as a golden image env_fork can use. The VM itself is not modified unless take_snapshot is set. Re-running it updates the record, which is how credentials are added later: adopt a machine with no user or password, fork it, read its login prompt with env_screenshot, try a guess with env_type, then adopt again with what worked. Records nothing about the guest that was not observed - never invent a user or password here.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
vmYesname of the existing VirtualBox VM, as shown by env_list or terrarium ls
keyNopath to an SSH private key for the guest, if there is one
userNoSSH user inside the guest, if it is known
imageNogolden image name to record it under (default: the VM name)
shellNowhat an SSH session lands in: posix, cmd or powershell; Windows guests are probed on first exec when unset
passwordNoSSH password inside the guest, if it is known
snapshotNosnapshot to fork from (default terrarium-base)
transportNohow to reach the guest: ssh (default), or guestcontrol for a Windows with no SSH server, which talks through VirtualBox Guest Additions and needs user and password
take_snapshotNocreate the snapshot if the VM does not have it yet; this modifies the user's VM

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
logNo
goldenYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.2

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral transparency burden. It explicitly discloses that the VM is not modified unless take_snapshot is set, that re-running updates the existing record, and that nothing unobserved is recorded ('never invent a user or password'). These are meaningful disclosures beyond schema fields.

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?

Three sentences with no wasted words: the first gives purpose, the second gives side-effect scope, and the third gives an actionable workflow. The dense workflow sentence earns its place because it explains a non-obvious multi-step usage pattern.

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 9-parameter tool with no annotations, the description covers the non-obvious behavioral traits, the credential-adding workflow, and the honesty constraint. Parameter details are already in the schema, and an output schema exists. A minor gap is not explicitly contrasting with golden_import, but 'already exists on this machine' largely covers that.

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?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining how user and password are intentionally optional and later populated through a second adoption after observing the guest, and by tying take_snapshot to the only modifying behavior. This goes slightly beyond the schema's per-parameter descriptions.

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?

States a concrete verb ('Record'), a specific resource ('a VirtualBox VM that already exists on this machine'), and the purpose ('as a golden image env_fork can use'). The phrase 'already exists on this machine' clearly distinguishes it from golden_import or other image-creation tools.

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?

Provides a clear workflow: adopt without credentials, fork, observe via env_screenshot, guess via env_type, and re-adopt with working credentials. It also says re-running updates the record. It does not explicitly name golden_import as the alternative, but the 'already exists' qualifier gives enough routing context.

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