Skip to main content
Glama

list_metric_keys

Read-onlyIdempotent

Look up valid metric keys for a specific resource or resource kind before querying metrics, preventing errors from guessed keys. Supports pagination and filtering.

Instructions

[READ] Look up metric keys before get_resource_metrics or get_top_consumers; do not guess (cpu|demand_average does not exist on VMs).

resource_id: keys that resource reports, with name/unit from its kind; definition is found, found_by_instance, not_defined_for_kind (see unjoined_keys) or not_read (definitions_status undetermined: name/unit unknown, not absent). resource_kind: keys the kind defines, not all collected.

Paginated envelope with next_offset: pass it back as offset until null. An unreadable key list is an error, never empty.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoPage size, 1-500 (default 100).
offsetNoRows to skip; the previous next_offset.
targetNoAria target name from config; default when omitted.
key_filterNoCase-insensitive substring of key or name, e.g. "mem|".
resource_idNoResource UUID (from list_resources). This or resource_kind, not both.
adapter_kindNoAdapter kind for resource_kind. Default VMWARE.VMWARE
resource_kindNoKind key, e.g. VirtualMachine, HostSystem, Datastore.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.15.0

TDQS

A4.8/5.0
Behavior5/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, but the description adds meaningful behavior beyond that: per-resource vs per-kind key semantics, possible definition statuses (found, found_by_instance, not_defined_for_kind, not_read), pagination envelope behavior, and the non-obvious rule that an unreadable key list is an error, never empty. No contradiction with annotations.

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 dense but every sentence earns its place: lookup purpose, per-mode semantics, pagination, and error behavior. It is front-loaded with the most important instruction and uses clear paragraph breaks to separate modes and operational details without padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does a strong job of explaining return semantics (statuses, units, pagination envelope) and failure behavior. The only small gap is the unexplained 'see unjoined_keys' referenceressing without an output schema or sibling tool with that name, leaving a minor ambiguity for an agent.

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?

Schema coverage is 100%, so the baseline is 3 degrees, but the description adds real value for resource_id and resource_kind by explaining what their results mean ('keys that resource reports' vs 'keys the kind defines') and the definition statuses. Other parameters like target, key_filter, and adapter_kind are already well-described in the schema and need no extra explanation.

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: 'Look up metric keys before get_resource_metrics or get_top_consumers.' It also clarifies the scope with a concrete example of what not to guess ('cpu|demand_average does not exist on VMs'), making the tool's purpose and boundary unambiguous.

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 tells the agent when to use this tool: before calling get_resource_metrics or get_top_consumers, and never to guess keys. It also distinguishes the two usage modes, resource_id and resource_kind, and gives pagination instructions ('pass it back as offset until null'), which is direct actionable guidance.

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