Skip to main content
Glama
crunchtools

mcp-podman-crunchtools

by crunchtools

mcp-podman-crunchtools

MCP server for Podman container management via the Podman REST API. Manages containers, images, pods, networks, volumes, and system info. Supports both rootful and rootless Podman.

Installation

# uvx (zero-install)
uvx mcp-podman-crunchtools

# pip
pip install mcp-podman-crunchtools

# Container
podman run -v /run/podman/podman.sock:/run/podman/podman.sock:z \
  --security-opt label=type:container_runtime_t \
  quay.io/crunchtools/mcp-podman

Related MCP server: Container Exec MCP Server

Configuration

Variable

Required

Default

Description

PODMAN_SOCKET

No

Auto-detect

Unix socket path

PODMAN_SOCKET_FILE

No

—

File containing socket path

PODMAN_TIMEOUT

No

30

Request timeout in seconds

Socket auto-detection order:

  1. $XDG_RUNTIME_DIR/podman/podman.sock (rootless)

  2. /run/user/$UID/podman/podman.sock (rootless fallback)

  3. /run/podman/podman.sock (rootful)

Claude Code Integration

claude mcp add mcp-podman-crunchtools \
  --env PODMAN_SOCKET=/run/podman/podman.sock \
  -- uvx mcp-podman-crunchtools

Tools (30)

Containers (12)

Tool

Description

container_list

List containers

container_inspect

Get container details; environment values are redacted, names kept

container_start

Start a container

container_stop

Stop a container

container_restart

Restart a container

container_kill

Send signal to container

container_rm

Remove a container

container_logs

Get container logs

container_top

List processes

container_stats

Resource usage

container_create

Create a container

container_prune

Remove stopped containers

Images (5)

Tool

Description

image_list

List images

image_inspect

Get image details

image_pull

Pull from registry

image_rm

Remove an image

image_prune

Remove unused images, with the options of podman image prune (all, external, build_cache, filters)

Pods (7)

Tool

Description

pod_list

List pods

pod_inspect

Get pod details

pod_start

Start a pod

pod_stop

Stop a pod

pod_restart

Restart a pod

pod_rm

Remove a pod

pod_create

Create a pod

Networks (2)

Tool

Description

network_list

List networks

network_inspect

Get network details

Volumes (2)

Tool

Description

volume_list

List volumes

volume_inspect

Get volume details

System (2)

Tool

Description

system_info

Podman system info

system_df

Disk usage

License

AGPL-3.0-or-later

Available Tools

30 tools
container_create_toolContainer Create ToolC

Create a new container.

NameRequiredDescriptionDefault
envNoEnvironment variables
nameNoContainer name
imageYesContainer image (e.g. "registry.access.redhat.com/ubi9/ubi:latest")
labelsNoContainer labels
commandNoCommand to run
volumesNoVolume mounts (format: "host_path:container_path[:options]")

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does not state that this is a mutating/persistent operation, whether the container starts automatically, permission requirements, or error behavior. For a create tool with zero annotation coverage, this is a significant gap.

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?

A single front-loaded sentence with zero waste. It is appropriately sized, though under-specified content is a content problem rather than a conciseness flaw.

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

Completeness2/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 not be explained. But with no annotations and a one-line description, the definition is inadequate for a mutation tool: no safety profile, no start-on-create semantics, no prerequisites, and no sibling routing.

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 schema already documents all six parameters with descriptions and examples (e.g., the image example, volume mount format). The description adds nothing beyond the schema, which is the baseline 3 case when the schema does the heavy lifting.

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

Purpose3/5

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

States a clear verb+resource ('Create a new container'), which distinguishes it from sibling read tools like container_list_tool or container_inspect_tool. However, it adds no differentiation from pod_create_tool or any specifics about what container is created or its scope.

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

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternatives mentioned. An agent must infer that this is the creation path rather than one of the many lifecycle siblings, with no explicit routing guidance.

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

container_inspect_toolContainer Inspect ToolC
Read-only

Get detailed information about a container.

NameRequiredDescriptionDefault
nameYesContainer name or ID

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

readOnlyHint=true already tells the agent this is a safe read, so the description's only added value would be context such as whether the container must exist/running or what the detail payload covers. It provides none of that, effectively restating the read-only nature the annotation already declares.

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?

One short, front-loaded sentence with zero waste. It is efficient but sits close to the edge of under-specification for a tool in a 30-sibling cluster.

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 not be described, and the one-parameter input is fully documented. Still, for an inspect call the description should say whether a stopped container is inspectable and how it differs from container_top_tool or container_stats_tool.

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 coverage is 100% and the single 'name' parameter is documented as 'Container name or ID', so the description adds nothing further. Baseline 3 is appropriate when the schema does all the work.

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?

States a specific verb ('Get detailed information') and resource ('a container'), which clearly separates it from container_list_tool's summary listing. It stops short of naming any sibling or scope boundary explicitly, so differentiation relies on the reader's inference.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no pointer to alternatives in a crowded sibling set (container_logs_tool, container_stats_tool, container_top_tool all reveal different views of the same container). The agent must infer that 'inspect' follows 'list'.

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

container_kill_toolContainer Kill ToolC

Send a signal to a container.

NameRequiredDescriptionDefault
nameYesContainer name or ID
signalNoSignal to send (default: SIGTERM)SIGTERM

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does not disclose that this is destructive (terminates the process), the effect of SIGKILL vs catchable signals, permission requirements, or whether the default SIGTERM is graceful — all critical for a kill operation.

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?

A single front-loaded sentence with no filler. It is well-formed and efficient, though its brevity tips into under-specification rather than ideal compression.

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

