Skip to main content
Glama
vmware-skills

vmware-vdi

reset_vdi_machine

Destructive

Hard-reset VDI desktops only after previewing the blast radius, then confirm to clear stuck machines; unconfirmed calls report affected users and states without changing anything.

Instructions

[WRITE] Hard-reset desktop machine(s) — the user loses unsaved state.

A bare call returns blast_radius (machine ids, names, states, assigned users) and resets nothing; confirm=True resets. A machine whose state cannot be read is refused. Show blast_radius to the user and wait for their decision. Do not set confirm=True on your own because the user asked for this earlier: they have not seen the blast radius yet. For a graceful in-guest reboot use vmware-aiops (the vCenter VM). Audited.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
targetNoHorizon target from config.yaml; omit to use the default.
confirmNoFalse (default) returns the blast radius and changes nothing. True resets.
machine_idsYesMachine ids to reset (from list_vdi_machines).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.4.1

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, but the description goes well beyond them: it discloses that users lose unsaved state, that machines whose state cannot be read are refused, that the operation is audited, and that there is a mandatory human-in-the-loop confirmation gate. This is exactly the extra context annotations cannot carry.

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 write marker and the destructive consequence, then the confirmation protocol, then the alternative. Dense but every sentence carries weight; the instruction about the user's earlier request is slightly wordy but is a genuinely necessary guardrail.

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 compensates by explaining what a bare call returns (blast_radius contents: machine ids, names, states, assigned users). Combined with the refusal rule, audit note, and alternative path, an agent has everything needed to invoke this safely.

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 the baseline is 3, and the description reinforces the semantics of confirm (bare call = dry run, True = reset) and machine_ids (sourced from list_vdi_machines). It adds little beyond the schema for target, but the confirm/blast_radius framing gives the parameters operational meaning rather than just types.

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 ('Hard-reset desktop machine(s)') and immediately marks it as a [WRITE] operation. It also distinguishes itself from the graceful in-guest reboot path (vmware-aiops), so an agent can separate it from siblings without opening any 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 describes the two-phase contract: a bare call returns blast_radius and resets nothing, confirm=True resets, and the agent must show blast_radius and wait for the user's decision. It even names the anti-pattern ('Do not set confirm=True on your own because the user asked for this earlier') and points to the alternative for a graceful reboot.

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