mcp-podman-crunchtools
This server provides an MCP interface to manage Podman containers, images, pods, networks, volumes, and system information for both rootful and rootless Podman installations.
List, inspect, start, stop, restart, kill, remove, and prune containers.
Retrieve container logs, process lists, and resource usage statistics.
Create new containers with custom images, commands, environment variables, labels, and volume mounts.
List, inspect, pull, remove, and prune images.
List, inspect, start, stop, restart, remove, and create pods.
List and inspect networks.
List and inspect volumes.
Get Podman system information and disk usage.
Provides tools for managing Podman containers, images, pods, networks, volumes, and system information via the Podman REST API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-podman-crunchtoolslist all running containers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-podmanRelated MCP server: Container Exec MCP Server
Configuration
Variable | Required | Default | Description |
| No | Auto-detect | Unix socket path |
| No | — | File containing socket path |
| No | 30 | Request timeout in seconds |
Socket auto-detection order:
$XDG_RUNTIME_DIR/podman/podman.sock(rootless)/run/user/$UID/podman/podman.sock(rootless fallback)/run/podman/podman.sock(rootful)
Claude Code Integration
claude mcp add mcp-podman-crunchtools \
--env PODMAN_SOCKET=/run/podman/podman.sock \
-- uvx mcp-podman-crunchtoolsTools (30)
Containers (12)
Tool | Description |
| List containers |
| Get container details; environment values are redacted, names kept |
| Start a container |
| Stop a container |
| Restart a container |
| Send signal to container |
| Remove a container |
| Get container logs |
| List processes |
| Resource usage |
| Create a container |
| Remove stopped containers |
Images (5)
Tool | Description |
| List images |
| Get image details |
| Pull from registry |
| Remove an image |
| Remove unused images, with the options of |
Pods (7)
Tool | Description |
| List pods |
| Get pod details |
| Start a pod |
| Stop a pod |
| Restart a pod |
| Remove a pod |
| Create a pod |
Networks (2)
Tool | Description |
| List networks |
| Get network details |
Volumes (2)
Tool | Description |
| List volumes |
| Get volume details |
System (2)
Tool | Description |
| Podman system info |
| Disk usage |
License
AGPL-3.0-or-later
Available Tools
30 toolscontainer_create_toolContainer Create ToolC
Create a new container.
| Name | Required | Description | Default |
|---|---|---|---|
| env | No | Environment variables | |
| name | No | Container name | |
| image | Yes | Container image (e.g. "registry.access.redhat.com/ubi9/ubi:latest") | |
| labels | No | Container labels | |
| command | No | Command to run | |
| volumes | No | Volume mounts (format: "host_path:container_path[:options]") |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 ToolCRead-only
Get detailed information about a container.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Container name or ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Container name or ID | |
| signal | No | Signal to send (default: SIGTERM) | SIGTERM |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 ToolCRead-only
List containers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of containers to return | |
| filters | No | Filter by key/value pairs (e.g. {"name": ["myapp"]}) | |
| all_containers | No | Show all containers (default shows only running) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 ToolCRead-only
Get container logs.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Container name or ID | |
| tail | No | Number of lines from the end of the logs | |
| since | No | Show logs since timestamp (RFC3339, e.g. "YYYY-MM-DDThh:mm:ssZ") | |
| timestamps | No | Add timestamps to each log line |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Container name or ID | |
| timeout | No | Seconds to wait before killing (default: 10) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Container name or ID | |
| force | No | Force removal of running container | |
| volumes | No | Remove associated anonymous volumes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Container name or ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 ToolCRead-only
Get container resource usage statistics.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Container name or ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Container name or ID | |
| timeout | No | Seconds to wait before killing (default: 10) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Container name or ID | |
| ps_args | No | Arguments to pass to ps (e.g. "aux") |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 ToolCRead-only
Get detailed information about an image.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Image name, tag, or ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 ToolCRead-only
List images.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No | Filter by key/value pairs (e.g. {"reference": ["ubi9"]}) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | Remove every image not used by a container, not just dangling ones (--all) | |
| filters | No | Limit 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"]) | |
| external | No | Also remove images used only by external containers, e.g. build containers (--external) | |
| build_cache | No | Also remove the persistent build cache from --mount=type=cache (--build-cache) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| reference | Yes | Image reference (e.g. "quay.io/crunchtools/rotv:latest") |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Image name, tag, or ID | |
| force | No | Force removal even if in use |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 ToolCRead-only
Get detailed information about a network.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Network name or ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 ToolCRead-only
List networks.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No | Filter by key/value pairs |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Pod name | |
| infra | No | Create an infra container (default: True) | |
| share | No | Namespaces to share (ipc, net, uts, pid) | |
| labels | No | Pod labels |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 ToolCRead-only
Get detailed information about a pod.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Pod name or ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 ToolCRead-only
List pods.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No | Filter by key/value pairs (e.g. {"name": ["mypod"]}) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Pod name or ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Pod name or ID | |
| force | No | Force removal of running pod |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Pod name or ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Pod name or ID | |
| timeout | No | Seconds to wait before killing (default: 10) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 ToolARead-only
Get Podman disk usage.
Returns: Disk usage by images, containers, and volumes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 ToolARead-only
Get Podman system information.
Returns: System details including version, storage, registries, and runtime
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 ToolBRead-only
Get detailed information about a volume.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Volume name |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 ToolCRead-only
List volumes.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No | Filter by key/value pairs |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 tool update
v1.1.0- Changed
image_prune_tool4 fields changed- added
Input schema / properties / allAdded value: +{ + "default": false, + "description": "Remove every image not used by a container, not just dangling ones (--all)", + "type": "boolean" +} - added
Input schema / properties / build_cacheAdded value: +{ + "default": false, + "description": "Also remove the persistent build cache from --mount=type=cache\n(--build-cache)", + "type": "boolean" +} - added
Input schema / properties / externalAdded value: +{ + "default": false, + "description": "Also remove images used only by external containers, e.g. build\ncontainers (--external)", + "type": "boolean" +} - added
Input schema / properties / filtersAdded 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\"])" +}
7 tool updates
v1.0.0- Changed
container_logs_tool1 field changed- changed
Input schema / properties / since / descriptionPrevious 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\")"
- Removed
service_list_tool - Removed
service_logs_tool - Removed
service_restart_tool - Removed
service_start_tool - Removed
service_status_tool - Removed
service_stop_tool
36 tool updates
v0.2.2- First observed
container_create_tool - First observed
container_inspect_tool - First observed
container_kill_tool - First observed
container_list_tool - First observed
container_logs_tool - First observed
container_prune_tool - First observed
container_restart_tool - First observed
container_rm_tool - First observed
container_start_tool - First observed
container_stats_tool - First observed
container_stop_tool - First observed
container_top_tool - First observed
image_inspect_tool - First observed
image_list_tool - First observed
image_prune_tool - First observed
image_pull_tool - First observed
image_rm_tool - First observed
network_inspect_tool - First observed
network_list_tool - First observed
pod_create_tool - First observed
pod_inspect_tool - First observed
pod_list_tool - First observed
pod_restart_tool - First observed
pod_rm_tool - First observed
pod_start_tool - First observed
pod_stop_tool - First observed
service_list_tool - First observed
service_logs_tool - First observed
service_restart_tool - First observed
service_start_tool - First observed
service_status_tool - First observed
service_stop_tool - First observed
system_df_tool - First observed
system_info_tool - First observed
volume_inspect_tool - First observed
volume_list_tool
TDQS
Scored across 30 tools
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.
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.
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.
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
Related MCP Connectors
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
Create, watch, pay for and connect hosted AI agent pods on AgentsPodium. Needs an API key.
Deploy and manage web apps on InstaPods: create pods, push files, run commands, read logs.
Secure tunneling, reverse proxy and remote access for local applications.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables 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-
- AlicenseAqualityDmaintenanceEnables AI assistants to manage Docker containers, execute commands inside them, and inspect container information through a minimalist set of tools supporting both stdio and HTTP transports.339 npm1MIT
- AlicenseNot gradedqualityAmaintenanceEnables 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.1MIT
- AlicenseNot gradedqualityCmaintenanceProvides 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 npmMIT