Server has 19 tools with consistent naming (verb_noun pattern) and complete input schemas. Descriptions are present but generic (avg ~40 chars, well below the 194-char baseline). Parameter descriptions exist but lack detail on constraints, formats, and valid ranges. No output schemas documented. Error handling is minimal, no recovery guidance or actionable error messages. Missing tool annotations (readOnlyHint, destructiveHint). Composition is sound (each tool has one responsibility), but descriptions don't explain WHEN to use each tool vs. alternatives (e.g., create_container vs. run_container vs. recreate_container).
Build a Docker image
Create a new Docker container
Create a Docker network
Create a Docker volume
Fetch logs for a Docker container
List all Docker containers
List Docker images
List Docker networks
Descriptions are generic and lack WHEN/WHY guidance. E.g., 'Create a new Docker container' does not explain when to use create_container vs. run_container vs. recreate_container. LLMs cannot disambiguate without explicit guidance.
Parameter descriptions lack constraint details. E.g., 'volumes' parameter has no description of format (string, dict, list?). 'tail' parameter type is missing. 'ports' format is undocumented. LLMs cannot validate inputs without explicit format guidance.
No output schemas documented. Tools return Docker API responses but LLMs don't know what fields to expect. This breaks downstream tool chaining, e.g., create_container should return container_id for use in start_container, but this is not documented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
List Docker volumes
Pull a Docker image from a registry
Push a Docker image to a registry
Stop and remove a container, then run a new container. Fails if the container does not exist.
Remove a Docker container
Remove a Docker image
Remove a Docker network
Remove a Docker volume
Run an image in a new Docker container (preferred over `create_container` + `start_container`)
Start a Docker container
Stop a Docker container
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes without explicit hints. remove_container, remove_image, remove_network, remove_volume should be marked destructiveHint=true.
Error handling is absent. No recovery guidance, no actionable error messages. If remove_container fails because the container is running, the LLM gets a raw error with no hint to call stop_container first.