Completeness2/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, but for a destructive, unannotated 2-parameter mutation tool the description should at minimum note that the container's process is signaled/terminated and how signals relate to siblings. It is too sparse given the operation's risk.

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%, with both parameters documented (name and signal with default). The description adds no signal semantics or format guidance beyond the schema, so the baseline 3 is appropriate.

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?

The description states a specific verb and resource ('Send a signal to a container'), which is a clear action on a container. However, it does not differentiate itself from close siblings like container_stop_tool or container_rm_tool, which an agent could easily confuse with a signal-sending operation.

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

Usage Guidelines2/5

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

There is no indication of when to use this tool versus container_stop_tool, container_restart_tool, or container_rm_tool. The agent must infer that this is the low-level signal primitive distinct from graceful stop, but nothing in the text says so.

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

container_list_toolContainer List ToolC
Read-only

List containers.

NameRequiredDescriptionDefault
limitNoMaximum number of containers to return
filtersNoFilter by key/value pairs (e.g. {"name": ["myapp"]})
all_containersNoShow all containers (default shows only running)

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.2/5.0
Behavior2/5

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

The readOnlyHint=true annotation already tells the agent this is a safe read, so the description needed to add the non-obvious behavior — chiefly that only running containers are returned unless all_containers is set. That important default is present only in the schema, not the description.

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

Conciseness2/5

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

Two words is not conciseness but under-specification — there is no front-loaded eligible content beyond the name. Brevity here costs the agent the information it needs.

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

Completeness2/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 needn't be explained, but with 30 sibling tools and three optional parameters, a working description should at least state the running-only default and the filtering capability. Those gaps are real, not minor.

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 limit, filters, and all_containers are fully documented in the schema; baseline 3 applies. The description adds no extra meaning about filter semantics or how limit interacts with pagination.

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

Purpose2/5

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

"List containers" is a verb plus resource, but it essentially restates the tool name (Container List Tool) and adds nothing. It gives no scope, no distinction from sibling list tools (pod_list_tool, image_list_tool, volume_list_tool), and no hint that it defaults to running containers only.

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

Usage Guidelines2/5

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

No when-to-use guidance, no alternatives named, no exclusions. An agent gets no help deciding between this and container_inspect_tool or pod_list_tool from the description text.

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

container_logs_toolContainer Logs ToolC
Read-only

Get container logs.

NameRequiredDescriptionDefault
nameYesContainer name or ID
tailNoNumber of lines from the end of the logs
sinceNoShow logs since timestamp (RFC3339, e.g. "YYYY-MM-DDThh:mm:ssZ")
timestampsNoAdd timestamps to each log line

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

The readOnlyHint=true annotation already establishes this is a safe read operation. The description adds no behavioral context beyond that: it doesn't say whether logs stream/follow, whether it blocks, how many containers are supported, or what permissions or constraints apply.

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

Conciseness2/5

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

The one-line description is front-loaded and free of waste, but it is under-specified for a tool with four parameters and runtime-log behavior. Brevity here comes at the cost of necessary context, not as efficient structuring.

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

Completeness2/5

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

An output schema exists and the annotations cover the safety profile, so return values need not be explained. Still, the description leaves important operational context unstated—e.g., whether logs are current-only, how tail/since interact, or whether the call follows logs—which an agent needs to invoke it correctly.

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 schema already documents name, tail, since, and timestamps. The description adds no parameter meaning beyond the schema, which is acceptable at baseline when structured fields do the heavy lifting.

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

Purpose3/5

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

States a specific verb and resource ('Get container logs'), so the basic purpose is understandable. However, among many container_* siblings it offers no differentiation from tools like container_inspect_tool or container_stats_tool, and the description is too terse to fully clarify scope.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as container_inspect_tool for metadata or container_stats_tool for resource usage. The agent must infer that 'logs' means runtime output rather than inspect/stat data.

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

container_prune_toolContainer Prune ToolA

Remove all stopped containers.

Returns: List of removed container IDs and reclaimed space

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It usefully scopes the operation to stopped containers (implying running ones are untouched), but omits irreversibility, whether it can be undone, and any permission or safety caveats expected of a destructive prune.

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?

Two short, front-loaded sentences with no wasted prose. The 'Returns' block is mildly redundant given an output schema exists, but it is not harmful.

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 is present, so return values are covered, and the description correctly avoids over-explaining them. However, for a destructive removal operation with no annotations, the absence of any warning about irreversibility or scope side effects leaves a meaningful gap.

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?

The tool takes zero parameters, so there is no argument surface to explain. Baseline of 4 for a parameterless tool is appropriate.

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?

States a specific verb and resource ('Remove all stopped containers') with a clear scope qualifier ('stopped'), which implicitly distinguishes it from container_rm_tool's targeted removal. It does not name the sibling directly, so it falls short of a 5.

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 scope ('all stopped containers') implies a bulk-cleanup use case, but there is no explicit when-to-use, when-not-to-use, or reference to the alternative container_rm_tool for selective removal. Usage is left to inference.

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

container_restart_toolContainer Restart ToolC

Restart a container.

NameRequiredDescriptionDefault
nameYesContainer name or ID
timeoutNoSeconds to wait before killing (default: 10)

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Restart a container' implies a mutation, but it does not disclose permissions required, what happens to running processes, downtime, reversibility, or how the timeout parameter affects behavior. This is a significant gap for a mutation tool with zero annotation coverage.

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

Conciseness3/5

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

The description is a single short sentence with no wasted words, which is concise. However, it is arguably too terse for a tool with two parameters and an output schema, and it lacks structure that would help an agent understand its place among many container lifecycle siblings.

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

Completeness2/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 not be explained, but the description is still incomplete. With no annotations and many sibling alternatives, the description should cover when to use it, behavioral implications of restart, and any safety or permission context. It provides none of these.

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%, with both parameters documented in the input schema (name and timeout). The description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate when the schema does the heavy lifting.

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?

