Skip to main content
Glama
vmware-skills

vmware-vdi

push_desktop_pool_image

Destructive

Apply a pending image to an instant-clone pool, recreating every desktop. Preview affected desktops and sessions before confirming the change.

Instructions

[WRITE] Apply the pending image to an instant-clone pool — RECREATES EVERY DESKTOP in it.

Highest blast radius in the family: the preview states affected-desktop and in-session counts before you confirm, plus blast_radius.occupancy — "determined" when those counts can be believed, "unknown" when sessions exist that cannot be attributed to any pool or farm. confirm=True schedules the apply. 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. 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 schedules the push.
pool_idYesThe pool id (from list_desktop_pools).
logoff_policyNoWAIT_FOR_LOGOFF (default) or FORCE_LOGOFF.WAIT_FOR_LOGOFF
stop_on_errorNoHalt the rolling push on the first machine error (default True).
acknowledge_unknown_occupancyNoOnly consulted when the preview reports blast_radius.occupancy == "unknown", where in_session_count is a lower bound rather than a count and confirm=True is refused. Setting it True pushes on an unverified occupancy — check list_vdi_sessions first; the acknowledgement is recorded in the audit row. Ignored when occupancy is "determined".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.4.1

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and non-idempotency, but the description adds substantial behavioral detail the annotations cannot: the preview-before-confirm flow, what blast_radius.occupancy 'determined' vs 'unknown' means, that confirm=True is refused under unknown occupancy, and that actions are audited. This is genuinely additive, though it does not detail rollout timing or partial-failure recovery beyond stop_on_error.

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-loaded with the highest-blast-radius fact, and each sentence carries weight (scope, occupancy semantics, the confirm warning, audit). Slightly dense and parenthetical-heavy, but nothing is filler.

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?

For a high-risk write tool with no output schema, the description explains what the preview returns (affected-desktop and in-session counts, blast_radius.occupancy), the confirm gate, and the audit trail—enough for an agent to call it safely without guessing at return shape.

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, but the description adds cross-parameter semantics the schema states only in isolation: the confirm/acknowledge_unknown_occupancy interaction and the consequence of pushing on unverified occupancy. Marginal but real added value.

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?

Opens with a specific verb+resource (apply the pending image to an instant-clone pool) and immediately quantifies the scope with 'RECREATES EVERY DESKTOP in it.' The [WRITE] tag and destructive scope distinguish it from the read/list siblings such as get_desktop_pool or list_vdi_images.

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?

Gives explicit when/when-not guidance: show blast_radius to the user and wait, do not set confirm=True autonomously even if previously requested, and check list_vdi_sessions first before acknowledging unknown occupancy. These are actionable selection and sequencing rules, not vague context.

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