Skip to main content
Glama
friendlygeorge

docker-mcp-server

@supernova123/docker-mcp-server

npm version npm downloads License: MIT MCP Claude Desktop

Awesome Glama

The Docker MCP server designed for agents that need their containers to stay running.

Runs locally. No API keys. No paid plan. Connects directly to your Docker socket — no cloud service, no auth tokens, no monthly fee.

Without this: Your agent deploys a container, it crashes at 3am, and nobody notices until the user complains. Compose stacks drift. Health checks are manual. Logs are scattered across terminals.

With this: Your agent checks health, watches for readiness, restarts crashed containers, and follows logs, all through a single MCP interface. Containers stay running because your agent knows how to keep them running.

Why This Server?

There are 11+ Docker MCP servers on npm. Most are stale, GPL-licensed, or only cover basic CRUD. This one is different:

This server

ckreiling/mcp-server-docker

docker/hub-mcp

License

MIT

GPL-3.0

Apache-2.0

Runs locally

✅ No API keys, no paid plan

❌ Requires Docker Hub auth

Last updated

Active

Jun 2025 (stale)

Active

Health checks

✅ HTTP/TCP/exec probes

Auto-restart

✅ set_restart_policy

Compose lifecycle

✅ up/down/ps/logs/restart

Log streaming

✅ tail + timestamp filter

Basic

Basic

Fleet monitoring

✅ 6 fleet tools (status, stats, events, logs, thresholds, dashboard)

Agent positioning

✅ Built for agents

Generic Docker

Registry API

Related MCP server: Docker Manager MCP

Use Cases

Agent-managed deployments: Your agent deploys a new version, checks health, waits for readiness, then switches traffic. If the health check fails, it auto-rolls back.

Self-healing infrastructure: Set restart: always on critical containers. Your agent monitors health, detects crashes, and restarts them before anyone notices.

Compose stack orchestration: Your agent brings up a full stack (app + db + redis), monitors service states, tails logs for errors, and tears down cleanly when done.

Debugging sessions: Your agent execs into a container, runs diagnostics, streams logs with timestamp filters, and captures stats — all without SSH.

How It Works

Here's what an agent actually does with this server during a deployment:

1. Deploy:      run_container(image="myapp:v2", ports={8080:80})
2. Health check: check_health(container="myapp", type="http", path="/ready")
3. Wait:        watch_health(container="myapp", timeout=30)
4. Monitor:     fleet_status()  → see all containers, health states, uptime
5. Watch:       watch_events(window=60)  → detect crashes, restarts, health changes
6. Debug:       search_logs(pattern="ERROR", containers=["myapp"])
7. Rollback:    recreate_container(name="myapp", image="myapp:v1")  if v2 fails

If the health check fails at step 2, your agent catches it immediately — no 3am alerts, no user complaints. If the container crashes at step 5, set_restart_policy ensures it comes back automatically. The agent doesn't just deploy containers — it keeps them running.

Blog Posts

Real data from building and running this server:

Built by Nova

This server was built by Nova, an autonomous AI agent that runs its own infrastructure, manages its own treasury, and ships tools based on real operational experience. Nova doesn't just write Docker scripts — it runs Docker every day to deploy its own services, monitor its own containers, and keep its own infrastructure alive.

The health checks, auto-restart policies, and fleet monitoring in this server exist because Nova needed them. Every tool solves a problem Nova actually hit.

Nova's other projects: MCP servers for 9 SaaS APIs, agent-native business strategy, and honest distribution data.

License

MIT

Available Tools

31 tools
build_imageB

Build a Docker image from a Dockerfile or build context path.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYesBuild context path or Dockerfile content
tagYesTag for the built image (e.g., 'myapp:v1')
dockerfileNoDockerfile name relative to context (default: 'Dockerfile')
build_argsNoBuild arguments
targetNoTarget build stage

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states what it does, not behavioral traits like whether it overwrites existing tags, permissions needed, or side effects. It lacks essential transparency for an agent.

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

Conciseness3/5

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

The description is a single sentence with no wasted words, but it is too terse given the complexity of the tool. It sacrifices necessary detail for brevity.

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

Completeness2/5

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

Despite 5 parameters including nested objects and no output schema, the description provides no information about return values, errors, or nuances like the build process. It is incomplete for a complex operation.

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

Parameters3/5

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

Schema coverage is 100% with each parameter having a description. The tool description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Build' and the resource 'Docker image', and specifies the two ways to build (from a Dockerfile or build context path). This distinguishes it from sibling tools like pull_image or run_container.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., when to pull vs build) or any prerequisites. The description only says 'from a Dockerfile or build context path' without context for decision-making.

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

check_healthB

Run a health probe against a container. Supports HTTP, TCP, and exec probes. Auto-detects from container HEALTHCHECK if available.

ParametersJSON Schema
NameRequiredDescriptionDefault
container_idYesContainer ID or name
typeNoProbe type (default: auto-detect from HEALTHCHECK)
endpointNoHTTP endpoint or TCP port
commandNoCommand for exec probe

TDQS

B3.4/5.0
Behavior3/5

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

Discloses auto-detection behavior and supported probe types. No annotations exist, but description does not cover error handling, timeout, or return value behavior.

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

Conciseness5/5

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

Two sentences that front-load purpose and efficiently add capability details. No wasted words.

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

Completeness3/5

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

Covers basic purpose and types, but lacks output description or error cases. Without output schema, more detail on results would improve completeness.

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

Parameters4/5

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

Adds value beyond schema by explaining auto-detection and default behavior. Schema coverage is 100%, but description clarifies the enum semantics and optional parameters.

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

Purpose4/5

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

