Skip to main content
Glama
CyberKnightLabs

vmware-knight

list_drs_rules

Read-onlyIdempotent

List DRS rules for a vSphere cluster: VM-VM affinity/anti-affinity and VM-Host rules with type, status, and members. Verify current rules before creating, deleting, or toggling DRS rule settings.

Instructions

[READ] List a cluster's DRS rules: VM-VM affinity/anti-affinity and VM-Host.

Per rule: key, name, type (affinity / antiAffinity / vmHost), enabled, mandatory, and the member VM names (VM-VM) or group names (VM-Host). The verify pair for create/delete/set_drs_rule_enabled.

Returns: Dict with cluster, count, and rules sorted by name. Errors return a dict with "error" + hint.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
targetNovCenter target name from config.yaml; omit to use the default target.
clusterYesExact cluster name.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.12.10

TDQS

A4.7/5.0
Behavior5/5

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

The [READ] prefix and the return-value contract (a dict with cluster, count, and rules sorted by name; errors as dict with error + hint) add meaningful behavior beyond the readOnlyHint and idempotentHint annotations. It also discloses per-rule fields, giving an agent a concrete expectation of what will be returned.

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?

The description is compact and front-loaded with the primary action, then follows with per-rule details, usage context, and return format. Every sentence earns its place with no filler or repetition.

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?

Even without an output schema, the description explains the return structure and error format, and the input side is fully covered by the schema. The tool's purpose, scope, and edge-case behavior are all described, leaving no critical gap for an agent to call it 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?

The input schema already covers both parameters (target and cluster) with descriptions and 100% coverage, so the description adds no parameter-specific meaning beyond what's structured. The mention of 'cluster' in the description is redundant with the schema's 'Exact cluster name.'

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 'List a cluster's DRS rules' and enumerates the exact rule types (VM-VM affinity/anti-affinity and VM-Host), giving a specific verb and resource. It also distinguishes itself from sibling mutation tools by explicitly stating it is the verify pair for create/delete/set_drs_rule_enabled.

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 states 'The verify pair for create/delete/set_drs_rule_enabled,' explicitly placing the tool as the read-back verification after those mutations. This is a clear, actionable guideline for when an agent should invoke it, and it distinguishes it from the three mutation siblings.

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