The description states a specific verb and resource ('Restart a container'), making the tool's purpose immediately clear. However, it offers no differentiation from sibling tools such as container_start_tool, container_stop_tool, or container_kill_tool, so the agent cannot tell from the description alone when restart is preferred.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. The phrase 'Restart a container' implies usage, but nothing tells an agent whether to choose restart over stop/start or kill.

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

container_rm_toolContainer Rm ToolC

Remove a container.

NameRequiredDescriptionDefault
nameYesContainer name or ID
forceNoForce removal of running container
volumesNoRemove associated anonymous volumes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden, and it discloses almost nothing beyond the bare action. It does not mention that this is destructive/irreversible, what force and volumes do behaviorally, or any permission requirements.

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

Conciseness3/5

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

A single short sentence is efficient but borders on under-specification rather than genuine conciseness. There is no waste, but there is also almost no content.

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

Completeness2/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 not be explained. Still, for a destructive mutation tool with no annotations, the description should cover safety behavior and prerequisites; 'Remove a container.' leaves an agent without enough to invoke it confidently.

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 name, force, and volumes are already documented in the schema with defaults. The description adds no meaning beyond that, which is the baseline when the schema does the heavy lifting.

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?

States a clear verb (remove) and resource (container), so the basic action is unambiguous. However, it does nothing to distinguish itself from close siblings such as container_prune_tool or pod_rm_tool, leaving the agent to infer which removal tool applies.

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

Usage Guidelines2/5

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

No guidance on when to use this versus alternatives like container_prune_tool (bulk removal) or image_rm_tool. No prerequisites are stated, e.g. whether the container must be stopped first.

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

container_start_toolContainer Start ToolB

Start a stopped container.

NameRequiredDescriptionDefault
nameYesContainer name or ID

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a mutation but says nothing about permissions, idempotency, what happens if the container is already running, or side effects. The output schema helps with return values, but behavioral context is still thin.

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?

A single short sentence with no filler, front-loading the action and scope. It is appropriately sized for a simple one-parameter operation.

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?

For a simple tool with full schema coverage and an output schema, the description states what the tool does. However, with no annotations and no usage guidance against siblings like restart or create, it leaves some contextual gaps.

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 coverage is 100% and the single parameter is already documented as 'Container name or ID'. The description adds no parameter detail beyond the schema, so the baseline 3 for high coverage applies.

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?

States a specific verb 'Start' and resource 'container', with scope 'stopped' that implies a distinct operation. It is clear, but does not explicitly name sibling alternatives such as restart or create, so a 5 is not warranted.

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

Usage Guidelines2/5

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

Provides no explicit when-to-use or when-not guidance, and does not mention alternatives like container_restart_tool or container_create_tool. The 'stopped container' condition is part of the purpose, not usage routing.

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

container_stats_toolContainer Stats ToolC
Read-only

Get container resource usage statistics.

NameRequiredDescriptionDefault
nameYesContainer name or ID

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

readOnlyHint=true already tells the agent this is a safe read. The description adds nothing beyond that: it doesn't say whether stats are a one-shot snapshot or a stream, whether the container must be running, whether the call blocks, or what happens for a stopped container. For an observability tool with zero annotation coverage beyond safety, that is a meaningful gap.

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?

One front-loaded sentence with no filler or redundancy. It is efficient, though the brevity edges toward under-specification rather than true conciseness.

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 and the parameter is fully documented, so the agent knows the shape of the result. However, the description leaves real operational questions unanswered (snapshot vs. stream, running-container requirement), which matters for a live-stats-style tool.

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 coverage is 100% and the single `name` parameter is documented as "Container name or ID", so the schema carries the semantics. The description adds no extra meaning about identifier formats or defaulting, which is the expected baseline when the schema is complete.

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?

States a specific verb and resource ("Get container resource usage statistics"), which is clearly distinct from container_inspect_tool or container_logs_tool. It does not, however, explicitly distinguish itself from the nearby container_top_tool (process listing) or system_df_tool (disk usage), which an agent could plausibly confuse with 'resource usage'.

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

Usage Guidelines2/5

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

There is no guidance on when to use this instead of container_top_tool, container_inspect_tool, or system_df_tool, and no prerequisites or exclusions are named. Usage must be inferred entirely from the tool name.

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

container_stop_toolContainer Stop ToolC

Stop a running container.

NameRequiredDescriptionDefault
nameYesContainer name or ID
timeoutNoSeconds to wait before killing (default: 10)

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It says the tool stops a running container but does not explain whether the stop is graceful, how the timeout is enforced, what happens if the container is already stopped, or whether permissions are required.

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 a single front-loaded sentence with no wasted words. It is appropriately concise, though its brevity contributes to missing usage and behavioral context.

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 and the input schema is fully documented, so return-value explanation is not needed. Still, for a mutation tool with no annotations and many similar siblings, the description lacks enough context about when to choose it and what behavioral effects to expect.

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%, and the schema itself documents both 'name' and 'timeout' with meaning and default. The description adds no parameter-level detail beyond what the schema already provides, so the baseline score of 3 applies.

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?

The description states a specific verb and resource ('Stop a running container'), making the core action clear. However, it does not distinguish this tool from close siblings like container_kill_tool or container_restart_tool, so it stops short of a fully differentiated purpose.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance, no when-not-to-use guidance, and no mention of alternatives such as container_kill_tool. Usage can only be inferred from the tool name and description.

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

container_top_toolContainer Top ToolB

List processes running inside a container.

NameRequiredDescriptionDefault
nameYesContainer name or ID
ps_argsNoArguments to pass to ps (e.g. "aux")

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. A 'list processes' tool is implicitly read-only and non-destructive, but the description omits whether the container must be running, whether a stopped container errors, and how ps_args changes behavior. Adequate but thin for a tool with zero annotation coverage.

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?