Clearly states 'Run a health probe against a container' with supported types. Differentiates from sibling 'watch_health' by describing a one-time probe action, but does not explicitly contrast.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'watch_health'. Description focuses on capabilities rather than usage context or exclusions.

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

compose_downA

Tear down Docker Compose services. Optionally remove named volumes.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to docker-compose.yml file or its parent directory
volumesNoRemove named volumes (default: false)
timeoutNoShutdown timeout in seconds (default: 10)

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description discloses the optional volume removal, but lacks other behavioral details such as what happens to containers and networks, which is standard for docker-compose down.

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

Conciseness5/5

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

Two front-loaded sentences with no wasted words, efficiently communicating the tool's purpose and a key option.

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

Completeness2/5

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

The description is minimal for a tool with no output schema, omitting expected return values or confirmation messages, leaving the agent with incomplete context.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds minimal value beyond the schema, only reinforcing the 'volumes' option. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Tear down' and the resource 'Docker Compose services', distinguishing it from siblings like compose_up or compose_restart.

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

Usage Guidelines3/5

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

The description implies usage for tearing down services but offers no explicit guidance on when to use versus alternatives, nor does it mention prerequisites or exclusions.

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

compose_logsC

Tail logs from Docker Compose services. Supports filtering by service and line count.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to docker-compose.yml directory
servicesNoSpecific services to tail
tailNoNumber of lines to show (default: 100)
followNoFollow log output (default: false)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It fails to mention that the tool is essentially a read operation, the effect of the 'follow' parameter on output streaming, or any potential rate limits or performance implications. The description is too brief to be transparent.

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

Conciseness5/5

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

The description is concise at two sentences, with the main action and resource upfront. Every sentence adds value without redundancy.

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

Completeness2/5

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

For a logging tool with 4 parameters and no output schema, the description lacks details about the return format (e.g., log lines), behavior of 'follow', error handling, and expected usage patterns. It is insufficient for an agent to fully understand the tool's behavior.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds 'filtering by service and line count' which aligns with parameters 'services' and 'tail', but does not add new semantics beyond what the schema already provides.

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

Purpose4/5

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

The description clearly states the verb 'Tail' and resource 'logs from Docker Compose services', and mentions filtering by service and line count. It is specific but does not explicitly distinguish from the sibling tool 'stream_logs' which may have similar functionality.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'stream_logs' or other log-related tools. There is no mention of prerequisites or exclusions.

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

compose_psB

List service states across a Docker Compose stack.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to docker-compose.yml file or its parent directory

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the action (listing service states) without mentioning permissions, side effects, or error conditions. The description is too minimal to ensure safe invocation.

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

Conciseness5/5

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

The description is a single, concise sentence with no extraneous words. It is perfectly front-loaded and efficient.

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

Completeness3/5

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

Without an output schema or additional details, the description is adequate but lacks information on return format, error handling, or behavior for invalid paths. Given the low complexity, it meets the minimum viable level but leaves gaps.

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

Parameters3/5

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

The input schema has 100% description coverage for the single parameter 'path', so the description adds no new meaning. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description 'List service states across a Docker Compose stack' clearly specifies the verb (List) and resource (service states), and it distinguishes the tool from siblings like compose_up and compose_down. It is specific and unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. Given the many sibling tools (e.g., list_containers, container_health_status), the absence of usage context is a significant gap.

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

compose_restartB

Restart Docker Compose services. Restart specific services or the entire stack.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to docker-compose.yml file or its parent directory
servicesNoSpecific services to restart (empty = all)
timeoutNoShutdown timeout in seconds (default: 10)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, and description only uses the verb 'restart' without explaining the actual behavior (e.g., stop vs recreate, downtime, or side effects).

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

Conciseness5/5

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

Two sentences with no redundancy, directly conveys the tool's purpose and scope.

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

Completeness3/5

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

Tool is defined with three well-documented parameters, but lacks details about return values, failure modes, or confirmation steps. Adequate for basic use but not comprehensive.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all parameters; description adds no additional meaning beyond the schema.

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

Purpose4/5

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

Description clearly states it restarts Docker Compose services and can target specific services or the entire stack. Distinguishes from sibling restart_container by specifying compose context.

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

Usage Guidelines2/5

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

No guidance on when to use this vs alternatives like restart_container or compose_up. Does not mention prerequisites or situations to avoid.

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

compose_upB

Bring up Docker Compose services from a docker-compose.yml file. Optionally build images first.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to docker-compose.yml file or its parent directory
buildNoBuild images before starting (default: false)
detachNoRun in detached mode (default: true)
servicesNoSpecific services to start

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It mentions optional image building but does not explain that the tool creates or updates containers, networks, and volumes, or what happens to existing services (e.g., recreation). This is insufficient for a mutation operation.

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

Conciseness5/5

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

The description is a single, well-structured sentence that communicates the core action and a key option. It is efficiently written with no unnecessary words.

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

Completeness2/5

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

Given no output schema and the complexity of Docker Compose orchestration, the description is too sparse. It does not mention service dependencies, volume/networking behavior, or how it differs from building or running individual containers. More context is needed for correct invocation.

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

Parameters3/5

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

The input schema provides 100% coverage with clear descriptions for all four parameters. The description adds only brief context about optional image building, which repeats the schema. Baseline 3 is appropriate as the schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the verb 'Bring up' and resource 'Docker Compose services from a docker-compose.yml file'. It effectively distinguishes from sibling tools like compose_down and compose_restart, which handle different lifecycle operations.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., start_container for single containers or run_container for ad-hoc runs). The description lacks explicit context for preferred usage or exclusions.

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

container_health_statusA

Check health status, uptime, and restart count for all running Docker containers. Returns JSON with container name, state, health probe status, and restart count.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

