Skip to main content
Glama

vsan_health

Read-onlyIdempotent

Retrieve vSAN overall health, per-check-group status, and per-host disk-group layout for a cluster. Reports green, yellow, red, or unknown, and flags unread hosts when the health service is unavailable.

Instructions

[READ] Get vSAN overall health, per-check-group health, and per-host disk-group layout for a cluster.

Returns {cluster_name, vsan_enabled, overall_health, overall_health_description, health_queried, health_not_queried_reason, health_checked_at, test_groups: [{group_id, group_name, group_health}], host_count, hosts_read, hosts_not_read: [{host, reason}], disk_groups_complete, disk_groups: [{host, cache_disk, cache_size_gb, capacity_disks}]}. overall_health is what vSAN reports — green / yellow / red, and sometimes "unknown", which is vSAN's own answer. When the health service could not be asked at all, overall_health is null and health_queried is false with the reason: a null is "not measured", never a measurement. health_checked_at is the age of vCenter's cached summary (the same one Skyline Health shows); this tool reads the cache rather than triggering a full health run. Check disk_groups_complete before treating disk_groups as the cluster's inventory: vCenter cannot read a disconnected or notResponding host, and an empty disk_groups on such a cluster does NOT mean it has none — the unread hosts are named in hosts_not_read and in the message. If vSAN is not enabled, returns vsan_enabled=false with a message rather than an error. Use vsan_capacity for space usage instead. No side effects.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
targetNoOptional vCenter/ESXi target name from config.
cluster_nameYesCluster name exactly as shown in vCenter. Errors if the cluster is not found.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.8.15
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / cluster_name / description
      Added value: +"Cluster name exactly as shown in vCenter. Errors if the cluster is not found."
    • addedInput schema / properties / target / description
      Added value: +"Optional vCenter/ESXi target name from config."
  2. First observedv1.3.2

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint/idempotentHint annotations, the description explains that this reads vCenter's cached summary rather than triggering a full health run, and that null overall_health means 'not measured' rather than a measurement. It also discloses the incomplete disk_groups risk with disconnected hosts, which is important non-obvious behavior.

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?

Although the description is long, it is dense and structured: purpose first, then return shape, then edge-case semantics, then alternative tool routing. Every sentence contributes necessary context, especially given there is no output 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?

The description covers return fields, null semantics, cache behavior, partial data due to unreadable hosts, and the non-error path when vSAN is disabled. For a health-inspection tool with no output schema, this is fully sufficient for an agent to invoke and interpret results 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 coverage is 100%, so the input schema already documents cluster_name and target well. The description does not add much parameter-level detail, but the baseline of 3 is appropriate since the schema carries the parameter semantics fully.

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 description opens with a clear '[READ]' marker and names the specific resource: vSAN health per check-group and per-host disk-group layout for a cluster. It distinguishes itself from siblings by explicitly steering space-usage queries to vsan_capacity.

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 says to use vsan_capacity for space usage instead, which gives the agent a clear routing rule. It also clarifies how the tool behaves when vSAN is not enabled, so the agent knows it won't get an error in that case.

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