A single front-loaded sentence with no filler; every word earns its place and the core action leads.

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 not be explained, and the parameter set is simple and fully documented in the schema. However, with no annotations the description should at least address the running-container precondition and the effect of ps_args on output.

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%: both `name` (container name or ID) and `ps_args` (arguments to ps, e.g. "aux") are already documented in the schema. The description adds nothing beyond it, so the baseline 3 applies.

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?

States a specific verb (list) and resource (processes inside a container), which cleanly separates it from container_list_tool (containers) and container_logs_tool. It does not explicitly name a sibling or contrast with container_stats_tool, but the scope is unambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this over alternatives such as container_stats_tool or container_inspect_tool, and no prerequisites stated. The agent must infer usage from the purpose sentence alone.

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

image_inspect_toolImage Inspect ToolC
Read-only

Get detailed information about an image.

NameRequiredDescriptionDefault
nameYesImage name, tag, or ID

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered externally. Beyond that the description adds nothing: it does not say what category of details is returned, whether the image must exist locally vs in a registry, or whether it triggers any network/registry access, which matters for an inspect call on an image name or tag.

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

Conciseness3/5

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

One short front-loaded sentence with no waste, but 'detailed information' is vague filler rather than substance. It is concise to the point of being under-specified for the ambiguity it leaves around image_list_tool.

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 not be described, and annotations cover read-only safety. However, for a tool sitting among image_list_tool, image_pull_tool, and image_rm_tool, the description should at minimum state that this inspects a single existing image rather than listing or fetching it; that routing context is missing.

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 coverage is 100% and the single 'name' parameter is documented as accepting an image name, tag, or ID. The description adds no further semantics (e.g., whether digests or partial IDs are accepted), so the baseline of 3 applies.

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?

The description states a specific verb and resource: 'Get detailed information about an image.' The word 'detailed' implicitly separates it from image_list_tool's summary output, but it never names the sibling or spells out what 'detailed' covers. Clear, yet no explicit sibling differentiation.

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

Usage Guidelines2/5

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

There is no guidance on when to reach for this tool versus image_list_tool (which presumably lists images) or any other sibling. No prerequisites, no exclusions, no alternative named. The agent must infer usage from the tool name alone.

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

image_list_toolImage List ToolC
Read-only

List images.

NameRequiredDescriptionDefault
filtersNoFilter by key/value pairs (e.g. {"reference": ["ubi9"]})

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.5/5.0
Behavior2/5

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

The readOnlyHint annotation already tells the agent this is a safe read. The description adds nothing beyond that — no mention of whether results include all images or just local ones, ordering, or size of result set. It carries no behavioral weight of its own.

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

Conciseness3/5

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

Two words with no waste, but this is under-specification rather than disciplined concision. There is no front-loaded scope statement to anchor the reader.

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

Completeness2/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 not be explained, but the description still omits the filtering capability that is the only parameter and says nothing about result scope. For a list tool in a crowded 30-tool namespace, this leaves too much to inference.

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 coverage is 100% and the single 'filters' parameter is documented with an example object, so the schema does all the work. The description contributes zero parameter meaning, which lands at the baseline for high schema coverage.

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

Purpose3/5

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

"List images" states a verb and resource, so the basic purpose is inferable. But it is essentially a restatement of the name 'image_list_tool' and gives no scope or differentiation from sibling readers like image_inspect_tool or the many other *_list_tool variants.

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

Usage Guidelines2/5

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

There is no indication of when to use this versus image_inspect_tool (detail on one image) or image_pull_tool/image_rm_tool. The agent gets no routing signal beyond the tool name, and no prerequisites or filtering use cases are mentioned.

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

image_prune_toolImage Prune ToolA

Remove unused images, like podman image prune.

With no arguments only dangling (untagged, unused) images are removed.

NameRequiredDescriptionDefault
allNoRemove every image not used by a container, not just dangling ones (--all)
filtersNoLimit what is pruned (--filter). Keys: "until" (images built before a timestamp or Go duration, e.g. {"until": ["168h"]}; compares the build date, not when the image was pulled or tagged), "label" / "label!" (e.g. {"label": ["stage=ci"]}), "dangling" (["true"] or ["false"])
externalNoAlso remove images used only by external containers, e.g. build containers (--external)
build_cacheNoAlso remove the persistent build cache from --mount=type=cache (--build-cache)

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full disclosure burden, and it does surface the single most important behavioral fact: the default scope is limited to dangling, untagged, unused images rather than all images. It does not state that pruning is irreversible or mention any permission/daemon requirements, leaving some destructive-operation context unstated.

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?

Two short sentences, zero waste, with the core action front-loaded and the default-scope caveat immediately following. Everything stated earns its place.

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?

An output schema exists, so return values need no explanation, and the schema fully documents the parameters. The description covers purpose and default scope adequately; the only gap is the absence of explicit guidance on when to prefer this over `image_rm_tool`.

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 four parameters (`all`, `filters`, `external`, `build_cache`) are already fully documented in the schema, including filter keys and semantics. The description adds only the no-argument default, which the schema's `all` default already implies; baseline 3 is appropriate.

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?

States a specific verb+resource ('Remove unused images') and anchors the semantics with a concrete analogue ('like `podman image prune`'), so an agent knows this is a bulk cleanup operation rather than targeted deletion. It never names `image_rm_tool`, the sibling it is most easily confused with, so it stops short of full differentiation.

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 second sentence clarifies the default invocation scope ('with no arguments only dangling (untagged, unused) images are removed'), which is useful operational context. However, it gives no explicit when-to-use/when-not guidance relative to `image_rm_tool` or `container_prune_tool`; the routing is only implied through the podman analogy.

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