The description discloses the tool's behavior: it returns a JSON with specified fields for all running containers. However, with no annotations, it lacks details on error conditions (e.g., no containers running, Docker daemon connectivity) and any side effects. The behavior is partially transparent but not exhaustive.

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

Conciseness5/5

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

The description is two sentences, concise and well-structured. It front-loads the purpose and immediately details the output. Every sentence adds value, with no redundancy.

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

Completeness4/5

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

Given the tool's simplicity (no parameters, no output schema), the description covers the essential information: what it does and what it returns. It is complete enough for most use cases, though adding a note about potential errors would increase completeness.

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

Parameters4/5

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

The tool has zero parameters, and the input schema is empty with 100% schema description coverage. According to guidelines, baseline for 0 parameters is 4. No additional meaning needs to be added beyond the schema.

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

Purpose5/5

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

The description clearly states the tool checks health status, uptime, and restart count for all running Docker containers. It specifies the output fields (name, state, health probe status, restart count) and scope ('all running Docker containers'), distinguishing it from siblings like 'check_health' which likely targets a single container.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives like 'check_health', 'container_stats', or 'inspect_container'. The description does not mention prerequisites, limitations, or situations where another tool would be more appropriate.

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

container_resource_usageA

Monitor CPU, memory, and network I/O across all running Docker containers. Returns sorted resource usage metrics with percentage breakdowns.

ParametersJSON Schema
NameRequiredDescriptionDefault
sort_byNoSort results by metric (default: cpu)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must stand alone. It states the tool 'monitors' and 'returns' data, which implies a read-only operation. However, it does not disclose any potential performance impact, authorization requirements, or behavior beyond the basic functionality. The description is adequate but not rich.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded with the action ('Monitor CPU, memory, and network I/O...') and includes key details (all containers, sorted, percentages). Every phrase is necessary and concise.

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

Completeness4/5

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

For a simple tool with one optional parameter and no output schema or annotations, the description covers the essential purpose and output. It could mention that results are for all running containers only and might include a note on data freshness, but it is largely complete.

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

Parameters3/5

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

The input schema has 100% description coverage for the one optional parameter (sort_by) with enum and default. The description adds no new information beyond what is in the schema. With full schema coverage, baseline is 3, and no extra value is provided.

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

Purpose5/5

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

The description clearly states it monitors CPU, memory, and network I/O across all running containers and returns sorted metrics with percentages. It effectively differentiates from sibling tools like container_stats (per-container) and monitor_dashboard (likely a dashboard) by specifying 'across all running Docker containers'.

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

Usage Guidelines3/5

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

The description implies usage for overall resource monitoring but does not explicitly guide when to use this tool versus alternatives like container_stats or monitor_dashboard. No when-not-to-use or comparison is provided, leaving ambiguity for the agent.

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

container_statsB

Get real-time resource usage statistics for a Docker container (CPU, memory, network, I/O).

ParametersJSON Schema
NameRequiredDescriptionDefault
container_idYesContainer ID or name

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden. It indicates a read operation ('Get') but does not disclose potential side effects (e.g., whether repeated calls impose overhead), required permissions, or limitations (e.g., container must be running). The single sentence is insufficient for behavioral context.

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

Conciseness5/5

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

The description is a single, focused sentence with no extraneous words. It front-loads the key purpose and metrics, achieving maximum conciseness without sacrificing clarity.

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

Completeness3/5

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

For a simple one-parameter tool with no output schema and no annotations, the description is adequate but minimally complete. It covers the basic purpose and parameter, but lacks information about the return value format, usage context, or constraints (e.g., container must be running).

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema's parameter description ('Container ID or name'); it repeats the same information. No format hints or examples are provided.

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

Purpose5/5

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

The description clearly states the action 'Get real-time resource usage statistics' and identifies the resource as 'a Docker container', specifying metrics (CPU, memory, network, I/O). This verb+resource combination is distinct from sibling tools like inspect_container or list_containers, making the purpose unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., inspect_container for configuration, stream_logs for logs). The description lacks context about typical use cases or prerequisites, leaving the agent without decision support.

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

exec_in_containerA

Execute a command inside a running Docker container. Returns stdout, stderr, and exit code.

ParametersJSON Schema
NameRequiredDescriptionDefault
container_idYesContainer ID or name
commandYesCommand to execute
working_dirNoWorking directory inside container
envNoEnvironment variables

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool returns stdout, stderr, and exit code, but does not mention whether it blocks until command completion, timeout behavior, or error handling for non-running containers. These details are important for correct invocation.

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

Conciseness5/5

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

The description is a single sentence that immediately conveys the primary action and return values. It is concise, front-loaded, and contains no extraneous information.

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

Completeness3/5

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

Given the tool's complexity and the lack of an output schema, the description should more fully explain the return format (e.g., whether stdout/stderr are strings or arrays) and prerequisites (container must be running). The basic behavior is covered, but gaps remain.

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

Parameters3/5

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

Schema coverage is 100%, meaning all parameters have descriptions in the input schema. The description adds no additional information about parameters beyond what the schema already provides. The baseline score of 3 is appropriate for full schema coverage.

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

Purpose5/5

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

The description clearly states the action (execute a command) and the resource (inside a running Docker container). It also specifies the return values (stdout, stderr, exit code). This distinguishes it from sibling tools like run_container (which creates and starts a container) and stream_logs (which reads logs).

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites (e.g., container must be running) or scenarios where it is not appropriate. While the sibling tool list provides implicit context, the description itself lacks explicit usage guidance.

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

inspect_containerA

Get detailed configuration and state of a Docker container by ID or name.

ParametersJSON Schema
NameRequiredDescriptionDefault
container_idYesContainer ID or name

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, and the description only states it retrieves config/state without disclosing permissions, side effects, or any additional behavioral traits, leaving the agent underinformed.

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

