Skip to main content
Glama
vmware-skills

vmware-vdi

machine_list

Read-onlyIdempotent

List Horizon desktop machines with optional pool and state filters. Paginate results to check machine status, assigned users, and agent versions for troubleshooting or verifying targets before write operations.

Instructions

[READ] List Horizon desktop machines, filtered by pool id / state. Paginated.

Each item: id, name, pool_id, state (AVAILABLE/CONNECTED/AGENT_UNREACHABLE/PROVISIONING/ ERROR/MAINTENANCE/…), assigned user, agent_version, base_image. Verify pair for the machine write tools.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
poolNoFilter to one desktop-pool id.
limitNoPage size (default 50).
stateNoFilter by machine state (e.g. AGENT_UNREACHABLE, ERROR).
offsetNoPage offset.
targetNoHorizon target from config.yaml; omit to use the default.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv1.1.1
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / limit / description
      Added value: +"Page size (default 50)."
    • addedInput schema / properties / offset / description
      Added value: +"Page offset."
    • addedInput schema / properties / pool / description
      Added value: +"Filter to one desktop-pool id."
    • addedInput schema / properties / state / description
      Added value: +"Filter by machine state (e.g. AGENT_UNREACHABLE, ERROR)."
    • addedInput schema / properties / target / description
      Added value: +"Horizon target from config.yaml; omit to use the default."
  2. First observedv1.0.1

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description adds value beyond that by mentioning pagination, the output fields (id, name, pool_id, state, etc.), and the filter behavior. It reinforces the read-only nature with '[READ]' and clarifies the state enumeration, which helps set expectations without contradicting any 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?

The description is concise and front-loaded with the key purpose and read-only marker. It then lists the returned fields and a usage hint in a second paragraph, with no fluff. Every sentence adds value, and the structure aids quick scanning.

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 list operation with all optional parameters and no output schema, the description covers the essential aspects: what it lists, filters, pagination, output fields, and a usage context. The schema covers parameter details, so the description is complete for an agent to call the tool 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 schema provides 100% coverage with descriptions for all five parameters, so the description does not need to add much. It does confirm that filtering is by pool and state, which matches the schema, but does not introduce new semantic detail beyond what the parameter descriptions already offer. A baseline of 3 is appropriate.

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 states a clear verb ('List') and resource ('Horizon desktop machines'), specifies filters (pool id/state), and notes pagination. It distinguishes itself from sibling machine_get (single item) and write tools by explicitly labeling as a read operation with '[READ]' and the verification hint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives contextual guidance by noting 'Verify pair for the machine write tools', implying use before writes. However, it does not explicitly compare to machine_get or other list tools (e.g., pool_list), leaving some when-to-use/alternative distinctions to inference. Still, the purpose is clear enough for an agent to select it appropriately.

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