Skip to main content
Glama
zskycode
by zskycode

Docker MCP Server

基于MCP标准协议的Docker操作工具,支持标准的Docker CLI命令和Docker Compose操作。

MCP 协议支持

此服务器完全符合MCP(Model Context Protocol)标准,包括:

  • 支持MCP协议版本:2024-11-05

  • 初始化和生命周期管理

  • 标准工具接口(tools/list, tools/call)

  • 正确的错误处理(带有isError字段)

  • 符合JSON-RPC 2.0消息格式

Related MCP server: Docker MCP Server

功能特性

基本容器操作

  • list_containers - 列出所有Docker容器

  • list_images - 列出所有Docker镜像

  • run_container - 运行一个Docker容器,支持多种参数配置

  • stop_container - 停止一个Docker容器

  • remove_container - 移除一个Docker容器

  • pull_image - 拉取一个Docker镜像

Docker Compose操作

  • compose_up - 启动Docker Compose服务

  • compose_down - 停止并移除Docker Compose服务

  • compose_ps - 列出Docker Compose服务

  • compose_logs - 查看Docker Compose服务的日志

  • compose_build - 构建Docker Compose服务

特别说明: 支持Docker Compose的新老版本命令,自动在docker compose(新版)和docker-compose(旧版)之间切换。服务器会优先尝试新版命令格式,如失败则自动尝试使用旧版命令,以提供最大兼容性。

高级容器管理

  • inspect_container - 展示容器的详细信息

  • container_logs - 获取容器的日志

  • exec_container - 在运行中的容器中执行命令

  • container_stats - 显示容器资源使用情况统计

镜像管理

  • build_image - 从Dockerfile构建镜像

  • prune_images - 移除未使用的镜像

网络管理

  • list_networks - 列出所有Docker网络

  • create_network - 创建一个新的Docker网络

  • remove_network - 移除一个Docker网络

  • network_connect - 将容器连接到网络

卷管理

  • list_volumes - 列出所有Docker卷

  • create_volume - 创建一个Docker卷

  • remove_volume - 移除一个Docker卷

系统信息

  • system_info - 显示系统级信息

  • system_df - 显示Docker磁盘使用情况

安全检查

  • security_scan - 扫描Docker镜像中的漏洞(需要安装额外工具如trivy)

使用方法

  1. 确保安装了NodeJS和Docker

  2. 克隆仓库并安装依赖

    git clone https://github.com/yourusername/docker-mcp.git
    cd docker-mcp
    npm install
  3. 构建项目

    npm run build
  4. 运行服务器

    npm start

与MCP客户端集成

任何支持MCP协议的客户端都可以与此服务器交互,例如:

  1. 初始化连接:initialize

  2. 获取可用工具列表:tools/list

  3. 调用工具:tools/call 使用指定的工具名称和参数

Features

  • List Docker containers

  • List Docker images

  • Run Docker containers

  • Stop running containers

  • Remove containers

  • Pull Docker images from registries

  • Docker Compose operations (up, down, ps, logs, build)

  • Compatibility with both new and legacy Docker Compose versions

Installation

Prerequisites

  • Node.js 18 or higher

  • Docker installed and running on your system

  • Docker Compose installed (for Compose operations)

    • Both docker compose (V2, integrated) and docker-compose (V1, standalone) are supported

Install from npm

npm install -g docker-mcp-server

Install from source

  1. Clone this repository

  2. Install dependencies:

cd docker-mcp
npm install
  1. Build the project:

npm run build

Usage

Running the server

docker-mcp-server

Or if installed from source:

npm start

Configuring with Claude

You can use the included installation script to automatically configure the Docker MCP server with Claude:

npm run install-config

This script will:

  1. Detect your Claude installations (Desktop and/or VSCode)

  2. Update the configuration files to include the Docker MCP server

  3. Set up the correct paths for your system

Manual Configuration

If you prefer to configure manually, you need to add the Docker MCP server to your MCP settings configuration file:

For Claude Desktop App (macOS)

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "docker-mcp": {
      "command": "node",
      "args": ["/path/to/docker-mcp/dist/index.js"],
      "disabled": false,
      "autoApprove": []
    }
  }
}
For Claude in VSCode

Edit ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json:

{
  "mcpServers": {
    "docker-mcp": {
      "command": "node",
      "args": ["/path/to/docker-mcp/dist/index.js"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

Note: After configuring the Docker MCP server in VS Code, you may need to restart VS Code for the changes to take effect in Cline. If you encounter issues with the Docker MCP server not being recognized or working properly in Cline, try restarting VS Code.

MCP Compliance

This server implements the Model Context Protocol (MCP) standard and supports:

  • MCP protocol version: 2024-11-05

  • Initialization and lifecycle management

  • Standard tools interface with tools/list and tools/call methods

  • Proper error handling following MCP conventions

  • JSON-RPC 2.0 message format

Available Tools

Docker Container Tools

list_containers

List all Docker containers.

Parameters:

  • all (boolean, optional): Show all containers (default shows just running)

list_images

List all Docker images.

run_container

Run a Docker container.

Parameters:

  • image (string, required): Docker image to run

  • name (string, optional): Name for the container

  • detach (boolean, optional): Run container in background

  • ports (array of strings, optional): Port mappings (e.g. ["8080:80"])

  • volumes (array of strings, optional): Volume mappings (e.g. ["/host/path:/container/path"])

  • env (array of strings, optional): Environment variables (e.g. ["KEY=value"])

  • command (string, optional): Command to run in the container

stop_container

Stop a running Docker container.

Parameters:

  • container (string, required): Container ID or name

remove_container

Remove a Docker container.

Parameters:

  • container (string, required): Container ID or name

  • force (boolean, optional): Force removal of running container

pull_image

Pull a Docker image from a registry.

Parameters:

  • image (string, required): Image name (e.g. "nginx:latest")

Docker Compose Tools

All Docker Compose tools support both docker compose (V2) and docker-compose (V1) commands, with automatic fallback from new to legacy format if needed.

compose_up

Start Docker Compose services.

Parameters:

  • file (string, optional): Path to docker-compose.yml file

  • projectName (string, optional): Specify project name

  • services (array of strings, optional): Services to start (default: all services)

  • detach (boolean, optional): Run in background

  • build (boolean, optional): Build images before starting containers

  • removeOrphans (boolean, optional): Remove containers for services not defined in the Compose file

compose_down

Stop and remove Docker Compose services.

Parameters:

  • file (string, optional): Path to docker-compose.yml file

  • projectName (string, optional): Specify project name

  • volumes (boolean, optional): Remove named volumes declared in the volumes section

  • removeOrphans (boolean, optional): Remove containers for services not defined in the Compose file

compose_ps

List Docker Compose services.

Parameters:

  • file (string, optional): Path to docker-compose.yml file

  • projectName (string, optional): Specify project name

  • services (array of strings, optional): Services to show (default: all services)

compose_logs

View Docker Compose service logs.

Parameters:

  • file (string, optional): Path to docker-compose.yml file

  • projectName (string, optional): Specify project name

  • services (array of strings, optional): Services to show logs for (default: all services)

  • follow (boolean, optional): Follow log output

  • tail (string, optional): Number of lines to show from the end of the logs (e.g. "100")

compose_build

Build Docker Compose services.

Parameters:

  • file (string, optional): Path to docker-compose.yml file

  • projectName (string, optional): Specify project name

  • services (array of strings, optional): Services to build (default: all services)

  • noCache (boolean, optional): Do not use cache when building the image

  • pull (boolean, optional): Always attempt to pull a newer version of the image

Advanced Container Management Tools

inspect_container

Show detailed information about a container.

Parameters:

  • container (string, required): Container ID or name

  • format (string, optional): Format the output using a Go template

container_logs

Fetch the logs of a container.

Parameters:

  • container (string, required): Container ID or name

  • tail (string, optional): Number of lines to show from the end of the logs (e.g. "100")

  • since (string, optional): Show logs since timestamp (e.g. "2021-01-02T13:23:37") or relative (e.g. "42m" for 42 minutes)

  • until (string, optional): Show logs before timestamp (e.g. "2021-01-02T13:23:37") or relative (e.g. "42m" for 42 minutes)

  • timestamps (boolean, optional): Show timestamps

exec_container

Execute a command in a running container.

Parameters:

  • container (string, required): Container ID or name

  • command (string, required): Command to execute

  • interactive (boolean, optional): Keep STDIN open even if not attached

container_stats

Display a live stream of container resource usage statistics.

Parameters:

  • container (string, required): Container ID or name

  • noStream (boolean, optional): Disable streaming stats and only pull the first result

Image Management Tools

build_image

Build an image from a Dockerfile.

Parameters:

  • dockerfile (string, optional): Path to Dockerfile

  • tag (string, required): Name and optionally a tag in the name:tag format

  • context (string, required): Path to the build context

  • buildArgs (object, optional): Build-time variables

  • noCache (boolean, optional): Do not use cache when building the image

  • pull (boolean, optional): Always attempt to pull a newer version of the image

prune_images

Remove unused images.

Parameters:

  • all (boolean, optional): Remove all unused images, not just dangling ones

  • filter (string, optional): Provide filter values (e.g. "until=24h")

Network Management Tools

list_networks

List all Docker networks.

create_network

Create a new Docker network.

Parameters:

  • name (string, required): Network name

  • driver (string, optional): Driver to manage the network (default "bridge")

  • subnet (string, optional): Subnet in CIDR format (e.g. "172.30.0.0/16")

  • gateway (string, optional): Gateway for the subnet

  • internal (boolean, optional): Restrict external access to the network

remove_network

Remove a Docker network.

Parameters:

  • name (string, required): Network name or ID

network_connect

Connect a container to a network.

Parameters:

  • network (string, required): Network name or ID

  • container (string, required): Container ID or name

  • alias (array of strings, optional): Add network-scoped alias for the container

Volume Management Tools

list_volumes

List all Docker volumes.

create_volume

Create a Docker volume.

Parameters:

  • name (string, required): Volume name

  • driver (string, optional): Volume driver name (default "local")

  • labels (object, optional): Labels to set on the volume

remove_volume

Remove a Docker volume.

Parameters:

  • name (string, required): Volume name

System Information Tools

system_info

Display system-wide information.

Parameters:

  • format (string, optional): Format the output using a Go template

system_df

Show Docker disk usage.

Parameters:

  • verbose (boolean, optional): Show detailed information on space usage

Security Tools

security_scan

Scan a Docker image for vulnerabilities.

Parameters:

  • image (string, required): Image to scan (e.g. "nginx:latest")

  • verbose (boolean, optional): Show detailed vulnerability information

Note: Security scanning requires external tools like trivy to be installed on your system.

License

MIT

Available Tools

27 tools
build_imageC

Build an image from a Dockerfile

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesName and optionally a tag in the name:tag format
pullNoAlways attempt to pull a newer version of the image
contextYesPath to the build context
noCacheNoDo not use cache when building the image
buildArgsNoBuild-time variables
dockerfileNoPath to Dockerfile

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 the full burden of behavioral disclosure, but it only restates the primary action. It does not mention side effects (creating/tagging an image), cache behavior, network access, or failure behavior.

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

Conciseness4/5

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

A single sentence with no wasted words and the main action front-loaded. It is concise, though arguably too terse for the tool's complexity.

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 6 parameters, no annotations, and no output schema, the description is too minimal. It does not explain required inputs (tag and context), what the build returns, or how this differs from compose_build.

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 parameter meaning beyond the schema; it only references 'Dockerfile,' which the schema already documents as a path property.

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 uses a specific verb and resource: 'Build an image from a Dockerfile' clearly states what the tool does. However, it does not differentiate from sibling tools such as compose_build, which also builds images from Dockerfiles.

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 pull_image or compose_build. There are no prerequisites, exclusions, or context signals in the description.

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

compose_buildC

Build Docker Compose services

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoPath to docker-compose.yml file
pullNoAlways attempt to pull a newer version of the image
noCacheNoDo not use cache when building the image
servicesNoServices to build (default: all services)
projectNameNoSpecify project name

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It only repeats the basic operation; it does not mention side effects like creating images, fetching dependencies, or cache behavior, nor does it say what happens on failure or what output is produced.

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 extremely concise and front-loaded with the core action, with no wasted words. However, it is so brief that it provides less functional context than would be ideal, preventing a top score.

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 five optional parameters, no annotations, no output schema, and no usage guidance, this minimal description is insufficient for reliable tool selection. It omits defaults, alternate-sibling relationships, and behavioral outcomes, making it a borderline minimal-fixture rather than a complete definition.

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

Parameters3/5

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

Schema description coverage is 100%, and every parameter has a meaningful description in the schema, so the tool description need not repeat them. The description adds no parameter semantics, but the schema carries the load, justifying the baseline score.

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

Purpose4/5

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

The description states a specific verb ('Build') and resource ('Docker Compose services'), making it clear the action is to build images for Compose-defined services. It does not explicitly name sibling tools like compose_up or build_image, but the Compose qualifier helps distinguish it from single-image builds.

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 such as compose_up or build_image. An agent cannot tell whether this tool only builds images without starting services or when compose_up might be more appropriate.

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

compose_downB

Stop and remove Docker Compose services

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoPath to docker-compose.yml file
volumesNoRemove named volumes declared in the volumes section
projectNameNoSpecify project name
removeOrphansNoRemove containers for services not defined in the Compose file

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 carry the full burden of explaining the tool's destructive behavior. While 'stop and remove' signals some destructive action, it does not disclose that this also removes associated networks, that volumes are only removed when the volumes parameter is set, or that orphan containers may be removed based on removeOrphans.

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, compact sentence with no filler or redundant phrasing. The core action is front-loaded and immediately understandable.

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 that this is a destructive operation with no annotations and no output schema, the one-line description is not complete enough for an agent to safely reason about consequences. Information about what gets removed by default, when to avoid this tool, and how the projectName parameter scopes the operation is missing.

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

Parameters3/5

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

The input schema has 100% parameter description coverage, so the schema already explains all four parameters. The tool description provides no additional parameter-level context about how file, volumes, projectName, or removeOrphans affect the teardown behavior, so it does not elevate the baseline.

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 phrase, 'Stop and remove Docker Compose services,' which clearly identifies the operation and resource. It is easily distinguished from siblings like compose_up, compose_ps, compose_logs, and compose_build, and from stop_container/remove_container which target individual containers rather than a Compose-managed group.

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 a Docker Compose stack, but it does not explicitly state when to choose this tool over alternatives such as stop_container or remove_container. There are no exclusions or conditions given, so an agent must infer the intended use from the name and sibling context.

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

compose_logsA

View Docker Compose service logs

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoPath to docker-compose.yml file
tailNoNumber of lines to show from the end of the logs (e.g. "100")
followNoFollow log output
servicesNoServices to show logs for (default: all services)
projectNameNoSpecify project name

TDQS

A3.6/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 burden of behavioral disclosure. The verb 'View' conveys a read-only, non-destructive operation, but the description does not mention streaming behavior, default output scope, or potential blocking behavior when 'follow' is enabled. These are meaningful behavioral traits for a log 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 a single front-loaded sentence with no filler or redundancy. It states the verb and resource directly and wastes no words, making it easy for an agent to parse quickly.

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 tool is simple, has no required parameters, and the schema already documents every parameter. The description is sufficient for a basic understanding, though it could be slightly stronger by explicitly contrasting with 'container_logs' or noting default behavior. Overall, an agent can select and invoke it correctly with the provided information.

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 all five parameters are already documented in the input schema. The description adds no additional parameter-level meaning beyond the tool's overall purpose, which is consistent with the baseline score of 3 for high schema coverage.

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

Purpose4/5

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

The description states a specific action ('View') and a specific resource ('Docker Compose service logs'), making the tool's purpose immediately understandable. It clearly points to Compose-related logging rather than individual container logging, though it does not explicitly differentiate from the sibling 'container_logs' tool.

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

Usage Guidelines3/5

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

The phrase 'Docker Compose service logs' implies when the tool should be used, but the description provides no explicit guidance about when to choose this tool over alternatives such as 'container_logs'. There are no when-not-to-use conditions or named fallback tools, leaving the routing decision largely to inference.

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

compose_psC

List Docker Compose services

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoPath to docker-compose.yml file
servicesNoServices to show (default: all services)
projectNameNoSpecify project name

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 the full burden of behavioral disclosure. It does not explain whether a compose file is required, what happens if 'file' is omitted, how 'projectName' affects results, or what the output looks like. The basic read-only nature is implied but not detailed.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. It is efficient, though slightly under-specified for a tool with three optional parameters and no annotations.

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 tool has no output schema, no annotations, and three optional parameters, yet the description only provides a high-level action. It omits return value expectations, default behavior, and command semantics, leaving an agent without enough context to invoke it confidently in varied situations.

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 already documents all three parameters with 100% coverage, so a baseline of 3 is appropriate. The description adds no extra meaning about how 'file', 'services', or 'projectName' interplay, but it does not need to compensate for coverage gaps.

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 uses a specific verb ('List') and resource ('Docker Compose services'), clearly indicating the tool's core function. It does not, however, explicitly contrast with sibling tools like 'list_containers', leaving some room for ambiguity about whether it lists services or running containers.

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 list_containers or compose_up. The description simply states the action without any context on prerequisites, typical workflows, or exclusions.

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

compose_upB

Start Docker Compose services

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoPath to docker-compose.yml file
buildNoBuild images before starting containers
detachNoRun in background
servicesNoServices to start (default: all services)
projectNameNoSpecify project name
removeOrphansNoRemove containers for services not defined in the Compose file

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description alone must carry behavioral disclosure. It only says 'Start Docker Compose services' and does not mention side effects such as image building, network/volume creation, foreground blocking, or container removal with remove_orphans. This is a significant gap for a mutating 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, direct sentence with no filler, front-loading the primary action. It is highly scannable and appropriately leaves parameter details to the schema.

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 six-parameter mutating tool with no annotations and no output schema, a one-line description is insufficient. It omits behavioral expectations, foreground/background behavior, and return or output information, requiring the agent to rely on prior Docker knowledge.

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 covers all six parameters with full descriptions, so the description carries little burden. It adds no parameter-level nuance, but the schema already provides the necessary meanings, making the baseline 3 appropriate.

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

Purpose4/5

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

The description states a specific verb ('Start') and resource ('Docker Compose services'), making the core operation clear. It is distinguishable from siblings like compose_down and compose_ps, though it does not explicitly name alternative tools, so it falls just short of full differentiation.

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

Usage Guidelines3/5

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

The description implies usage when starting Docker Compose services, and the sibling set includes complementary operations like compose_down and compose_build. However, it gives no explicit when-to-use guidance, preconditions, or exclusions.

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

container_logsB

Fetch the logs of a container

ParametersJSON Schema
NameRequiredDescriptionDefault
tailNoNumber of lines to show from the end of the logs (e.g. "100")
sinceNoShow logs since timestamp (e.g. "2021-01-02T13:23:37") or relative (e.g. "42m" for 42 minutes)
untilNoShow logs before timestamp (e.g. "2021-01-02T13:23:37") or relative (e.g. "42m" for 42 minutes)
containerYesContainer ID or name
timestampsNoShow timestamps

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 carries full responsibility for behavioral disclosure. It only states a basic fetch operation and does not mention output format, streaming behavior, whether logs are returned once or continuously, or any side effects. This is a significant gap given the absence of 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, focused sentence with no filler. It states the core purpose efficiently and leaves parameter details to the schema, which is the ideal structure for a simple tool.

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

Completeness3/5

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

For a tool with no annotations and no output schema, the description plus fully documented schema is minimally viable, but it leaves out behavior such as return format and log-following semantics. An agent could call it correctly, but may be uncertain about what response to expect.

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

Parameters3/5

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

The schema covers 100% of parameters with descriptions, so the description does not need to re-document them. It adds no extra meaning about defaults, parameter interactions, or format nuances, but the baseline of 3 is appropriate since the schema is complete.

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

Purpose4/5

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

The description uses a clear verb-resource pair: 'Fetch the logs' of 'a container'. It is unambiguous and differentiates from sibling tools by specifying container logs, though it does not explicitly distinguish itself from compose_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 intended use is implied by the name and description: when you need logs for a container. However, it provides no explicit guidance about when to prefer this over compose_logs or inspect_container, and no exclusions or alternatives are stated.

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

container_statsA

Display a live stream of container resource usage statistics

ParametersJSON Schema
NameRequiredDescriptionDefault
noStreamNoDisable streaming stats and only pull the first result
containerYesContainer ID or name

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 behavioral burden. It does disclose the key live-streaming behavior, but it does not explain that the stream may run indefinitely until interrupted, nor what resource metrics are included, and it adds little beyond the noStream parameter's own schema description.

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 sentence with no filler. 'Live stream' and 'resource usage statistics' are packed with meaning, and the most important behavioral trait is front-loaded.

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

Completeness3/5

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

The schema fully covers parameters, but there is no output schema and no annotation support. The description is adequate for a simple call, but it leaves gaps around what statistics are shown, how the stream terminates, and what the output format looks like.

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 fully documents both parameters. The description adds no additional semantic detail about container selection or the noStream flag, 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 uses a specific verb ('Display'), a clear resource ('container'), and a distinct domain ('resource usage statistics'). This differentiates the tool from siblings like container_logs or inspect_container without needing to inspect their schemas.

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 about when to use this tool versus alternatives such as container_logs or inspect_container. The description does not mention any exclusions, prerequisites, or conditions like 'use noStream for a one-time snapshot'.

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

create_networkB

Create a new Docker network

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNetwork name
driverNoDriver to manage the network (default "bridge")
subnetNoSubnet in CIDR format (e.g. "172.30.0.0/16")
gatewayNoGateway for the subnet
internalNoRestrict external access to the network

TDQS

B3.2/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 states that a network is created but does not mention idempotency, failure behavior if the network already exists, permission requirements, or other side effects.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It is appropriately concise for a tool whose parameters are fully documented in the schema.

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?

Although the schema covers all parameters, there is no output schema and no annotation coverage. The description omits important operational context such as return value, uniqueness constraints, and failure scenarios, leaving an agent uninformed about edge cases.

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 fully documents all five parameters. The description adds no parameter-level meaning, but the baseline of 3 is appropriate because the schema already handles parameter semantics.

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 verb 'Create' and the resource 'Docker network', making the operation unambiguous. It is readily distinguished from sibling tools such as list_networks, remove_network, and network_connect.

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

Usage Guidelines2/5

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

Provides no guidance on when to use this tool versus alternatives, such as network_connect for attaching containers or list_networks for inspecting existing networks. The intended usage is only implied by the tool name and description.

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

create_volumeD

Create a Docker volume

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesVolume name
driverNoVolume driver name (default "local")
labelsNoLabels to set on the volume

TDQS

D1.9/5.0
Behavior1/5

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

No annotations are provided, so the description is the sole source of behavioral disclosure. It only states that a volume is created, without mentioning idempotency, behavior if the volume name already exists, driver implications, label handling, permissions, or side effects. This is a serious gap for a mutating tool.

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

Conciseness3/5

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

The description is a single short, front-loaded sentence with no wasted words. However, because it largely restates the tool name and omits useful context, it is under-specified rather than genuinely well-structured.

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

Completeness1/5

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

For a creation tool with one required parameter, an object-typed labels parameter, no output schema, and no annotations, this description is far too sparse. It does not mention required parameters, defaults, expected behavior, or failure modes, so an agent cannot predict the tool's behavior or return value.

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 fully documents the three parameters and the driver default. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline of 3 applies.

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

Purpose2/5

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

The description 'Create a Docker volume' is essentially a grammatical expansion of the tool name create_volume; it adds only the word 'Docker' and no new meaning. It is clear but tautological, and does not differentiate itself beyond the obvious verb from sibling volume tools.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool, when not to use it, or which sibling tools might be alternatives (e.g., list_volumes, remove_volume). An agent is left to infer usage solely from the name and schema.

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

exec_containerC

Execute a command in a running container

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesCommand to execute
containerYesContainer ID or name
interactiveNoKeep STDIN open even if not attached

TDQS

C2.9/5.0
Behavior2/5

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

Annotations are entirely absent, so the description carries the full burden of behavioral disclosure. It reveals that a command is executed in a running container but says nothing about side effects, whether output or exit codes are returned, or how the interactive parameter affects behavior. For an arbitrary-command execution tool, this is under-disclosed.

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 efficient sentence with no filler and the core action front-loaded. It is appropriately concise, though it sacrifices behavioral context that other dimensions require.

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 tool that executes arbitrary commands, the description is thin: it omits return behavior, the semantics of interactive mode, caution about destructive effects, and explicit disambiguation from sibling tools. With no annotations and no output schema, this leaves an agent under-informed about the consequences of calling the 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?

The input schema describes all three parameters with 100% coverage, so the baseline is 3. The description adds marginal context by specifying the container is already running, but it does not add meaning to command or interactive 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?

The description states a clear verb and resource: execute a command in a running container. It distinguishes itself from run_container and compose_up because it implies the container already exists, but it does not explicitly name alternatives.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus run_container, container_logs, or inspect_container. The phrase 'running container' implies the prerequisite that the container must already be active, but no explicit when-to-use or when-not-to-use direction is provided.

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

inspect_containerC

Show detailed information about a container

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoFormat the output using a Go template
containerYesContainer ID or name

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state that the operation is read-only, what kind of information is returned, whether the container must exist, or how errors are surfaced. 'Show detailed information' is minimally informative but not transparent about 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?

The description is a single clear, front-loaded sentence with no redundant words or filler. It communicates the core purpose efficiently.

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?

With no output schema and no annotations, the description should explain return format, read-only nature, and likely failure cases. It provides none of that, leaving an agent to infer important invocation and post-invocation 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 description coverage is 100%, so the schema already documents both parameters and their meaning. The description adds no extra parameter-level detail, which matches the baseline for well-covered schemas.

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

Purpose4/5

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

The description uses a specific verb ('Show') and resource ('container') and indicates the output is detailed information, which separates it from list/log/stat commands. It does not explicitly differentiate from sibling tools, but the tool name and context make the intent reasonably clear.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus sibling tools like container_logs, container_stats, or exec_container. The description implies 'when you need detailed info,' but offers no explicit selection criteria or exclusions.

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

list_containersB

List all Docker containers

ParametersJSON Schema
NameRequiredDescriptionDefault
allNoShow all containers (default shows just running)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the burden of behavioral disclosure, but it only says 'List'. It does not mention that running without 'all' excludes stopped containers, and the word 'all' actually conflicts with the schema's stated default of showing only running containers.

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 no filler or repetition. The main action and resource are front-loaded, and nothing extraneous is included.

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 list operation, the schema covers the parameter, but the description alone is incomplete: it fails to clarify the running-only default and contains an 'all' wording that could mislead an agent. The missing usage context lowers completeness below what a strong minimal definition would provide.

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

Parameters3/5

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

Schema description coverage is 100% and the single 'all' parameter is already clearly documented in the schema. The tool description adds no additional parameter meaning, so the baseline score of 3 applies.

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

Purpose4/5

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

The description identifies a clear action ('List') and resource ('Docker containers'), and it is easy to distinguish from sibling tools like list_images or list_volumes. However, the word 'all' is ambiguous because the schema says the default is just running containers, so the description slightly overstates the default behavior.

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 other list tools, nor when to set the 'all' parameter. The schema's parameter description implies the default behavior, but the tool description itself offers no selection or exclusion criteria.

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

list_imagesA

List all Docker images

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are present, so the description carries the behavioral burden. 'List' clearly signals a read-only operation, but the description does not explicitly state that it has no side effects, what outputs it returns, or other behavioral details such as sorting or pagination.

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 verb and object. Every word contributes meaning, with no filler or redundancy.

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

Completeness5/5

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

For a zero-parameter, no-output-schema tool with no complex side effects, 'List all Docker images' is sufficient for an agent to select and invoke the tool correctly. There is no missing information that would prevent correct usage.

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, so parameter documentation is unnecessary. The word 'all' reinforces that no filtering or arguments are expected, which is consistent with the empty input 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 uses a specific verb ('List') and a clear resource ('Docker images'), immediately distinguishing it from sibling tools like list_containers and list_volumes. There is no ambiguity about what the tool does.

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 intended use is implied by the verb-resource pairing: use this tool to enumerate Docker images. However, there is no explicit guidance about when not to use it or which alternative to prefer, though the simple scope makes this less critical.

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

list_networksA

List all Docker networks

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral disclosure burden. 'List all Docker networks' implies a read-only enumeration with no filtering or side effects, and the word 'all' indicates full-scope listing. However, it does not describe return format, pagination, permissions, or potential failure modes.

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, four-word sentence with no filler or redundancy. It front-loads the core action and resource, earning every word.

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

Completeness4/5

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

For a zero-parameter, simple listing operation, the description is mostly complete: an agent can infer what to call and why. It omits details about the returned data, but given no output schema exists and the tool is trivial to invoke, this is a minor gap.

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

Parameters4/5

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

The input schema has zero parameters, so there are no parameter semantics for the description to elaborate. A baseline of 4 is appropriate for a parameter-free tool, and the description has nothing missing on this front.

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 ('List') and a specific resource ('Docker networks'), making the tool's function immediately clear. It also distinguishes itself from siblings like list_containers, list_images, and remove_network by naming a distinct resource and operation.

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 intended use is implied by the verb 'List' and the resource 'networks', but there is no explicit guidance about when to prefer this over alternatives or when not to use it. It does not mention sibling tools such as create_network or remove_network, though the resource-specific naming makes confusion unlikely.

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

list_volumesA

List all Docker volumes

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden of signaling behavior. 'List all' clearly indicates a read-only, unfiltered enumeration, so there are no hidden destructive side effects. It does not mention output shape or daemon requirements, but those are minor for a zero-parameter list 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 six-word sentence with no filler. The verb and resource are front-loaded, and 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 no-parameter list tool, the description is largely complete: it names the action, scope, and resource. The only gap is that it does not hint at the return shape or fields, but that is generally inferable for a volume listing tool.

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

Parameters4/5

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

The input schema has zero properties, so the baseline for parameter semantics is 4. There are no parameters for the description to explain, and the description correctly implies that the tool takes no arguments.

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 states a specific verb ('list') and resource ('Docker volumes'), and the word 'all' clarifies scope. This clearly distinguishes it from sibling tools like list_containers and list_images by naming the exact 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 Guidelines3/5

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

The use case is implied: use this when you want all Docker volumes. However, there is no explicit guidance about alternatives or when not to use it, such as comparing it to create_volume, remove_volume, or other list_* siblings.

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

network_connectB

Connect a container to a network

ParametersJSON Schema
NameRequiredDescriptionDefault
aliasNoAdd network-scoped alias for the container
networkYesNetwork name or ID
containerYesContainer ID or name

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 carries the full burden of behavioral disclosure. 'Connect a container to a network' communicates the core mutation but does not mention whether the container must be running, whether the network must already exist, whether prior connections change, idempotence, or what the response contains. This is thin for a state-changing operation.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no filler or repetition. It is efficient and easy to parse, though its brevity contributes to missing context rather than being a structural flaw.

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

Completeness2/5

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

For a modifying operation with no annotations and no output schema, this description is incomplete. It does not clarify key operational context such as network existence, container state, whether aliases are allowed/required, or what happens on failure or success. The schema covers parameters but not usage conditions or side effects.

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% parameter description coverage, including clear explanations for network, container, and alias. The description adds no parameter-level detail, but the schema already handles that burden, 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 states a specific verb ('Connect') and resource ('a container to a network'), which clearly distinguishes it from network-level siblings like create_network and remove_network. An agent can tell this tool attaches an existing container to a network rather than managing networks themselves.

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 action itself implies when to use it, but there is no explicit guidance about when to use this vs alternatives, no exclusions, and no stated prerequisites such as the network or container already existing. Usage context is left to inference rather than spelled out.

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

prune_imagesB

Remove unused images

ParametersJSON Schema
NameRequiredDescriptionDefault
allNoRemove all unused images, not just dangling ones
filterNoProvide filter values (e.g. "until=24h")

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that images will be removed, but it does not explain whether deletion is irreversible, what qualifies as 'unused,' or what side effects may occur.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. It is appropriately concise, though it is so brief that it sacrifices useful detail.

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 destructive tool with no annotations and no output schema, the description is too thin. It lacks information about when to prune, what exactly gets removed by default, and what consequences the operation has.

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 parameters are already documented in the input schema. The description adds no extra meaning beyond the schema, which is acceptable but not additive.

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 ('Remove') and the resource ('unused images'), which distinguishes it from sibling tools like list_images, pull_image, and remove_container. The meaning is immediately understandable even without additional 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?

There is no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description implies a cleanup operation, but an agent receives no help deciding between this and other image-related tools.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
imageYesImage name (e.g. "nginx: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 carries the full burden. It does not disclose that pulling downloads data, requires registry access, may need authentication, consumes disk space, or can be a long-running 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?

A single, concise sentence with no filler. It front-loads the core purpose and is appropriately sized for a one-parameter tool.

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

Completeness3/5

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

The description plus schema is minimally viable for invoking the tool with one parameter, but it lacks behavioral context such as side effects, registry access requirements, and failure modes. It could be more complete despite the simple interface.

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 adequately documents the image parameter with an example. The description adds no additional parameter meaning, so the baseline 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?

States a specific verb and resource: pulling a Docker image from a registry. This clearly distinguishes it from sibling tools like build_image, run_container, 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 Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives such as build_image or when pulling is needed before run_container. Usage context is only implied by the verb 'pull.'

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

remove_containerC

Remove a Docker container

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce removal of running container
containerYesContainer ID or name

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Remove a Docker container' and fails to disclose that removal is destructive, that running containers require the force flag, or that the operation is irreversible. For a mutation tool, this is a significant transparency gap.

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

Conciseness3/5

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

The description is a single short sentence with no wasted words, but it is under-specified rather than appropriately concise. The brevity comes at the cost of omitting important behavioral and usage context for a destructive operation.

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 annotations, no output schema, and a destructive action, the description is not complete enough. An agent cannot infer the delete semantics, the force behavior, or how this differs from stop_container. For such a simple tool, these missing details are critical.

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

Parameters3/5

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

Schema description coverage is 100%, with both 'container' and 'force' already documented in the input schema. The description adds no additional parameter meaning, 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.

Purpose4/5

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

The description states a clear verb ('Remove') and a specific resource ('Docker container'), which distinguishes it from sibling tools like remove_network and stop_container. However, it closely paraphrases the tool name and does not clarify that 'remove' means delete rather than stop, so it stops short of a fully informative purpose statement.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like stop_container, nor any mention of prerequisites such as the container needing to exist or not be running unless force is used. The usage context is only implied by the verb 'remove'.

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

remove_networkB

Remove a Docker network

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNetwork name or ID

TDQS

B3.2/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 only says 'Remove', implying a destructive operation, but does not mention consequences such as failure when the network is in use or the need to disconnect containers first.

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, tightly written sentence with no filler. It front-loads the action and resource clearly, which is appropriate for a tool with one well-defined parameter.

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?

Although the tool is simple and the schema is complete, the lack of annotations leaves behavioral context unaddressed. A useful description would mention that removing a network fails if it is in use, or that containers must be disconnected first. Without this, the description is not fully contextually complete for a destructive 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?

The schema already documents the single parameter with 100% coverage: 'Network name or ID'. The description adds no parameter-specific meaning, so it does not need to compensate for schema gaps. The baseline 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 states a specific verb ('Remove') and resource ('a Docker network'), making the tool's core function immediately clear. It also differentiates from sibling tools like create_network and network_connect by naming the exact resource and action.

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 gives no guidance on when to use this tool versus alternatives such as create_network or network_connect. There is no mention of prerequisites, when removal is appropriate, or when it should be avoided.

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

remove_volumeB

Remove a Docker volume

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesVolume name

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 carries the full burden of behavioral disclosure. It conveys destructive removal but discloses no details about permanence, failure behavior when the volume is in use, or whether associated data is deleted.

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?

Four words, front-loaded verb, and zero filler. Every word carries meaning for the stated purpose.

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, the core operation is stated and the schema covers invocation. However, with no annotations and no output schema, it omits important operational context such as irreversibility and in-use failure behavior.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents the single 'name' parameter. The description adds no additional parameter-level meaning beyond the operation, so the baseline score 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?

Description states exactly the operation: 'Remove a Docker volume.' The verb 'Remove' plus resource 'Docker volume' is specific and clearly distinguishes it from sibling remove_network and 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 Guidelines2/5

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

No guidance is given for when to use this tool or when to prefer alternatives. It does not mention prerequisites such as ensuring the volume is not in use, nor does it contrast with create_volume or list_volumes.

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

run_containerC

Run a Docker container

ParametersJSON Schema
NameRequiredDescriptionDefault
envNoEnvironment variables (e.g. ["KEY=value"])
nameNoName for the container
imageYesDocker image to run
portsNoPort mappings (e.g. ["8080:80"])
detachNoRun container in background
commandNoCommand to run in the container
volumesNoVolume mappings (e.g. ["/host/path:/container/path"])

TDQS

C2.9/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden of behavioral disclosure. 'Run a Docker container' implies creating and starting a container but does not mention image pulling behavior, container lifecycle side effects, detach semantics, or what the tool returns after running.

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 concise, front-loaded sentence with no wasted words. However, it is so minimal that it misses opportunities to add useful behavioral or usage context without sacrificing 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?

With no annotations and no output schema, the description should compensate by explaining return values and side effects, but it does not. An agent is left without key information about what happens after invoking run_container, such as whether a container ID is returned or whether the image is pulled automatically.

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 fully documents all seven parameters with 100% coverage, so the baseline is 3. The description itself adds no parameter-specific meaning 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 a specific action ('Run') on a specific resource ('a Docker container'). It is distinguishable from sibling tools like stop_container, remove_container, and exec_container by its core operation, though it does not explicitly contrast itself with any sibling.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as compose_up for multi-container workflows or exec_container for running commands in an existing container. The description simply states what the tool does without any contextual usage advice.

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

security_scanA

Scan a Docker image for vulnerabilities

ParametersJSON Schema
NameRequiredDescriptionDefault
imageYesImage to scan (e.g. "nginx:latest")
verboseNoShow detailed vulnerability information

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for disclosing behavior. It only says 'Scan a Docker image for vulnerabilities', leaving unclear whether the scan pulls the image, updates vulnerability databases, requires network access, modifies state, or what the response contains. The verb 'scan' weakly implies a read-only operation, but that is not stated explicitly.

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, compact sentence with no filler or redundancy. It front-loads the action ('Scan') and resource ('a Docker image') immediately, making it efficient for an agent to parse.

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

Completeness3/5

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

With two simple parameters fully documented in the schema and a straightforward purpose, the description is minimally sufficient for calling the tool. However, there is no output schema and no indication of what the scan returns, how results are formatted, or whether the scan triggers side effects like pulling the image. For a security scanning tool, the output is central, so this gap prevents a higher score.

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

Parameters3/5

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

Schema description coverage is 100%: both 'image' and 'verbose' have sufficient descriptions in the input schema. The tool description adds no additional parameter-level detail, so the baseline score of 3 applies per the rubric.

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 ('Scan'), a clear resource ('a Docker image'), and an explicit intent ('for vulnerabilities'). It is immediately distinguishable from all sibling tools, which are container, network, volume, and compose operations; none overlap with security scanning.

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?

No explicit when-to-use or alternative-routing guidance is given, but the description clearly establishes the context: use this when you need to assess a Docker image for vulnerabilities. Since no sibling tool offers a similar scanning capability, the boundary between this tool and alternatives is self-evident.

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

stop_containerB

Stop a running Docker container

ParametersJSON Schema
NameRequiredDescriptionDefault
containerYesContainer ID or name

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the primary action but does not explain side effects such as the container remaining present but stopped, needing to be running first, or that this is non-destructive. No contradictions exist, but depth is minimal.

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 no filler words and directly front-loads the action and target. It is appropriately sized for a simple one-parameter tool.

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

Completeness3/5

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

For a low-complexity tool with one parameter and no output schema, the description covers the basic purpose but misses behavioral context such as state change, non-destructiveness, and how it differs from removal. It is minimally adequate but not fully 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 description coverage is 100%, so the parameter is already documented as 'Container ID or name'. The description adds little beyond the schema, but the schema is sufficient. Baseline 3 is appropriate.

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

Purpose4/5

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

The description states a clear verb ('Stop') and resource ('a running Docker container'), so an agent immediately knows the core operation. It does not explicitly distinguish itself from siblings like remove_container, but 'stop' versus 'remove' is reasonably clear from the action word.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives. The description does not mention that this only applies to running containers, that it should not be used to remove a container, or when run_container or remove_container 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.

system_dfA

Show Docker disk usage

ParametersJSON Schema
NameRequiredDescriptionDefault
verboseNoShow detailed information on space usage

TDQS

A3.8/5.0
Behavior3/5

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

The verb 'Show' clearly signals that this is a read-only, non-destructive operation, which is important given there are no annotations. However, it does not disclose behavior such as whether the output includes images, containers, volumes, build cache, or reclaimable space, nor any response format details.

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, front-loaded sentence with no filler. Every word contributes to the core purpose, making it easy for an agent to parse and act on quickly.

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, the description adequately conveys what the tool returns. It could be slightly richer by noting what the disk usage covers or that it is a non-mutating query, but the current text is sufficient for correct invocation in most cases.

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

Parameters3/5

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

Schema description coverage is 100%, and the single parameter 'verbose' is fully described in the schema. The description adds no additional parameter-level meaning, so the baseline 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 uses a specific verb ('Show') and identifies the exact resource ('Docker disk usage'). It is concise and clearly distinct from siblings like system_info or list_volumes, so an agent can determine this is a disk-usage reporting tool.

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 when to use the tool: whenever Docker disk usage information is needed. However, it provides no explicit guidance about alternatives, prerequisites, or situations where a different tool such as system_info or list_volumes 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.

system_infoB

Display system-wide information

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoFormat the output using a Go template

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. The verb 'Display' clearly indicates a non-mutating read operation, but the description does not mention what kind of system information is returned, output shape, or whether any privileges are 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, front-loaded, efficient sentence with no filler. It states exactly what the tool does in minimal space.

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

Completeness3/5

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

The tool is low-complexity with one optional, well-documented parameter. However, there is no output schema and no explanation of what 'system-wide information' includes, nor any differentiation from system_df, so completeness is adequate but not strong.

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 single parameter `format` is fully described in the schema as a Go template for output formatting. Since schema coverage is 100%, the description does not need to add parameter detail; it also does not add anything 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?

The description uses a clear verb ('Display') and names the resource ('system-wide information'). It establishes this as a general read-only info tool, distinct from more specific siblings like system_df, though it does not explicitly differentiate itself.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as system_df, which also reports system-level data. An agent is left to infer the appropriate choice from the tool name and sibling names alone.

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. 27 tool updatesv0.3.0
    • First observedbuild_image
    • First observedcompose_build
    • First observedcompose_down
    • First observedcompose_logs
    • First observedcompose_ps
    • First observedcompose_up
    • First observedcontainer_logs
    • First observedcontainer_stats
    • First observedcreate_network
    • First observedcreate_volume
    • First observedexec_container
    • First observedinspect_container
    • First observedlist_containers
    • First observedlist_images
    • First observedlist_networks
    • First observedlist_volumes
    • First observednetwork_connect
    • First observedprune_images
    • First observedpull_image
    • First observedremove_container
    • First observedremove_network
    • First observedremove_volume
    • First observedrun_container
    • First observedsecurity_scan
    • First observedstop_container
    • First observedsystem_df
    • First observedsystem_info

TDQS

C2.7/5.0
Disambiguation4/5

Most tools target distinct resource-action pairs, so an agent can usually select correctly. A few compose and container tools could be confused (compose_ps vs list_containers, compose_logs vs container_logs), but their descriptions and compose prefix make the boundary clear.

Naming Consistency3/5

Many tools follow verb_noun (list_containers, build_image, prune_images), but several use noun_noun (container_logs, system_info, security_scan) or noun_verb (network_connect). The mix is readable but not a consistent pattern.

Tool Count2/5

27 tools is past the typical MCP range and creates a heavy selection surface. Docker is broad, but the compose and container categories overlap enough that the count feels too high.

Completeness2/5

Core operations exist for containers, images, networks, and volumes, but common lifecycle operations are missing: a stopped container cannot be started, a specific image cannot be removed, and there is no network disconnect. These gaps will cause agent failures on everyday Docker tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables Docker container management directly through Claude using the Model Context Protocol. Provides 14 tools for managing containers, images, volumes, and Docker Compose deployments through natural language commands.
    -
  • 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, 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

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/zskycode/docker-mcp'

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