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 ToolC
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?
No annotations and no output schema burden relief in the text. Works since the schema already describes the parameters adequately and an output schema exists. The description adds nothing about whether the container must exist, error behavior, or what 'detailed' encompasses, which matters given siblings deliberately excluded from the shortlist. There is no contradiction, but the description adds no behavioral context at all.
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. It's concise, but the brevity comes at the cost of any disambiguation 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?
A single-param read tool does not need much, but given 30 siblings with heavy overlap in naming (inspect/list/stats/top/logs across container, pod, image, network, volume), the description should at least say what it returns or when to prefer it. It provides neither, leaving the agent to route purely on the name.
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 parameter is fully documented in the schema, so the baseline is 3. The description adds no format or semantics beyond that.
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/inspect) and resource (container) plus what it returns ('detailed information'). However, it does nothing to distinguish itself from siblings like container_list_tool, container_top_tool, container_stats_tool, or the many other inspect tools. An agent must infer from the name alone that this is the deep-inspection option.
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 and no exclusions. It doesn't tell the agent to prefer container_list_tool for enumeration or container_stats_tool/container_top_tool for live runtime metrics, which is the key routing decision in this crowded sibling set.
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 ToolC
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?
No annotations are provided, so the description carries the full burden, yet it discloses nothing about behavior: no mention of pagination via limit, no note that non-running containers are hidden by default, and no statement about read-only semantics (only weakly implied by "List"). For a zero-annotation tool this is a substantial 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?
The single sentence is maximally short and front-loaded, with nothing wasted, which is structurally sound. However, at two words it is under-specified rather than genuinely concise, so it cannot score higher despite the efficient form.
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 parameter coverage is complete in the schema. What remains missing is any context about the default running-only scope and filtering behavior, which matters for correct invocation of a container listing tool with 29 siblings.
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 and the description need not repeat them. The description adds no extra parameter meaning, which is the expected baseline-3 outcome 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?
"List containers" restates the tool name (container_list_tool) and title almost verbatim, so it adds no distinguishing information beyond the name itself. The verb+resource pair is present, but there is no differentiation from the many sibling list tools (pod_list_tool, network_list_tool, volume_list_tool, image_list_tool).
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 is given about when to use this tool versus the sibling list tools, nor any prerequisite information. The default-only-running behavior exists but appears only in the schema, not the description, so an agent gets no usage context from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
container_logs_toolContainer Logs ToolC
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?
With no annotations provided, the description carries full behavioral disclosure but only implies a read operation. It does not state whether logs stream continuously, require specific permissions, have rate limits, or what happens with the 'tail'/'since' defaults beyond what the schema already documents.
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 and is front-loaded. However, it is arguably too terse for a four-parameter tool, bordering on under-specification rather than optimal 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?
Although an output schema exists and schema coverage is complete, the description lacks essential context for an agent: it offers no usage guidance, no behavioral notes (e.g., streaming or permissions), and no differentiation from siblings. For a tool with four parameters and no annotations, this is insufficiently complete.
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 all four parameters are already well-documented in the input schema. The description adds no additional parameter meaning or syntax, so 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 and resource ('Get container logs'), making the basic action clear. However, it does not distinguish itself from siblings like container_inspect_tool or container_stats_tool, leaving the agent to infer that this tool specifically retrieves log output.
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 tool versus alternatives such as container_inspect_tool or container_stats_tool. There are no prerequisites, exclusions, or context for selecting it among the many container-related siblings.
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 ToolB
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?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only operation via 'Get' but does not state whether the stats are a snapshot or stream, whether the call may be resource-intensive, what permissions are required, or any other behavioral trait beyond the basic retrieval.
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 sized for the simplicity of the tool and conveys the core action immediately.
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 single parameter is fully documented in the schema. However, with no annotations, the description lacks usage guidelines and behavioral context (e.g., performance impact, output freshness), leaving it minimally viable but with clear 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?
The input schema has 100% description coverage for the single 'name' parameter, so the schema already documents the parameter semantics. The description adds no additional meaning beyond what the schema provides, which is acceptable given the high coverage, leading to the baseline score of 3.
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 (Get) and resource (container resource usage statistics), making the purpose clear. However, it does not distinguish this tool from siblings like container_inspect_tool, container_top_tool, or container_logs_tool, which also provide container 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 explicit guidance on when to use this tool versus alternatives such as container_inspect_tool or container_top_tool. The description only implies its usage context by naming the resource, but no when/when-not conditions or alternatives are provided.
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 ToolC
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?
With no annotations, the description carries the full behavioral burden and discloses almost nothing: it implies a read-only lookup but never states it, and says nothing about permissions, error behavior when the name is unknown, or scope. An output schema exists so return format needs no explanation, but the safety/behavior profile is unaddressed.
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 filler and the resource front-loaded. It is appropriately sized for a simple one-parameter tool, though it is so terse that it borders on under-specification rather than true concision.
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 covers return values and the lone parameter is fully documented, so the core contract is intact. However, with no annotations anywhere in the definition, the description should compensate with at least read-only intent, and it does not.
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 parameter and schema description coverage is 100% ('Image name, tag, or ID'), so the schema fully documents it. The description adds no syntax, format, or matching-rule detail beyond the schema, making the baseline of 3 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 (get detailed information) and resource (image), so the agent knows it's a read operation returning image details. It doesn't explicitly differentiate from image_list_tool, but the inspect/list split is implied by naming convention shared across the sibling set.
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 or when-not-to-use guidance is given, and no alternative is named (e.g., image_list_tool for enumerating images). The agent must infer from the name alone that this is the detailed single-image lookup rather than a listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
image_list_toolImage List ToolC
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?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing about read-only semantics, pagination, result ordering, or default scoping. "List" weakly implies a safe read, but that is inference rather than disclosure.
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?
At two words, this is under-specified rather than concise; there is no front-loaded scope or qualifier to structure. It is short, but brevity here reflects missing information rather than efficiency.
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 leaves the agent without listing scope, filter behavior, or pagination limits for a tool that sits among many similarly named list tools. It is not misleading, but it is materially incomplete.
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 a concrete example. Per the high-coverage baseline, 3 is appropriate, since the description adds no filter syntax or semantics of its own.
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 ("List images"), so an agent can tell it acts on images rather than containers, pods, networks, or volumes. However, it adds nothing beyond the tool name and does not clarify scope (all images vs. filtered) relative to image_inspect_tool or image_pull_tool.
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 mention of alternatives such as image_inspect_tool for detail or image_prune_tool for cleanup, and no indication of prerequisites. 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.
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 ToolC
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?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only operation via 'Get' but says nothing about permissions, error behavior, or whether the network must already exist.
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 sentence, front-loaded, with no wasted words. It is extremely terse, but the structure is clean and appropriately sized for a one-parameter 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?
The param is fully documented and an output schema exists, so return values need not be explained. Still, for an inspect tool in a large sibling set, the description omits routing guidance and behavioral caveats, leaving it adequate but incomplete.
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 already has a description ('Network name or ID'). The description only says 'about a network', adding no syntax or meaning beyond what the schema provides, so 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 (Get) and resource (network), so the basic purpose is clear. However, it does not differentiate from sibling tools like network_list_tool or other inspect tools; 'detailed information' is generic.
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?
Gives no when-to-use guidance, prerequisites, or alternative routing. It never mentions network_list_tool or when an agent should prefer inspect over list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
network_list_toolNetwork List ToolC
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?
No annotations are provided, so the description carries the full behavioral burden, and it discloses essentially nothing: no read-only confirmation, no note that the optional filter is a key/value match, no indication of result size or ordering. 'List' weakly implies a non-mutating read, which is the only behavioral signal available.
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, front-loaded with the verb, with zero wasted text — but the brevity reflects under-specification rather than disciplined concision given the available routing information for sibling list/inspect tools.
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, with no annotations and only a fragment of a sentence, the definition omits any disambiguation from network_inspect_tool and any guidance on the filters parameter, leaving the agent to guess.
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 parameter 'filters' is documented in the schema as 'Filter by key/value pairs' with a default of null. The description adds no syntax, matching semantics, or examples 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 clear verb+resource pair ('List networks'), so an agent immediately knows this returns network entities rather than containers, pods, volumes, or images. It does not differentiate from the closest sibling, network_inspect_tool, nor state scope (all networks vs. filtered).
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 the alternative network_inspect_tool for detailed single-network data, and no note about when the optional filters argument is appropriate. 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.
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 ToolC
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?
No annotations are provided, so the description carries the full behavioral burden. 'Get' implies a read-only operation, but the description says nothing about whether this requires permissions, whether it hits a live runtime or a store, or whether it is safe to call repeatedly. With no annotations 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?
One short, front-loaded sentence with no waste. It is efficient, though the brevity comes at the cost of the guidance that is missing elsewhere.
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 there is only one required parameter. What is missing is routing context against pod_list_tool and any behavioral note for a mutation-free but annotation-less tool, leaving it only minimally viable.
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 there is a single 'name' parameter documented as 'Pod name or ID', so the schema does the heavy lifting. The description adds no format or resolution detail beyond that, which is the expected baseline when coverage 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 ('Get detailed information') and resource ('pod'), which is clearer than the bare name. However, it never distinguishes itself from pod_list_tool, the obvious sibling an agent might confuse it with; 'detailed' implies inspection but does not explicitly contrast with listing.
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 and no alternative named. The agent must infer that this is for a single known pod rather than enumerating pods, which pod_list_tool would cover. Nothing states prerequisites such as whether the pod must exist or be running.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pod_list_toolPod List ToolC
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?
No annotations are provided, so the description carries the full burden of behavioral disclosure, and it says nothing about whether the operation is read-only, whether results are paginated, or what scope is returned. Only the verb "List" weakly implies a non-mutating read.
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 front-loaded and free of padding, but this is under-specification rather than conciseness — the brevity removes information an agent needs rather than tightening it.
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 a list tool with a filter parameter and no annotations still needs at least scope and filter-behavior context. 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?
The single filters parameter has 100% schema description coverage including an example ({"name": ["mypod"]}), so the schema does the work. The description adds no syntax or semantics beyond what the schema already states, making the baseline 3 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 gives a verb+resource ("List pods"), so the basic operation is unambiguous. However, it effectively restates the tool name pod_list_tool and offers no scope detail (all pods? running pods? current namespace?) that would separate it from pod_inspect_tool or pod_start_tool.
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_list_tool sibling, and no mention of prerequisites or context. The agent must infer everything from the name alone.
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 ToolA
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?
With no annotations, the description carries the full behavioral burden. The verb 'Get' implies a read-only operation, and the return summary is helpful, but it does not explicitly state safety, side effects, permissions, or rate-limit 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?
The description is front-loaded and concise: one sentence for purpose and one for return categories. Every sentence earns its place without redundancy.
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 zero-parameter read tool with an output schema, the description is largely complete. It states purpose and return categories, though it omits usage context relative to sibling tools.
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 has zero parameters, so the schema is empty and there are no parameter semantics to document. Per the rubric, zero-parameter tools receive a baseline of 4.
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 Podman disk usage.' This clearly distinguishes the tool from sibling tools like system_info_tool, volume_list_tool, and container_stats_tool because it is the only one focused on aggregate disk 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?
The description does not explain when to use this tool versus alternatives such as system_info_tool or volume_list_tool. It only states what the tool does, leaving usage context to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_info_toolSystem Info ToolA
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?
With no annotations, the description carries the full burden. 'Get' establishes a read-only operation and the Returns block enumerates the categories of information (version, storage, registries, runtime), but it says nothing about permission requirements (rootless vs root), cost, or whether any system state is touched, which is a meaningful gap for a zero-annotation 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?
Two short lines, verb-and-resource front-loaded, with the return contents separated into a Returns block. Nothing is padded, though the Returns block largely duplicates what the output schema already provides.
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 inspection tool with an output schema present, the description supplies enough for correct invocation: what it retrieves and that it takes no arguments. Only the absence of any permission or scope caveat keeps it from being fully complete.
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 are no argument semantics to explain; the baseline for a no-parameter tool applies. The description correctly signals that no filtering or scoping is available.
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 clearly separates it from the container/pod/image/network/volume siblings that all operate on a named object. It stops short of explicitly contrasting itself with the closest sibling, system_df_tool, so it is clear but not fully differentiated.
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?
Usage is only implied: an agent can infer this is the system-wide read used when no specific container, pod, or image is the target. There is no statement of when-not to use it or why one would pick it over system_df_tool, both of which are read-only system queries.
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 ToolC
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?
No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about read-only semantics, permissions, or behavior on a nonexistent volume. The output schema covers return values, but the description adds no behavioral context 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?
A single front-loaded sentence with zero waste. It is well-structured, though its brevity comes at the cost of substance rather than through tight editing.
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 existence of an output schema means return values need not be explained, and the tool is simple (one required param). However, with no annotations and no usage guidance, the definition is only minimally complete for an agent deciding when and how to call it.
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 single 'name' parameter is fully documented in the schema. The description adds no format or naming-convention detail beyond the schema, 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?
The description pairs the specific verb 'Get detailed information' with the resource 'volume', making the operation unambiguous. It implicitly contrasts with the sibling volume_list_tool via 'detailed information', but never names the alternative or states the distinction 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?
There is no when-to-use guidance, no mention of when to prefer volume_list_tool versus this inspection tool, and no stated prerequisites. The single sentence offers no routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
volume_list_toolVolume List ToolC
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?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing. 'List' implies a read operation, but there is no mention of pagination, result ordering, whether the operation is read-only, or any permission requirement. For a 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?
At two words it is certainly concise and front-loaded, but the brevity reflects under-specification rather than efficiency. It does not waste words, yet it also fails to earn its place by conveying anything beyond the title.
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 essential context: what the filter keys are, the scope of the listing, and how it relates to the sibling volume_inspect_tool. For a tool in a large sibling set, this is not complete enough to guide reliable invocation.
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 single 'filters' parameter has 100% schema description coverage ('Filter by key/value pairs'), so the schema already carries the parameter semantics. The description adds nothing beyond that, which places it at 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?
'List volumes' names a specific verb and resource, so the basic action is unambiguous. However, it gives no scope (all volumes? filtered?) and does not differentiate itself from the many sibling list/inspect tools such as volume_inspect_tool or network_list_tool. It is the minimum needed to identify the operation but adds no distinguishing detail.
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: nothing explains when to call this versus volume_inspect_tool, nor whether a container/pod context is required. The reader 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 targets a clearly distinct resource and action, e.g., container stop vs kill vs prune vs rm are unambiguous. Pod, image, network, volume, and system operations are also well separated with no meaningful overlap.
All 30 tools follow a consistent snake_case resource_action_tool pattern, such as container_list_tool, pod_create_tool, and image_pull_tool. The uniform suffix and verb placement make the naming predictable throughout.
With 30 tools, the server exceeds the recommended range and feels over-granular for an MCP surface. Although Podman has a broad domain, several operations could be consolidated or grouped to reduce the tool count.
Core container, pod, and image lifecycle operations are covered, but notable gaps remain: no network or volume creation/removal, no image build/push, no container exec, and no pod pause/unpause. These missing operations limit common Podman workflows.
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.3109 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables 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.91 npmMIT