image_pull_toolImage Pull ToolB

Pull an image from a registry.

NameRequiredDescriptionDefault
referenceYesImage reference (e.g. "quay.io/crunchtools/rotv:latest")

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a remote fetch, but does not disclose authentication requirements, network access, whether an existing local image is overwritten, or other side effects.

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?

A single, front-loaded sentence with no wasted words. It directly states the action and source, which is appropriately sized for a simple one-parameter pull operation.

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?

The output schema and fully documented input schema cover return values and parameter mechanics. However, with no annotations, the description should add more behavioral context (e.g., auth, overwrite behavior) to be fully complete for an agent.

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%, and the single required parameter 'reference' is fully documented in the schema with an example. The description adds no further parameter meaning, so baseline 3 is appropriate.

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?

States a specific verb (Pull) and resource (image) with source (registry). It is clear and distinct from sibling image_list, image_inspect, image_rm, and image_prune tools, but does not explicitly differentiate from them in the text.

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

Usage Guidelines2/5

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

Only states what the tool does. There is no guidance on when to use it versus alternatives like image_list or image_inspect, no prerequisites such as registry authentication, and no exclusions.

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

image_rm_toolImage Rm ToolC

Remove an image.

NameRequiredDescriptionDefault
nameYesImage name, tag, or ID
forceNoForce removal even if in use

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: it doesn't say the operation is destructive/irreversible, whether it deletes layers or only untags, or what happens when the image is in use. The force parameter's semantics exist only in the schema, never reflected in the description.

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

Conciseness3/5

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

A single efficient sentence with no waste, but it is terse to the point of under-specification for a destructive mutation tool. Front-loading is fine; the problem is that it says too little rather than too much.

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

Completeness2/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 not be explained. However, for a destructive two-parameter mutation tool with zero annotation coverage, the description should at least convey that removal is permanent and how force behaves; that context is entirely absent.

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 both parameters (name, force) are already documented in the schema. The description adds no syntax or format detail beyond that, which is the expected baseline when the schema does the heavy lifting.

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?

States a specific verb (remove) and resource (image), so the agent knows it deletes an image. It does not distinguish itself from the sibling image_prune_tool, which also removes images, so the boundary is left to inference.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of alternatives such as image_prune_tool, and no stated prerequisites (e.g. removing by name vs tag vs ID, or handling of running containers). The agent must guess the intended scenario.

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

network_inspect_toolNetwork Inspect ToolC
Read-only

Get detailed information about a network.

NameRequiredDescriptionDefault
nameYesNetwork name or ID

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

readOnlyHint=true already tells the agent this is a safe, non-mutating read, and the description adds nothing further — no note on error behavior for unknown network names, no scoping to local vs. remote networks. With annotations covering the safety profile the bar is lower, but the description contributes essentially zero behavioral context.

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?

A single front-loaded sentence with zero waste. It is efficient rather than padded, though it sits at the edge of under-specification given the tool set it lives in.

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 and annotations declare the read-only profile, so return values and safety do not need spelling out. Still, for a tool embedded among many inspect/list pairs, the description omits the one thing an agent needs — the relationship to network_list_tool.

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?

There is a single required parameter at 100% schema description coverage ('Network name or ID'), so the schema fully documents it. The description adds no meaning beyond the schema, which is the expected baseline for a one-param tool.

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?

States a specific verb and resource ('Get detailed information about a network'), and 'detailed' implicitly separates it from the sibling network_list_tool. However, it never names that sibling or clarifies what 'detailed information' actually covers, so the differentiation is left to inference.

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

Usage Guidelines2/5

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

No guidance on when to use this versus network_list_tool, and no mention of preconditions such as requiring the network to exist or be attached to a container. The agent must infer that this is the drill-down counterpart to the list tool.

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

network_list_toolNetwork List ToolC
Read-only

List networks.

NameRequiredDescriptionDefault
filtersNoFilter by key/value pairs

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, so safety is covered, but the description adds nothing beyond that: no note on whether all networks are returned by default, how the filters argument narrows results, or any pagination/ordering behavior. It is a pure restatement, adding zero behavioral context.

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

Conciseness2/5

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

Two words is not conciseness here, it is under-specification. Nothing is wrong with the sentence itself, but it is too short to be informative and there is nothing to front-load because no substance exists.

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

Completeness2/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 not be explained, but for a listing tool with a free-form filters object, the description should say what filtering keys are supported or that it defaults to all networks. As written, the agent has to guess at scope and filter semantics.

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% and the single optional 'filters' param is documented in the schema as "Filter by key/value pairs". The description adds no meaning beyond that, so the baseline 3 applies rather than anything higher.

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

Purpose2/5

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

"List networks" states a verb and resource, but it is essentially a restatement of the tool name (network_list_tool) and title (Network List Tool). It does nothing to distinguish this tool from the sibling network_inspect_tool, so an agent gains no discriminating information.

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

Usage Guidelines2/5

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

There is no guidance about when to call this versus network_inspect_tool, which is the obvious alternative for network-related queries. No prerequisites, no note about scope (all networks vs. filtered), no exclusions.

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

pod_create_toolPod Create ToolC

Create a new pod.

NameRequiredDescriptionDefault
nameYesPod name
infraNoCreate an infra container (default: True)
shareNoNamespaces to share (ipc, net, uts, pid)
labelsNoPod labels

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing beyond the bare action. For a mutation tool it omits whether the pod is started on creation, what happens on name conflicts, required privileges, or whether the operation is reversible.

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

Conciseness3/5

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

The single sentence is front-loaded and free of waste, but it is so terse that it under-specifies a four-parameter mutation. Brevity here costs usefulness rather than demonstrating discipline.

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

