Skip to main content
Glama

backup_drill

Destructive

Boot a backup in an isolated Docker container on its own port to verify the archive is not corrupt and the app starts and responds, then removes everything it created.

Instructions

Verify a backup by booting an app in an isolated Docker environment and checking that it responds. A second copy runs beside the live one on a network and port of its own, and everything it made is removed either way. A pass means the archive is not corrupt and the app starts on it, not that every row is there

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "backup_drill"
  }
}

Input Schema

NameRequiredDescriptionDefault
allNoDrill all supported apps in the backup
appNoApp/service to drill (required unless all=true)
serverNoRemote server name from config (optional, runs locally if omitted)
archiveNoSpecific backup archive to verify (optional)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.18.1

TDQS

A4.2/5.0
Behavior5/5

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

The description adds substantial behavioral context beyond the destructiveHint annotation: the drill runs a second copy beside the live app on its own network and port, and everything it creates is removed either way. It also clarifies that a pass means the archive is not corrupt and the app starts, not that every row is present. This makes the destructive annotation understandable and bounded.

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 three front-loaded sentences with no wasted text. It first states the action, then explains the isolated execution model, then defines what a pass means. Each sentence earns its place by adding operational or interpretive value.

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 the burden of explaining the result, and it does so by defining what a pass means and what it does not mean. It also explains cleanup and isolation, which are key behavioral facts for this tool. It could go slightly further by describing failure output or confirming whether the live app is entirely untouched, but the definition is largely complete.

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%, so the input schema already documents all four parameters, including the all/app relationship and the optional server and archive fields. The description does not add syntax or format details beyond what the schema provides. A baseline 3 is appropriate because the schema carries the parameter semantics.

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 specific verb and resource: verify a backup by booting an app in an isolated Docker environment and checking that it responds. It clearly distinguishes this from backup_restore by framing the operation as a drill in a separate copy rather than a live restore. The added pass semantics further sharpen what the tool actually verifies.

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

Usage Guidelines3/5

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

The description implies when to use the tool: to verify that a backup archive is not corrupt and that an app can start on it. However, it does not explicitly compare it with siblings such as backup_restore or backup_list, nor does it state when not to use it. The usage is inferable but not fully guided.

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