Skip to main content
Glama

docker_containers

Destructive

Manage Docker containers: list, inspect, view logs and stats, and start, stop, restart, remove, or prune with approval for state changes.

Instructions

Containers. list, get, logs and stats are read-only. start, stop, restart, remove and prune change state and need the person's approval (or HOMELAB_DOCKER_ALLOW_WRITES=true). remove deletes a container permanently. prune removes ALL stopped containers. container is a name or id (not needed for list or prune).

Input Schema

NameRequiredDescriptionDefault
allNo
tailNo
limitNo
sinceNo
actionNolist
offsetNo
dry_runNo
timeoutNo
containerNo

Output Schema

NameRequiredDescriptionDefault
logsNo
itemsNo
statsNo
totalNo
changeNo
detailNo
has_moreNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.0.0

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already flag readOnlyHint=false and destructiveHint=true, and the description reinforces this consistently rather than contradicting it. It adds genuinely useful context beyond the annotations: the approval gate, that remove is permanent, and that prune wipes ALL stopped containers. It omits any mention of the dry_run escape hatch, which would have closed the loop.

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?

Compact and front-loaded: the read-only vs mutating split comes before the destructive specifics. The telegraphic sentence fragments are efficient but slightly hurt readability, and one or two sentences on the undocumented parameters could have been added without bloat.

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

Completeness3/5

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

An output schema exists, so return values need no explanation, and the mutation/destruction story is well covered. However, for a 9-parameter multi-action tool with no schema descriptions, the missing parameter applicability (which params belong to which action, and what dry_run does) leaves the definition incomplete for correct invocation.

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

Parameters2/5

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

Schema description coverage is 0% across 9 parameters, so the description carries the full burden and covers only 'container' plus the action enum. Nothing explains all, tail, limit, since, offset, timeout, or dry_run — an agent cannot infer that tail/since apply to logs and limit/offset to list.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a bare fragment ('Containers.') but immediately enumerates all nine actions, so the resource and operation set become unambiguous. It is distinguishable from docker_images and docker_inventory by the container-specific action list, though it never names those siblings explicitly.

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?

Clearly separates the read-only actions (list, get, logs, stats) from state-changing ones (start, stop, restart, remove, prune) and states the precondition (human approval or HOMELAB_DOCKER_ALLOW_WRITES=true). It also notes 'container' is not needed for list or prune, but gives no guidance on when to reach for docker_images/inventory instead.

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