Skip to main content
Glama

Start HTB Machine

htb_machine_start

Start or spawn a Hack The Box machine by ID or name, retrying full spawn capacity and waiting for its IP. Handles active-machine conflicts so agents can launch labs.

Instructions

Start (spawn) a machine by id or name. mode 'auto' (default) tries play then falls back to spawn. With wait=true (default) the CLI retries while spawn capacity is full, then waits for the IP — this can take several minutes at peak times; the response contains {id, name, ip, spawn}. Only one machine can be active at a time: a conflict error names the blocker, stop it (with the user's consent) and retry.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoStart mode (default auto: play, then spawn)
waitNoRetry a full spawn server and wait for the machine IP (default true)
targetYesMachine id or name to start
intervalNoSeconds between retries/polls (default 15)
retryForNoSeconds to keep retrying a full spawn server (default 600)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only cover the read/write/open-world profile; the description adds the operational traits that matter: retries while spawn capacity is full, potentially several minutes of latency at peak times, the response shape {id, name, ip, spawn}, and the single-active-machine conflict constraint with a consent requirement before stopping the blocker.

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

Conciseness4/5

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

Four sentences, front-loaded with the action and default mode, then the latency/retry caveat, then the response shape, then the conflict constraint. Dense and mostly waste-free, though the mode restatement overlaps with the schema.

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

Completeness5/5

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

No output schema exists, and the description supplies the return shape ({id, name, ip, spawn}) along with the retry/latency behavior an agent needs to set expectations. Combined with the annotations, an agent has everything needed to call this correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so mode, wait, interval, and retryFor defaults are already documented in the schema. The description restates the auto and wait semantics but adds no format or edge-case detail beyond them (e.g. it never mentions interval/retryFor), so the baseline 3 applies.

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 specific verb and resource ('Start (spawn) a machine by id or name') and immediately distinguishes the spawn/play modes, which separates it cleanly from siblings like htb_machine_stop, htb_machine_reset, and htb_machine_extend. An agent can identify the tool's action without opening the schema.

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

Usage Guidelines5/5

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

Explicitly explains the mode default ('auto' tries play then falls back to spawn) and the wait behavior, plus the concrete conflict path: only one machine active, a conflict error names the blocker, stop it with user consent and retry. This is genuine when-to-use and what-to-do-next guidance rather than a restatement of the name.

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