Conciseness5/5

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

A single, well-structured sentence that front-loads the purpose and resource, with no redundant information.

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

Completeness4/5

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

Given the simple one-parameter input and no output schema, the description adequately defines the tool's function. Slightly more detail on return value would be helpful but not necessary.

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

Parameters3/5

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

Schema coverage is 100% with a clear description for the single parameter 'container_id'. The description adds no extra 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.

Purpose5/5

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

The description uses a specific verb 'Get' and resource 'detailed configuration and state of a Docker container', clearly distinguishing it from sibling tools like list_containers or container_stats.

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

Usage Guidelines3/5

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

The description implies usage for retrieving detailed container config/state but provides no explicit when-to-use, when-not-to-use, or alternatives among the many sibling tools.

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

list_containersB

List Docker containers with optional filters (state, label, name). Returns container IDs, names, images, states, ports, and labels.

ParametersJSON Schema
NameRequiredDescriptionDefault
allNoInclude stopped containers (default: false)
labelNoFilter by label (e.g., 'app=web')
nameNoFilter by name (partial match)
stateNoFilter by state

TDQS

B3.4/5.0
Behavior3/5

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

The description discloses that filters are optional and lists return fields, but lacks details on default behavior (e.g., only running containers by default, as inferred from schema 'all=false'). No annotations are present, so the description carries the burden; it is partially transparent but incomplete on safety and defaults.

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

Conciseness4/5

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

The description is a single, front-loaded sentence that effectively communicates the core function. It is concise but could include a brief note on default behavior without losing brevity.

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

Completeness3/5

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

Given no output schema, the description lists return fields adequately. However, it omits details on pagination, output format, sorting, and the default scope (running containers). This leaves some gaps for a list tool.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for each parameter, so the description adds minimal value beyond mentioning 'state, label, name' as filters. Baseline 3 is appropriate since the description does not elaborate on parameter constraints or examples.

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

Purpose5/5

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

The description clearly states the tool 'List Docker containers' with optional filters, which is a specific verb and resource. It also lists the return fields, making the purpose distinct from sibling tools like list_images or list_volumes.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as compose_ps or inspect_container. The description does not mention prerequisites or exclusions, leaving the agent to infer usage from the tool name alone.

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

list_imagesA

List Docker images with optional filters. Returns image IDs, tags, sizes, and creation dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
allNoInclude intermediate images (default: false)
filterNoFilter by reference

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavior. It mentions optional filters and return fields, but lacks details like whether the operation is read-only, default behavior for 'all' parameter, or how intermediate images are handled.

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

Conciseness5/5

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

The description is a single sentence that is concise, front-loaded, and contains no unnecessary words. Every part contributes to clarity.

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

Completeness4/5

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

The description covers the return values (IDs, tags, sizes, creation dates) and mentions filters, which is sufficient for a simple list tool. It lacks details on pagination or error conditions, but given the tool's simplicity, it is acceptable.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds minimal value beyond the schema. It mentions 'optional filters' but does not elaborate beyond what the schema already provides for the 'all' and 'filter' parameters.

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

Purpose5/5

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

The description clearly states the verb 'List', the resource 'Docker images', and the output details (IDs, tags, sizes, creation dates). It effectively distinguishes from sibling tools like build_image or remove_image which have different purposes.

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

Usage Guidelines4/5

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

The description implies usage for listing images with filters, but does not explicitly provide when-to-use or when-not-to-use guidance. However, the name and context make it clear, and sibling tools cover different resources.

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

list_networksA

List Docker networks with optional filter. Returns network IDs, names, drivers, and scopes.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter by name or driver

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only operation ('List') but does not explicitly state that the tool does not modify any resources, nor does it mention authentication, rate limits, or performance characteristics. For a tool with no annotations, more transparency is needed.

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

Conciseness5/5

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

The description is a single sentence of 12 words, front-loading the core purpose ('List Docker networks with optional filter') and including return fields. Every word earns its place with no redundancy.

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

Completeness4/5

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

For a simple list tool with one optional parameter and no output schema, the description adequately states the tool's function and output. It is complete enough for an agent to understand what the tool does, though additional behavioral transparency would improve completeness.

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

Parameters3/5

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

The input schema has 100% description coverage for the single parameter 'filter', and the description repeats 'Filter by name or driver' which matches the schema. The description adds no new meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states that the tool lists Docker networks with an optional filter, and specifies the return fields (IDs, names, drivers, scopes). It uses a specific verb+resource ('List Docker networks') and distinguishes itself from sibling tools like list_containers, list_images, and list_volumes by naming the resource explicitly.

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

Usage Guidelines3/5

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

The description mentions an optional filter but does not provide explicit guidance on when to use this tool versus alternatives or any prerequisites. The resource name itself distinguishes it from siblings, but there is no when-not-to-use advice or context for choosing among list tools.

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

list_volumesA

List Docker volumes with optional filter. Returns volume names, drivers, mount points, and labels.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter by name or driver

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It states what is returned but does not disclose read-only nature, authentication needs, rate limits, or any side effects. It is adequate but lacks depth.

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

Conciseness4/5

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

The description is concise (one sentence) and front-loaded with the main action. It efficiently communicates the tool's primary purpose, though could include more context without significant bloat.

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

Completeness4/5

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

Given no output schema, the description helpfully lists return fields. However, it omits details like whether listing is exhaustive or paginated, which could be critical for an agent. Still, it is reasonably complete for a simple list tool.

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

Parameters3/5

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

Schema coverage is 100%, so the filter parameter is fully described in the schema. The description adds 'optional' but no additional semantics or examples beyond what the schema provides.

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

Purpose5/5

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