Completeness2/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, but the description still omits creation semantics that matter for a pod: default behavior, post-create state, and relationships to the many sibling pod lifecycle tools. It is inadequate for the complexity implied by the tool set.

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 every parameter (name, infra, share, labels) is already documented in the schema, and the description adds no additional meaning. A baseline 3 is appropriate when the schema does the heavy lifting.

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?

The description gives a clear verb (Create) and resource (pod), making the operation immediately identifiable. It does not, however, differentiate this tool from sibling creation tools like container_create_tool or address how it relates to pod_start_tool, which is the natural follow-up.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. Nothing tells the agent whether a created pod is started, whether pod_start_tool must be called afterward, or what to do if a pod with the same name exists.

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

pod_inspect_toolPod Inspect ToolC
Read-only

Get detailed information about a pod.

NameRequiredDescriptionDefault
nameYesPod name or ID

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

readOnlyHint=true already declares the safety profile and an output schema covers the return shape, so the description could add value in other areas (missing-pod behavior, error semantics, scope). It adds none — the single sentence restates what the name and annotations already convey.

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?

A single front-loaded sentence with no wasted words. Brevity here reflects missing content rather than tight editing, but structurally it is clean.

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?

With annotations, an output schema, and a fully described single parameter, the minimum facts needed to call the tool are present. Still, for an inspect tool among many siblings, the description does nothing to disambiguate scope or failure behavior.

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?

One parameter with 100% schema coverage ('Pod name or ID'), so the schema fully documents it. The description neither repeats nor enriches this, which matches the baseline for high-coverage schemas.

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?

States a specific verb ('Get detailed information') and resource ('a pod'), which is clearly distinct from pod_list_tool or pod_create_tool. It does not, however, explicitly contrast itself against the nearest sibling, container_inspect_tool, or clarify what 'detailed' covers.

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

Usage Guidelines2/5

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

No guidance on when to use this versus pod_list_tool (enumerate) or container_inspect_tool (per-container detail). The agent must infer selection purely from the tool name.

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

pod_list_toolPod List ToolC
Read-only

List pods.

NameRequiredDescriptionDefault
filtersNoFilter by key/value pairs (e.g. {"name": ["mypod"]})

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.5/5.0
Behavior2/5

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

readOnlyHint=true already declares this is a safe read, so the description isn't obligated to restate safety. However, it adds nothing beyond that: it doesn't say whether all pods or only running pods are returned, whether results are namespace-scoped, or anything about ordering/pagination behavior.

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

Conciseness3/5

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

Two words are certainly concise and front-loaded, but the brevity crosses into under-specification rather than efficiency. A single additional clause on scope or filtering would have earned its place.

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

Completeness2/5

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

An output schema and annotations cover return values and safety, but the description leaves the core listing semantics (scope, default filter behavior, relationship to pod_inspect_tool) entirely unaddressed. For a tool in a dense sibling cluster, that is a meaningful gap.

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% and the single optional `filters` parameter is documented in the schema with an example, so the description needn't compensate. Baseline 3 applies since the description contributes nothing extra about filtering semantics.

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

Purpose3/5

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

"List pods" gives a clear verb and resource, so the basic action is unambiguous. But it offers no differentiation from sibling list/inspect tools such as pod_inspect_tool or container_list_tool, and does not say what a 'pod list' returns or includes.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus pod_inspect_tool or the container listing tools, nor any mention of prerequisites or filtering scope. The agent must infer usage purely from the name.

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

pod_restart_toolPod Restart ToolB

Restart a pod and all its containers.

NameRequiredDescriptionDefault
nameYesPod name or ID

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral disclosure. It indicates a disruptive mutation ('restart') and notes that all containers are affected, which is useful. However, it doesn't state whether this requires specific permissions, what happens to running state, or whether it's graceful vs forced—significant gaps for a mutation tool.

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?

A single, front-loaded sentence with zero waste. It states the action, the resource, and the scope efficiently.

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?

For a mutation tool with no annotations, the description is minimal. It covers what the tool does and that all containers are affected, but omits behavioral details like graceful vs forced restart, required permissions, or side effects. The presence of an output schema reduces the need to explain return values, but the lack of annotations and usage guidance leaves gaps.

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 coverage is 100% and the single parameter ('name') is fully documented in the schema as 'Pod name or ID'. The description adds no additional parameter meaning beyond what the schema already provides, so baseline 3 is appropriate.

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?

The description states a specific verb ('Restart') and resource ('pod'), and adds scope ('all its containers'), which distinguishes it from container_restart_tool. It clearly conveys the action without being a tautology.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus pod_stop_tool/pod_start_tool or container_restart_tool. The sibling list includes many alternatives (pod_stop_tool, pod_start_tool, container_restart_tool), but the description offers no routing advice or exclusions.

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

pod_rm_toolPod Rm ToolB

Remove a pod and all its containers.

NameRequiredDescriptionDefault
nameYesPod name or ID
forceNoForce removal of running pod

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose one valuable behavioral trait beyond the schema: removal cascades to all containers in the pod. However, it says nothing about irreversibility, behavior on running pods, or what the force flag changes operationally.

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?

A single tight sentence with the key cascade behavior front-loaded. No wasted words, though it is arguably thin given the tool is destructive.

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 not be explained, and the cascade behavior is captured. But for a destructive, annotation-free tool, the absence of any guidance on running pods, force semantics, or irreversibility leaves real gaps.

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 both parameters (name, force) are already documented in the schema. The description adds no extra meaning about parameter usage, so the baseline 3 applies.

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?

States a specific verb (Remove) and resource (pod), plus the important scope detail that all its containers go with it. This implicitly separates it from pod_stop/pod_restart, though it doesn't name 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 Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of the alternative tools (pod_stop, pod_restart, container_rm). The agent must infer that this is the destructive variant from the verb alone.

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

pod_start_toolPod Start ToolC

