Comprehensive Docker container and image management server for AI assistants
This Docker MCP server has 11 tools with varying quality. Tool naming follows verb_noun patterns (docker-*) consistently, which is good. However, descriptions are present but often minimal (20-80 chars), and critically, NO tools have documented output schemas. Input schemas are present for all tools, but several are incomplete or missing key constraint information. Parameter descriptions exist but lack specificity on valid ranges, formats, and constraints. The server exposes 11 Docker operations but provides no guidance on error handling, recovery paths, or output structure, essential for LLM integration. Most tools are read-only or low-risk, but write operations (docker-run, docker-exec, docker-build, docker-compose) have no destructive hints or confirmation patterns. The codebase shows basic implementation but lacks the polish and completeness expected of production-grade agent tools.
Build a Docker image from a Dockerfile
Run Docker Compose commands
List Docker containers on the host system
Execute a command in a running Docker container
List Docker images on the host system
Inspect Docker objects (images, containers, networks, volumes)
Fetch logs for a specific Docker container
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract needed data without knowing return field structure.
Parameter descriptions lack constraint details. Example: 'filter' (docker-images) says 'Optional filter for image names' but does not specify format, regex, or what happens if no match found. 'tail' (docker-logs) is a number but no bounds (0-10000? default?). 'options' (docker-run) is an object with nested properties but descriptions for nested fields are generic.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | F | 48 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 41 | - | v1 |
Manage Docker networks
Pull a Docker image from a registry
Run a Docker container with specified options
Manage Docker volumes
Write operations (docker-pull, docker-build, docker-compose, docker-run, docker-exec, docker-network, docker-volume) lack destructive hints and confirmation patterns. No indication which operations are safe to retry, which have side effects, or whether a dry-run mode exists.
Tool descriptions are too brief (20-70 chars on average). Current descriptions lack guidance on error cases, when to use this tool vs. a similar one, or what happens on failure.
docker-run accepts 'options' as an untyped object with nested 'environment' and 'ports' properties. No constraint on what environment variable names are allowed, port format (8080:80 vs 0.0.0.0:8080), or validation guidance. This invites malformed input from LLMs.
docker-build has no 'dockerfile' parameter even though dockerfilePath exists, inconsistent naming. docker-compose expects only 'command' and 'filePath' but does not validate command values (e.g., 'up', 'down', 'ps'). Should be enum.
No pagination support for list operations. docker-images and docker-containers return all results with optional filter. Large Docker environments (hundreds of images/containers) will flood the LLM context and degrade reasoning.
Error handling is not documented. No guidance on what error messages the tool returns, whether errors are retryable, or what the LLM should do next. Example: if docker-pull fails due to network timeout vs. image not found, does the LLM retry or look for an alternative?