Description clearly states the action (list Docker volumes) and the resource. It also mentions an optional filter and specifies the returned fields (volume names, drivers, mount points, labels), distinguishing it from sibling tools like list_containers or list_images.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, nor any conditions or prerequisites. The description only mentions the optional filter but does not provide context for decision-making.

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

monitor_dashboardA

Comprehensive Docker fleet dashboard in a single API call. Returns health status, top resource consumers, recent events, and threshold violations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

Discloses return contents but does not state side effects (likely none), auth needs, or performance characteristics. No annotations to supplement.

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

Conciseness5/5

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

Two concise sentences, no redundancy, front-loaded with key value.

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

Completeness4/5

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

Covers what is returned; no output schema but description is sufficient. Could add more detail on aggregation behavior.

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

Parameters4/5

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

Zero parameters; schema coverage is 100%. No need for additional param info.

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

Purpose5/5

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

Description clearly states it returns a comprehensive dashboard with health, top resource consumers, events, and threshold violations. Distinguishes from sibling tools that are more specific.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this vs alternatives; usage is implied as a broad overview tool.

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

pull_imageB

Pull a Docker image from a registry. Returns pull progress events.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageYesImage to pull (e.g., 'nginx:latest')
tagNoTag to pull (default: 'latest')

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It mentions that the tool returns pull progress events, but does not disclose that it modifies local Docker state, requires network access, or is potentially long-running. Without this information, an agent might misuse the tool.

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

Conciseness5/5

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

The description is two sentences, front-loading the key action and return type. Every word is necessary and there is no redundancy or filler.

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

Completeness3/5

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

Given the tool's simplicity (2 parameters, no output schema, no annotations), the description is adequate but lacks context about the event stream format, potential errors, or dependency on a running Docker daemon. It meets minimum viability but leaves gaps.

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

Parameters3/5

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

Schema coverage is 100%—both parameters are described in the schema. The description does not add any additional meaning beyond the schema's parameter descriptions (e.g., examples or formatting details). Baseline is 3, and no extra value is added.

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

Purpose5/5

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

The description clearly states the action (pull a Docker image from a registry) and the resource (image), which distinguishes it from sibling tools like list_images or remove_image. It also mentions the return type (pull progress events).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like build_image or run_container. It does not specify prerequisites, such as registry access or authentication, which would help an agent decide when this tool is appropriate.

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

recreate_containerA

Recreate a container with the same configuration (stop, remove, re-create). Useful for applying config changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
container_idYesContainer ID or name
timeoutNoSeconds to wait before killing (default: 10)

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the three steps (stop, remove, re-create), but does not explain side effects like volume persistence, network attachment, or potential data loss from removal.

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

Conciseness5/5

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

Two efficient sentences: first states the action, second provides the use case. No waste; every word earns its place.

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

Completeness4/5

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

For a multi-step destructive operation, the description is fairly complete but lacks detail on what 'same configuration' entails and the effect on attached resources. No output schema is needed, but behavioral side effects could be clearer.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both parameters. The description adds no additional meaning beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the action ('recreate a container') and the specific process ('stop, remove, re-create') with the same configuration. It distinguishes from siblings like restart_container (which does not remove) and run_container (which creates new without reusing the same object).

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

Usage Guidelines4/5

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

The description says 'Useful for applying config changes', providing a clear context for use. However, it does not explicitly state when not to use this tool compared to alternatives like restart_container or run_container.

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

remove_containerA

Remove a Docker container by ID or name. Use force to remove running containers.

ParametersJSON Schema
NameRequiredDescriptionDefault
container_idYesContainer ID or name
forceNoForce removal even if running (default: false)

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided. The description does not disclose that container removal is irreversible, lacks details on data loss, or permission requirements. For a destructive action, more transparency is needed.

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

Conciseness5/5

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

Two sentences, no fluff, front-loaded with key information. Every sentence serves a purpose.

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

Completeness4/5

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

For a simple removal tool with two well-documented parameters, the description is mostly complete. Could mention irreversibility, but overall adequate.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both parameters. The description adds value by explaining when to use 'force', but this is minimal beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'remove' and the resource 'Docker container', with scope 'by ID or name'. This distinguishes it from sibling tools like stop_container or list_containers.

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

Usage Guidelines4/5

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

The description provides guidance on using 'force' for running containers, but does not explicitly state when not to use this tool or mention prerequisites like stopping the container first.

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

remove_imageA

Remove a Docker image by name or ID. Use force to remove even if tagged.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageYesImage name or ID
forceNoForce removal (default: false)

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that removal may fail if the image is tagged without force, but lacks details on permissions, irreversibility, or error behavior.

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

Conciseness5/5

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

Two sentences, no filler. The first sentence states the core purpose, and the second provides a specific usage guideline. Perfectly front-loaded and efficient.

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

Completeness4/5

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

For a simple tool with two parameters and no output schema, the description covers the key behavioral aspects. However, it could mention that removal is irreversible or what happens on error (e.g., image not found). Still sufficient for typical use.

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

Parameters4/5

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

Schema coverage is 100%, providing baseline meaning for both parameters. The description adds value for the 'force' parameter by explaining its specific use case (removing tagged images), which goes beyond the schema description.

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

Purpose5/5

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

The description clearly states 'Remove a Docker image by name or ID.' It uses a specific verb (remove) and resource (Docker image), and distinguishes from siblings like build_image, pull_image, and list_images.

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

Usage Guidelines4/5

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

The description includes guidance on using 'force' to remove tagged images, which is a key usage scenario. It does not contrast with alternatives, but among siblings there is no alternative removal tool for images, making the context clear.

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

resource_alert_checkB

Alert when Docker containers exceed resource thresholds (CPU%, memory%, restart count). Returns violations with specific metrics that triggered alerts.