Start a pod and all its containers.

NameRequiredDescriptionDefault
nameYesPod name or ID

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it only restates scope. It does not disclose idempotency (what happens if the pod is already running), permission requirements, or failure behavior, which matters for a mutation tool with zero annotation coverage.

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?

A single short sentence with the action front-loaded and zero wasted words. It is efficient, though it borders on under-specification rather than demonstrating exemplary structure.

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

Completeness2/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 not be explained. However, for an unannotated mutation tool, the definition omits idempotency, error conditions, and prerequisites, leaving meaningful gaps.

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%, and the single 'name' parameter is documented in the schema as 'Pod name or ID'. The description adds no additional meaning beyond the schema, so the baseline of 3 applies.

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?

The description states a specific verb and resource ('Start a pod') and even clarifies scope by noting all its containers are started too. It does not differentiate itself from the sibling lifecycle tools (pod_stop_tool, pod_restart_tool), so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus pod_restart_tool or pod_create_tool, no prerequisites (does the pod need to exist in a stopped state?), and no exclusions. The agent must infer usage entirely from the tool name.

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

pod_stop_toolPod Stop ToolC

Stop a pod and all its containers.

NameRequiredDescriptionDefault
nameYesPod name or ID
timeoutNoSeconds to wait before killing (default: 10)

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses that all containers are stopped, which is useful, but says nothing about whether the stop is graceful (SIGTERM then kill), what happens after the timeout expires, whether the pod is deleted or merely halted, or what state the caller should expect afterwards.

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?

A single short sentence with the action front-loaded and zero filler. It is efficient, though for a state-mutating tool the brevity tips toward under-specification rather than crispness.

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

Completeness2/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 not be described. However, for a lifecycle-mutating tool with no annotations and many similar siblings, the description omits the prerequisites, post-conditions, and sibling routing an agent needs to call it correctly.

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%: 'name' (Pod name or ID) and 'timeout' (seconds before killing, default 10) are both documented in the schema. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

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?

The description gives a specific verb (Stop) and resource (pod), and adds scope detail that the name alone does not convey: it stops all containers in the pod, not just the pod object. It does not, however, distinguish this from siblings such as pod_restart_tool, pod_rm_tool, or pod_start_tool, so an agent must still infer which lifecycle operation is appropriate.

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

Usage Guidelines2/5

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

There is no guidance on when to stop versus restart, remove, or kill a pod, and no stated preconditions (e.g. pod must exist/running) or notes about reversibility. With four closely related pod lifecycle siblings, this absence is a real gap.

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

system_df_toolSystem Df ToolA
Read-only

Get Podman disk usage.

Returns: Disk usage by images, containers, and volumes

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

readOnlyHint=true already establishes the safety profile, and the output schema documents the return structure. The description adds modest value by naming the three aggregation dimensions (images, containers, volumes), implying a summary rollup rather than a detailed listing, but says nothing about scope (local vs all storage), totals/reclaimable space, or performance.

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?

Two short sentences, action first, return shape second. No filler and nothing that could be cut without losing information.

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?

For a zero-parameter read-only tool with an output schema, this is nearly complete — the agent knows it is safe, takes no arguments, and returns usage broken out by images, containers, and volumes. Only the distinction from system_info_tool is left unresolved.

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?

The tool takes zero parameters, so the baseline is 4; there are no parameter semantics to explain and the description introduces nothing misleading about inputs.

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?

States a specific verb and resource: 'Get Podman disk usage', which maps cleanly to the `podman system df` concept and is distinct from per-object siblings like image_list_tool or volume_list_tool. It does not explicitly differentiate itself from system_info_tool, the closest ambiguous sibling.

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

Usage Guidelines2/5

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

There is no guidance on when to call this versus system_info_tool (general host/engine info) or the individual list tools. The agent must infer that this returns aggregate disk consumption rather than per-object detail.

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

system_info_toolSystem Info ToolA
Read-only

Get Podman system information.

Returns: System details including version, storage, registries, and runtime

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe, non-mutating read. The description adds the categories of information returned (version, storage, registries, runtime), which is modest extra context but partly duplicates the output schema.

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?

Two short sentences, front-loaded with the action and then the return content. There is no filler.

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 zero parameters, an output schema, and a readOnlyHint annotation, the description carries almost the entire burden, and it meets that burden well enough. The only missing piece is how it relates to system_df_tool.

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?

The tool takes no parameters, so there is nothing for the description to disambiguate. The baseline of 4 applies for a zero-parameter tool.

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?

States a specific verb and resource ("Get Podman system information"), which is clearly distinct from container/image/pod-scoped siblings. It does not, however, differentiate itself from the closest sibling, system_df_tool, which also reports system-level data.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to call this instead of system_df_tool or the various *_list/_inspect tools. The usage context is only implied by the word "system".

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

volume_inspect_toolVolume Inspect ToolB
Read-only

Get detailed information about a volume.

NameRequiredDescriptionDefault
nameYesVolume name

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, so safety is covered structurally. The description adds no behavioral context beyond that—such as what 'detailed information' includes, whether the volume must exist, or how errors are handled—so it provides minimal added value.

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 a single, front-loaded sentence with no wasted words. It is appropriately concise, though its brevity contributes to under-specification rather than overspecification.

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 not be explained. The input schema is fully covered. However, the description omits the key sibling distinction from volume_list_tool, leaving a gap for an inspect tool in a large toolset.

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 coverage is 100%, and the single 'name' parameter is fully documented as 'Volume name'. The description does not add any semantics beyond the schema, so the baseline of 3 is appropriate when the schema does the heavy lifting.

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?

