Skip to main content
Glama
CyberKnightLabs

vmware-knight

add_host_vmk

Create a static-IP VMkernel adapter on a distributed portgroup. Preview validates host, portgroup, IP, netmask, MTU without changes; confirm creates it and returns the device name.

Instructions

[WRITE] Add a static-IP VMkernel adapter on a DVS portgroup - preview/confirm gated.

Deliberately minimal shape for throwaway test vmks on L2-only segments (e.g. a TEP VLAN): static IPv4, NO gateway, NO services enabled. The DVS port allocation is handled internally - pass the distributed portgroup name. confirm=False validates (host + portgroup exist, IP/netmask/MTU legal, IP not already on the host) and returns the exact spec without writing; confirm=True creates and returns the assigned device name. Verify with list_host_vmks; remove with remove_host_vmk. Audited.

Returns: Preview dict (action="preview") or result dict (action="created", device=e.g. "vmk2"). Errors return a dict with "error" + hint.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ipYesStatic IPv4 address for the vmk.
mtuNoMTU for the vmk (default 1500; 9000 for jumbo tests).
targetNovCenter target name from config.yaml; omit to use the default target.
confirmNoFalse (default) returns the blast radius and changes nothing. True creates it. Do not set True because the user asked earlier; they have not seen the preview yet.
netmaskYesSubnet mask (e.g. 255.255.255.0).
host_nameYesESXi host to add the vmk on.
portgroupYesDistributed portgroup name to connect to.

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?

Beyond the annotations, the description discloses the preview/confirm gate, exactly what confirm=False does (validates and returns spec without writing), what confirm=True does (creates and returns device name), and the error return format. It also notes the operation is audited. This is rich behavioral context that annotations alone do not provide.

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 front-loaded with the write marker and core purpose, followed by concise usage context, parameter behavior, and a returns section. There is no filler; every sentence adds operational insight. The structure makes it easy for an agent to parse the key facts quickly.

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 write tool with no output schema, the description fully covers what an agent needs: the operation, the safety gate, validation behavior, return shapes including errors, and pointers to verification and removal. It also names relevant sibling tools. The context is complete enough to call this tool correctly without additional lookup.

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?

With 100% schema coverage, baseline is 3. The description adds value by explaining the confirm parameter's two-phase behavior, clarifying that the DVS port allocation is handled internally so only the portgroup name is needed, and stating that no gateway or services are part of the intended shape. This meaningfully supplements the schema definitions.

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 specific verb and resource: 'Add a static-IP VMkernel adapter on a DVS portgroup'. It also highlights the unique preview/confirm gating and minimal shape, which clearly differentiates it from sibling tools like list_host_vmks, remove_host_vmk, and set_vmk_service. An agent can tell exactly what this tool does and how it differs without inspecting the schema.

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?

The description gives clear when-to-use context: 'Deliberately minimal shape for throwaway test vmks on L2-only segments' and states the constraints (static IPv4, no gateway, no services). It also directs verification and removal to list_host_vmks and remove_host_vmk. It lacks an explicit when-not-to-use alternative for more complex adapter configurations, but the minimal-shape framing implies the limitation.

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