Skip to main content
Glama
DustinTrap

kvm-pilot

by DustinTrap

firmware_check

Read-onlyIdempotent

Compare a device's reported firmware and update state against the bundled registry, then indicate whether the registry is behind. Read-only; no changes or reports are filed.

Instructions

Report the device's firmware currency vs the bundled registry (read-only).

The read half of file_firmware_report (#233): reconciles the device's reported firmware/update state against the registry SSoT and says whether the registry is behind — nothing is filed, no gate is consulted. When registry_behind is true, file_firmware_report contributes the report (gated external write).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
profileNoProfile name from ~/.config/kvm-pilot/config.toml selecting which KVM/BMC (and its managed host) this call targets. Omit to use the server's default (KVM_PILOT_PROFILE).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.0.0
    • addedInput schema / properties / profile / description
      Added value: +"Profile name from ~/.config/kvm-pilot/config.toml selecting which KVM/BMC (and its managed host) this call targets. Omit to use the server's default (KVM_PILOT_PROFILE)."
  2. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond the annotations: 'nothing is filed, no gate is consulted' and that the write path is gated externally. It does not discuss failure modes or how the registry comparison is performed, but the annotation bar is lower here.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded first line gives the essential purpose, and the follow-up explains the relationship to file_firmware_report. The internal reference '(#233)' and markdown backticks add minor noise that does not help an agent, but the text is otherwise tight.

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?

There is no output schema, so the description carries some return-value burden; it does name the key signal ('registry_behind') and what the report tells you. Combined with rich annotations and full schema coverage, this is nearly complete, missing only explicit return shape details.

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 description coverage is 100% for the single optional 'profile' parameter, and the schema already explains the config.toml selection and default. The description adds no parameter guidance, which is the expected baseline when the schema does the work.

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 first sentence states a specific verb and resource with scope: 'Report the device's firmware currency vs the bundled registry (read-only).' It explicitly distinguishes itself from the sibling file_firmware_report by describing itself as 'the read half' of that tool.

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 names the condition for escalation ('When registry_behind is true') and points to the alternative tool that performs the gated external write. The when/when-not split is explicit, so an agent can route without reading the sibling schema.

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