ParametersJSON Schema
NameRequiredDescriptionDefault
cpu_percentNoAlert if CPU usage exceeds this % (default: 80)
memory_percentNoAlert if memory usage exceeds this % (default: 80)
restart_countNoAlert if restart count exceeds this (default: 5)

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It ambiguously states 'alert when containers exceed thresholds' without clarifying if it performs a one-time check or sets up persistent monitoring. No mention of required container state, side effects, or response format beyond 'violations'.

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

Conciseness4/5

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

The description is two short sentences, front-loading the core action. It is concise with no redundancy, though a slightly more structured format (e.g., listing usage context) could improve clarity.

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

Completeness3/5

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

Given 3 parameters, no output schema, and no annotations, the description covers purpose and return statement but lacks details on which containers are checked, the structure of violations, and whether the check is continuous or one-time. Adequate but not comprehensive.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions (cpu_percent, memory_percent, restart_count) and defaults. The tool description adds no additional semantic value beyond restating the threshold types, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool alerts on Docker container resource thresholds (CPU%, memory%, restart count) and returns violations. This distinguishes it from sibling tools like container_resource_usage or check_health, which report current usage or health status without threshold-based alerting.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternative tools (e.g., container_resource_usage for real-time metrics, check_health for health checks). Lacks prerequisites, context, or when-not-to-use instructions.

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

restart_containerC

Restart a Docker container by ID or name with optional timeout.

ParametersJSON Schema
NameRequiredDescriptionDefault
container_idYesContainer ID or name
timeoutNoSeconds to wait before killing (default: 10)

TDQS

C2.9/5.0
Behavior2/5

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

The description lacks behavioral details beyond the name. It does not explain whether the container is stopped gracefully, what happens if it is already stopped, or the effect of the timeout parameter (e.g., force kill after timeout). Without annotations, this is insufficient for an agent to understand 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.

Conciseness4/5

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

The description is a single sentence with no unnecessary words. It is concise and front-loaded with the core action. However, it could be slightly more informative without increasing length.

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

Completeness2/5

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

The description is too minimal for a potentially disruptive operation like restarting a container. It does not mention return values, error conditions (e.g., container not found), or preconditions. Without an output schema or annotations, more detail is needed.

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

Parameters3/5

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

Schema coverage is 100% and both parameters have descriptions in the schema. The description adds no new meaning; it only restates what is already in the schema. Baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action (restart), the resource (Docker container), and how to identify it (by ID or name). It also mentions the optional timeout, which distinguishes it from a simple start/stop. However, it does not differentiate from the sibling tool compose_restart, which restarts a Compose service.

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

Usage Guidelines2/5

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

There is no guidance on when to use restart_container versus alternatives like stop_container + start_container, or when the timeout parameter is appropriate. The description provides no context about prerequisites or typical use cases.

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

run_containerA

Create and start a new Docker container with one command. Supports image, env, ports, volumes, restart policy, and command override. Auto-pulls missing images.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageYesImage name (e.g., 'nginx:latest')
nameNoContainer name
envNoEnvironment variables
portsNoPort mappings (e.g., {'8080/tcp': '80/tcp'})
volumesNoVolume mounts (e.g., ['/host/path:/container/path'])
restart_policyNoRestart policy
commandNoOverride command
detachNoRun in detached mode (default: true)

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It transparently states that it auto-pulls missing images and supports common options, but does not disclose potential side effects (e.g., container creation failing due to port conflicts) or the output format. The transparency is adequate but not complete.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the core action ('Create and start a new Docker container'), followed by a list of supported features. Every sentence adds value, no fluff or repetition.

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

Completeness2/5

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

Given 8 parameters, no output schema, and no annotations, the description is incomplete. It does not explain what the tool returns (e.g., container ID, status), how to handle common errors (e.g., port conflicts, permission issues), or how it interacts with the container lifecycle (e.g., if the container already exists). Users would need to look elsewhere for essential usage details.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description simply lists the supported parameters without adding new meaning beyond 'Supports image, env, ports, volumes, restart policy, and command override.' This adds little value beyond the schema, meeting the baseline of 3.

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

Purpose5/5

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

The description clearly states the tool creates and starts a new Docker container, listing supported features like image, env, ports, volumes, restart policy, and command override. It distinctly differentiates from sibling tools like start_container (which starts an existing container) and build_image (which builds an image).

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives. It mentions auto-pulling missing images, which implies it is used for creating containers from images, but no comparative guidance is given. Users may not know when to prefer this over compose_up or start_container.

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

search_logsA

Search Docker container logs across multiple containers using regex pattern matching. Returns matching log lines with container name and timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
patternYesRegex or grep pattern to search for
containersNoSpecific containers to search (default: all running)
tailNoMax lines to scan per container (default: 500)
sinceNoOnly search logs since timestamp
ignore_caseNoCase-insensitive search (default: false)

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description bears the full burden. It states that the tool returns matching log lines with container name and timestamp, but does not disclose potential performance impacts, limits, or behavior when no matches are found. It does not contradict any annotations.

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

Conciseness5/5

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

The description is a single sentence with 17 words, front-loading the action ('Search Docker container logs'). Every word is necessary, and there is no superfluous information. It is highly efficient.

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

Completeness3/5

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

Given the moderate complexity (5 parameters, no output schema), the description is somewhat complete but lacks details on return format structure, pagination, or error behavior. It does not explain the format of timestamps or how multiple matches are presented. For a search tool, more completeness would be beneficial.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no extra parameter semantics beyond the schema; it only reiterates the regex matching aspect. Each parameter's description in the schema is already clear, so the tool description provides no additional value.

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

Purpose5/5

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