The description states a specific read operation and resource: 'Get detailed information about a volume.' It is clear what the tool does, but it does not explicitly distinguish itself from the sibling volume_list_tool, so it falls short of a 5.

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 phrase 'detailed information' implies inspection rather than listing, which gives some usage context. However, there is no explicit guidance on when to use this instead of volume_list_tool, and no exclusions or prerequisites are mentioned.

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

volume_list_toolVolume List ToolC
Read-only

List volumes.

NameRequiredDescriptionDefault
filtersNoFilter by key/value pairs

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

The readOnlyHint annotation already establishes that this is a safe read operation. Beyond that, the description adds no behavioral context about filtering behavior, pagination, output format, or scope, so it does little more than repeat the tool name.

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

Conciseness3/5

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

The description is only two words, so it contains no wasted language. However, it is under-specified rather than appropriately concise, and it lacks front-loaded guidance about scope or filtering.

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, annotations declare read-only behavior, and the filter parameter is fully documented in the schema, so the definition is minimally usable. Still, the description is too bare for an agent to confidently distinguish this from volume_inspect_tool or understand listing scope.

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%, and the single filter parameter is already documented as 'Filter by key/value pairs'. The description adds no parameter meaning beyond the schema, which is acceptable at the baseline when schema coverage is high.

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?

The description states a specific verb and resource: listing volumes. It is clear what the tool does, but it does not distinguish this list operation from sibling tools such as volume_inspect_tool or other list tools.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. It does not mention volume_inspect_tool or explain when filtering is appropriate, so the agent must infer usage entirely from the name.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.1.0
    • Changedimage_prune_tool4 fields changed
      • addedInput schema / properties / all
        Added value: +{
        +  "default": false,
        +  "description": "Remove every image not used by a container, not just dangling ones (--all)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / build_cache
        Added value: +{
        +  "default": false,
        +  "description": "Also remove the persistent build cache from --mount=type=cache\n(--build-cache)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / external
        Added value: +{
        +  "default": false,
        +  "description": "Also remove images used only by external containers, e.g. build\ncontainers (--external)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / filters
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Limit what is pruned (--filter). Keys: \"until\" (images built before\na timestamp or Go duration, e.g. {\"until\": [\"168h\"]}; compares the build\ndate, not when the image was pulled or tagged), \"label\" / \"label!\"\n(e.g. {\"label\": [\"stage=ci\"]}), \"dangling\" ([\"true\"] or [\"false\"])"
        +}
  2. 7 tool updatesv1.0.0
    • Changedcontainer_logs_tool1 field changed
      • changedInput schema / properties / since / description
        Previous value: -"Show logs since timestamp (e.g. \"2024-01-01T00:00:00Z\")"New value: +"Show logs since timestamp (RFC3339, e.g. \"YYYY-MM-DDThh:mm:ssZ\")"
    • Removedservice_list_tool
    • Removedservice_logs_tool
    • Removedservice_restart_tool
    • Removedservice_start_tool
    • Removedservice_status_tool
    • Removedservice_stop_tool
  3. 36 tool updatesv0.2.2
    • First observedcontainer_create_tool
    • First observedcontainer_inspect_tool
    • First observedcontainer_kill_tool
    • First observedcontainer_list_tool
    • First observedcontainer_logs_tool
    • First observedcontainer_prune_tool
    • First observedcontainer_restart_tool
    • First observedcontainer_rm_tool
    • First observedcontainer_start_tool
    • First observedcontainer_stats_tool
    • First observedcontainer_stop_tool
    • First observedcontainer_top_tool
    • First observedimage_inspect_tool
    • First observedimage_list_tool
    • First observedimage_prune_tool
    • First observedimage_pull_tool
    • First observedimage_rm_tool
    • First observednetwork_inspect_tool
    • First observednetwork_list_tool
    • First observedpod_create_tool
    • First observedpod_inspect_tool
    • First observedpod_list_tool
    • First observedpod_restart_tool
    • First observedpod_rm_tool
    • First observedpod_start_tool
    • First observedpod_stop_tool
    • First observedservice_list_tool
    • First observedservice_logs_tool
    • First observedservice_restart_tool
    • First observedservice_start_tool
    • First observedservice_status_tool
    • First observedservice_stop_tool
    • First observedsystem_df_tool
    • First observedsystem_info_tool
    • First observedvolume_inspect_tool
    • First observedvolume_list_tool

TDQS

B3/5.0

Scored across 30 tools

Disambiguation5/5

Each tool is clearly scoped by resource prefix (container_, image_, pod_, network_, volume_, system_) and a distinct action suffix. Overlaps such as list vs inspect occur only across clearly different resources, so an agent can reliably choose the right tool.

Naming Consistency5/5

All tools follow the same predictable snake_case pattern: <resource>_<action>_tool. Minor abbreviations like rm and df are still consistent with the established convention and do not create confusion.

Tool Count2/5

With 30 tools, the surface is heavy for a single MCP server and exceeds the typical well-scoped range. While Podman naturally has many operations, the count feels inflated because several resources expose only list/inspect while others expose extensive lifecycle actions.

Completeness3/5

Container lifecycle is fairly complete, including create, start, stop, restart, kill, remove, logs, stats, and top. However, major gaps exist for images (no build/push/tag), networks (no create/remove/connect/disconnect), volumes (no create/remove/prune), and pods (no pause/unpause or logs).

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables AI tools to manage containerized applications through Podman, supporting container lifecycle operations, command execution, log viewing, image management, and resource monitoring. Features automatic network discovery for seamless integration with MCP Discovery Hub.
    12
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables management of Podman containers, pods, images, and compose stacks via natural language, with support for container stats, logs, exec, health analysis, and a web dashboard.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides a local API to manage Docker containers and volumes, enabling operations like listing, inspecting, starting, stopping, and removing containers, as well as managing volumes, all through HTTP endpoints without shell commands.
    33 npm
    MIT