Skip to main content
Glama
DustinTrap

kvm-pilot

by DustinTrap

wake

Destructive

Powers on a remote host by sending a magic packet to its network interface. Specify MAC and broadcast address to start a machine without KVM access.

Instructions

Send a Wake-on-LAN magic packet to power the host on. POWER (soft).

Gated by the power effect gate + per-invocation approval (typed same-path denials, #234). mac defaults to the profile's mac; broadcast to its wol_broadcast. No KVM driver is contacted — WoL is a broadcast sent from the server's own host onto the target's L2 segment.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
macNoTarget NIC MAC (aa:bb:cc:dd:ee:ff). Defaults to the profile's mac.
countNoMagic packets to send (a few, spaced, survive loss).
confirmNoPer-invocation approval when the client cannot prompt a human: set true to approve this exact call under the operator's standing policy. Leave false when the client supports elicitation (a human is asked). Never pre-set it speculatively; a denial returns outcome=not_confirmed.
profileNoProfile name from ~/.config/kvm-pilot/config.toml selecting which KVM/BMC (and its managed host) this call targets. Omit to use the server's default (KVM_PILOT_PROFILE).
broadcastNoBroadcast address to send to. Defaults to the profile's wol_broadcast, else 255.255.255.255.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv1.0.0
    • addedInput schema / properties / broadcast / description
      Added value: +"Broadcast address to send to. Defaults to the profile's wol_broadcast, else 255.255.255.255."
    • addedInput schema / properties / confirm / description
      Added value: +"Per-invocation approval when the client cannot prompt a human: set true to approve this exact call under the operator's standing policy. Leave false when the client supports elicitation (a human is asked). Never pre-set it speculatively; a denial returns outcome=not_confirmed."
    • addedInput schema / properties / count / description
      Added value: +"Magic packets to send (a few, spaced, survive loss)."
    • addedInput schema / properties / count / minimum
      Added value: +1
    • addedInput schema / properties / mac / description
      Added value: +"Target NIC MAC (aa:bb:cc:dd:ee:ff). Defaults to the profile's mac."
    • addedInput schema / properties / profile / description
      Added value: +"Profile name from ~/.config/kvm-pilot/config.toml selecting which KVM/BMC (and its managed host) this call targets. Omit to use the server's default (KVM_PILOT_PROFILE)."
  2. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=false, so the safety profile is covered; the description adds genuinely new behavior: approval gating, the typed same-path denial mechanism, the not_confirmed outcome, and the fact that WoL is broadcast from the server's own host rather than through the KVM. It does not spell out side effects on an already-powered host, which is the remaining gap.

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?

Front-loads the action in the first sentence, then adds gating and defaults compactly with no padding. The parenthetical issue reference ('#234') and 'POWER (soft)' tag are internal shorthand that costs a little clarity without earning much for an external agent.

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 five-parameter, no-required-args action tool with no output schema, the description covers the mechanism, approval flow, one return value (outcome=not_confirmed), and defaults, which is enough to invoke it correctly. It stops short of describing the full result shape or what happens if the host is already on.

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 all five parameters including defaults are already fully documented in the schema. The description only restates the mac and broadcast defaults, adding no format, syntax, or constraint detail beyond what the schema provides — the correct baseline of 3.

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

Purpose4/5

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

States a specific verb and resource ('Send a Wake-on-LAN magic packet to power the host on') and adds the mechanism detail that no KVM driver is contacted, which separates it from the sibling `power` tool. The trailing 'POWER (soft)' tag is unexplained jargon and the sibling `power` is never named directly, so the differentiation is implied rather than explicit.

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

Usage Guidelines3/5

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

The description explains the gating context (power effect gate plus per-invocation approval) and gives real guidance on the `confirm` flag, including that denials return outcome=not_confirmed. However it never states when to choose `wake` over the sibling `power` or `power_state` tool, leaving the primary routing decision to inference.

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