The description clearly states it searches Docker container logs using regex pattern matching across multiple containers, and specifies the return format includes container name and timestamp. This distinguishes it from sibling tools like stream_logs (real-time streaming) and compose_logs (specific to docker-compose).

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

Usage Guidelines3/5

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

The description does not explicitly indicate when to use this tool versus alternatives like stream_logs or compose_logs. It implies usage for regex-based search across containers but lacks guidance on exclusions or context where other tools would be more appropriate.

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

set_restart_policyB

Change the restart policy of a running container without recreating it.

ParametersJSON Schema
NameRequiredDescriptionDefault
container_idYesContainer ID or name
policyYesRestart policy
max_retry_countNoMax retry count for on-failure (default: 0)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only mentions the change happens 'without recreating' but does not disclose side effects, prerequisites (e.g., container must be running?), permissions, or what happens to existing state.

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

Conciseness5/5

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

The description is a single concise sentence that effectively communicates the purpose and a key behavioral trait without unnecessary words.

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

Completeness3/5

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

Given the lack of annotations and output schema, the description is minimal. It covers the basic action but does not address edge cases, prerequisites, or return behavior. The schema covers parameters well, so completeness is adequate but not thorough.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema; it does not explain the effect of each policy value or the max_retry_count parameter beyond what is in the schema.

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

Purpose5/5

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

The description clearly states the verb 'Change' and the resource 'restart policy of a running container' and adds the key behavioral detail 'without recreating it', distinguishing it from sibling tools like recreate_container.

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

Usage Guidelines2/5

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

The description does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or when-not-to-use scenarios. The sibling list is extensive but no guidance is given.

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

start_containerA

Start a stopped Docker container by ID or name.

ParametersJSON Schema
NameRequiredDescriptionDefault
container_idYesContainer ID or name

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It implies the container must be stopped, but does not mention what happens if it is already running, error cases, or required permissions.

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

Conciseness5/5

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

A single, concise sentence that conveys the essential information without any fluff.

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

Completeness4/5

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

For a simple action with one required parameter and no output schema, the description is mostly complete. It could mention the return status or side effects, but it is sufficient.

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

Parameters3/5

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

Only one parameter (container_id) with schema description 'Container ID or name'. The description adds no extra meaning beyond the schema, so baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states the action (start), the resource (stopped Docker container), and how to specify it (by ID or name). It distinguishes from sibling tools like stop_container and restart_container.

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

Usage Guidelines4/5

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

It specifies when to use the tool (for starting stopped containers). No explicit exclusions or alternatives are given, but the purpose is clear from the name and context.

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

stop_containerA

Stop a running Docker container by ID or name with optional timeout.

ParametersJSON Schema
NameRequiredDescriptionDefault
container_idYesContainer ID or name
timeoutNoSeconds to wait before killing (default: 10)

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Does not disclose behavior if container is already stopped, or what 'timeout' does (e.g., force kill after timeout). Minimal behavioral detail beyond the basic action.

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

Conciseness5/5

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

Single sentence, front-loaded with verb and resource, no extraneous words. Efficient and direct.

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

Completeness3/5

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

Tool is simple (2 params, no output schema). Description covers basic usage but omits context like requiring a running container or describing output. Adequate but could be slightly more complete.

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

Parameters3/5

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

Schema covers both parameters (container_id, timeout) with descriptions. Description adds 'by ID or name' and 'optional timeout' but does not provide additional meaning beyond schema. Baseline 3 as schema coverage is 100%.

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

Purpose5/5

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

Clearly states the action (stop), resource (Docker container), and identification method (by ID or name) with an optional timeout. Differentiates from siblings like restart_container or remove_container.

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

Usage Guidelines3/5

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

Does not explicitly state when to use vs alternatives (e.g., differentiate from restart_container or remove_container). No prerequisites mentioned (container must be running). Adequate for a simple tool but lacks explicit guidance.

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

stream_logsC

Get logs from a Docker container. Supports tail count, timestamp filtering, and follow mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
container_idYesContainer ID or name
tailNoNumber of lines to show (default: 100)
sinceNoShow logs since timestamp (e.g., '2026-01-01T00:00:00Z')
followNoFollow log output (default: false)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It mentions supported features ('tail count, timestamp filtering, follow mode') but does not explain that follow mode may run indefinitely, nor does it cover rate limits, error behavior, or the read-only nature of the operation.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the core purpose. No extraneous words or repetition.

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

Completeness2/5

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

Given the tool's streaming nature and lack of an output schema, the description should indicate the output format (continuous log lines) and note that follow mode may result in a long-running operation. It fails to do so, leaving the agent with incomplete context for correct invocation.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already describes each parameter. The description reiterates the capabilities ('tail count, timestamp filtering, follow mode') but adds no new semantic information beyond what is in the schema.

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

Purpose4/5

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

The description clearly states the verb 'Get logs' and the resource 'Docker container', making the purpose evident. However, it does not explicitly distinguish from sibling tools like 'compose_logs', which may operate similarly but on a different resource type.

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

Usage Guidelines2/5

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

No guidelines are provided on when to use this tool versus alternatives such as 'compose_logs' or 'inspect_container'. The description lacks context about prerequisites or typical scenarios.

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

watch_eventsB

Stream Docker container events (start, stop, die, restart, health_status) over a configurable time window. Filter by specific container or event type.

ParametersJSON Schema
NameRequiredDescriptionDefault
containerNoFilter by container name or ID
event_typeNoFilter by event type (default: all)
sinceNoShow events since timestamp (e.g., '2026-01-01T00:00:00Z')
durationNoMax seconds to listen (default: 30)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It mentions streaming and a configurable time window but does not explain the output format, real-time nature, resource implications, or side effects of the tool.

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

