Skip to main content
Glama

backup_storage_ranking

Rank protected objects by backup storage consumed, largest first, to identify which machines cost the most to protect. Handles owner attribution and scoping by backup or repository.

Instructions

[READ] Protected objects ranked by backup storage consumed, largest first.

Answers "which machines are the most expensive to protect". Each backup file is charged to its single owner and one machine is merged across backups (vCenter path / moref, agent BIOS UUID), each row carrying an explicit rank. Shared and unattributable files are totals, never charged to anyone, split into ownerlessStoredBytes (per-job chain files naming no owner — ordinary, often large) and unmatchedOwnerStoredBytes (a file naming an owner its own backup does not list and the server cannot resolve). An owner id missing from its backup's listing is looked up once through /backupObjects/{id}; when found (a machine moved to another job) its bytes are charged and also counted in recoveredOwnerStoredBytes, and unmatchedOwners says how each id resolved (largest ids first; at most 50 entries, unmatchedOwnersTotal and unmatchedOwnersTruncated say when there are more). Judge whether these numbers can be billed on unmatchedOwnerFiles being 0, never on the unresolved* sum. A complete scan of a large estate is slow (a 123-backup VBR 13.1 estate took 21 minutes): scope it with backups or repository when the question is about part of the estate. scoped true or backupsTruncated true means the ranking covers only the selection or the scanned subset and must not be reported as an estate-wide ranking. An entry in unreadableBackups with timedOut true is fixed by raising the target's timeout in config.yaml, not by retrying. Needs VBR 12.3+.

Args: limit: Rows to return, 1-500 (default 20). max_backups: Backups to scan within the scope, 1-1000 (default 100); raise for full coverage. backups: Only these backups, by id or name (a backup is named after its job; see backup_list). Omit for all. repository: Only backups stored in this repository, by id or name. concurrency: Backups read in parallel, 1-8 (default 1, sequential). Unmeasured on a real VBR: parallel reads load the same server and can push reads past the timeout; lower it if backups time out. target: Veeam target name from config; omit to use the default.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
targetNo
backupsNo
repositoryNo
concurrencyNo
max_backupsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.16.1
    • addedInput schema / properties / backups
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Backups"
      +}
    • addedInput schema / properties / concurrency
      Added value: +{
      +  "default": 1,
      +  "title": "Concurrency",
      +  "type": "integer"
      +}
    • addedInput schema / properties / repository
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Repository"
      +}
  2. Addedv0.13.1

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries full responsibility and thoroughly discloses behavior: charging rules, merging across backups, owner resolution, slow scans, scoped/truncated semantics, unreadable-backup timeout handling, and VBR version requirements. This goes well beyond a minimal description and gives an agent the operational context needed to trust the result.

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?

The description is long, but the content density is high and every major section earns its place given the absence of an output schema. It is front-loaded with purpose, then behavior, then parameters, and the Args block is well organized. A slightly tighter structure would earn a 5, but it remains appropriately sized for the tool's complexity.

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?

The description covers purpose, usage, scoping, output semantics, edge cases, performance expectations, and parameter details. Since there is no output schema and no annotations, this level of completeness is necessary and sufficient for correct selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, but the Args section documents all six parameters with ranges, defaults, meanings, and even a concurrency warning. This fully compensates for the bare schema.

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: protected objects ranked by backup storage consumed, largest first. It also states the exact question it answers ('which machines are the most expensive to protect'), which clearly distinguishes it from siblings like backup_list or repository_state.

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 clear context for when to use the tool and provides scoping guidance for partial-estate questions. It does not explicitly name alternative tools or state when not to use it, but the context is specific and actionable.

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