Skip to main content
Glama
CyberKnightLabs

vmware-knight

cluster_remove_host

Destructive

Preview the impact of removing a host from a vCenter cluster, then confirm to detach it while keeping it in inventory.

Instructions

[WRITE] Remove a host from a cluster (host must be in maintenance mode).

Without confirm=True this only previews: it returns blast_radius (host name and id, maintenance mode, VM count, powered-on VM count, blockers) and moves nothing. Show that to the user and get their explicit decision. Do not set confirm=True on your own because the user asked earlier: they have not seen the preview yet.

Refused: a host not in maintenance mode, a host with powered-on VMs, and a host whose state could not be read. Run cluster_info first for the exact member host names. The host is not deleted — it stays in vCenter inventory standalone; use cluster_add_host to move it back. Returns a dict.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
targetNoOptional vCenter target name from config.
confirmNoFalse (default) returns the blast radius and changes nothing. True applies it.
host_nameYesESXi host name to remove (from cluster_info output).
cluster_nameYesCluster to remove the host from.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.12.10

TDQS

A5/5.0
Behavior5/5

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

The description discloses preview-vs-apply behavior, refusal conditions, maintenance-mode requirement, powered-on VM blocking, and the fact that the host remains in vCenter inventory. This adds material context beyond the destructiveHint annotation.

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?

Every sentence earns its place, covering the preview flow, user-consent constraint, refusal cases, inventory behavior, and sibling reference. It is front-loaded with the [WRITE] tag and the safety-critical preview warning.

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 destructive, human-in-the-loop tool with no output schema, this description is complete: it identifies the returned dict, the blast_radius fields, the failure modes, and the prerequisite cluster_info call. An agent can invoke it safely and interpret the result.

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

Parameters5/5

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

The input schema already covers all parameters, but the description enriches them significantly: confirm=false means preview/return blast radius, confirm=true applies, and host_name should be the exact name from cluster_info output.

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?

The opening states a specific verb ('Remove'), resource ('host from a cluster'), and a hard precondition ('must be in maintenance mode'). It also distinguishes itself from cluster_delete by clarifying that the host is not deleted, and from cluster_add_host as a way to move it back.

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?

It explicitly instructs the agent to run cluster_info first for exact host names, to preview with confirm=False, to show the blast radius to the user, and not to set confirm=True on its own. It names cluster_add_host as the alternative for reversing the operation.

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