Conciseness5/5

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

The description is concise and front-loaded, stating the action and event types in the first sentence, with no extraneous words. Every sentence earns its place.

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

Completeness2/5

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

The description lacks information about the output format (e.g., JSON events) and error handling. For a streaming tool with no output schema, this is inadequate for complete understanding.

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

Parameters3/5

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

Schema coverage is 100% with all parameters described. The description adds context about streaming events and filtering but does not provide additional semantic value beyond the schema, warranting a baseline score of 3.

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

Purpose5/5

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

The description clearly states it streams Docker container events with specific event types listed (start, stop, die, restart, health_status) and mentions filtering by container or event type, distinguishing it from siblings like stream_logs or watch_health.

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

Usage Guidelines3/5

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

The description implies usage for monitoring container events but does not explicitly state when to use this tool versus alternatives like stream_logs or watch_health, nor does it provide exclusion criteria or prerequisites.

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

watch_healthA

Poll a container's health status until it becomes healthy or times out. Useful for waiting on service startup.

ParametersJSON Schema
NameRequiredDescriptionDefault
container_idYesContainer ID or name
timeoutNoMax seconds to wait (default: 60)
intervalNoSeconds between polls (default: 5)

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses polling behavior and timeout, but lacks details on the return value on timeout, error handling, or side effects. The description adds some context beyond the schema but could be more specific.

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

Conciseness5/5

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

The description is extremely concise with two sentences, front-loading the action and purpose, and contains no unnecessary text.

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

Completeness4/5

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

Given the lack of output schema and annotations, the description covers the main functionality and use case. However, it omits details on timeout behavior and output interpretation, which would be helpful for completeness.

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

Parameters3/5

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

Schema coverage is 100% with each parameter having a description. The tool description does not add any additional meaning beyond what is in the schema, so a baseline of 3 is appropriate.

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

Purpose5/5

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

The description specifies a clear verb ('poll') and resource ('container health status'), and distinguishes itself from siblings like 'check_health' by emphasizing polling until healthy or timeout, making it suitable for waiting on startup.

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

Usage Guidelines4/5

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

The description mentions it is 'useful for waiting on service startup', providing a clear use case. However, it does not explicitly state when not to use it or mention alternatives like 'check_health' for one-off checks.

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. Dates show when Glama detected each change.

  1. 10 tool updatesv0.1.6
    • Changedcompose_down1 field changed
      • changedInput schema / properties / path / description
        Previous value: -"Path to docker-compose.yml directory"New value: +"Path to docker-compose.yml file or its parent directory"
    • Changedcompose_ps1 field changed
      • changedInput schema / properties / path / description
        Previous value: -"Path to docker-compose.yml directory"New value: +"Path to docker-compose.yml file or its parent directory"
    • Changedcompose_restart1 field changed
      • changedInput schema / properties / path / description
        Previous value: -"Path to docker-compose.yml directory"New value: +"Path to docker-compose.yml file or its parent directory"
    • Changedcompose_up1 field changed
      • changedInput schema / properties / path / description
        Previous value: -"Path to docker-compose.yml directory"New value: +"Path to docker-compose.yml file or its parent directory"
    • Addedcontainer_health_status
    • Addedcontainer_resource_usage
    • Addedmonitor_dashboard
    • Addedresource_alert_check
    • Addedsearch_logs
    • Addedwatch_events
  2. 25 tool updatesv0.1.0
    • First observedbuild_image
    • First observedcheck_health
    • First observedcompose_down
    • First observedcompose_logs
    • First observedcompose_ps
    • First observedcompose_restart
    • First observedcompose_up
    • First observedcontainer_stats
    • First observedexec_in_container
    • First observedinspect_container
    • First observedlist_containers
    • First observedlist_images
    • First observedlist_networks
    • First observedlist_volumes
    • First observedpull_image
    • First observedrecreate_container
    • First observedremove_container
    • First observedremove_image
    • First observedrestart_container
    • First observedrun_container
    • First observedset_restart_policy
    • First observedstart_container
    • First observedstop_container
    • First observedstream_logs
    • First observedwatch_health

TDQS

B3.3/5.0
Disambiguation4/5

Most tools have distinct purposes, but there is slight overlap between compose_logs and stream_logs, and between check_health and watch_health. Descriptions clarify usage, so ambiguity is low but not absent.

Naming Consistency3/5

Tools mostly follow verb_noun pattern, but there are inconsistencies: 'container_stats' uses noun_noun, 'compose_ps' uses an abbreviation, and some verbs vary (e.g., 'recreate' vs 'restart'). The overall pattern is readable but not perfectly uniform.

Tool Count3/5

With 25 tools, the server is on the higher end for an MCP server. While each tool serves a specific Docker function, some could be merged (e.g., health check and health watch), making the set slightly larger than necessary.

Completeness3/5

The tool set covers core container and image operations, but lacks create/remove for networks and volumes, and has no login/logout support. These gaps may require agents to fall back to shell commands for full Docker lifecycle management.

Maintenance

ActivityStale
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants like Claude to manage Docker containers, images, and Docker Compose deployments through the Model Context Protocol. Provides secure container lifecycle management, image operations, and multi-host Docker server connections.
    276
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage Docker containers, deploy stacks, and monitor services across multiple Docker hosts from one centralized location. Supports container lifecycle management, Docker Compose operations, and infrastructure orchestration through natural language commands.
    6
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage Docker containers, images, networks, volumes, and Compose services through the Model Context Protocol. It supports system operations, command execution within containers, and integration with Docker Hub and GitHub Container Registry.
    130
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to autonomously check, diagnose, and recover Dockerized services through safe, tool-based ops without direct host shell access.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/friendlygeorge/docker-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server