Expert Docker workflows for Cursor, Claude Code, and any MCP-compatible editor.
17 skills • 10 rules • 150 MCP tools
This project works with any AI coding tool that supports skills, rules, or MCP:
| Component | Cursor | Claude Code (terminal) | Claude Code in Cursor | Other MCP clients |
|---|---|---|---|---|
| CLAUDE.md context | Yes | Yes | Yes | - |
| 17 Skills (SKILL.md) | Yes | Yes | Yes | - |
| 10 Rules (.mdc) | Yes | Via CLAUDE.md | Yes | - |
| 150 MCP tools | Yes | Yes | Yes | Yes |
Claude Code reads
CLAUDE.mdautomatically and can reference skills. The MCP server works with any client that supports the MCP stdio transport.
Install the plugin, then ask anything about Docker:
"Write a production Dockerfile for my Node.js app with multi-stage builds"
"My container keeps restarting - help me debug it"
"Set up a docker-compose stack with Postgres, Redis, and my API"
flowchart LR
A[User asks Docker question] --> B[AI loads a Skill]
B --> C[Skill guides the response]
C --> D[MCP tools fetch live Docker data]
D --> E[User gets expert help]
17 Skills - on-demand Docker expertise
| Category | Skill | Description |
|---|---|---|
| Core | dockerfile-best-practices |
Multi-stage builds, layer caching, base image selection |
| Core | docker-compose-helper |
Service definitions, networking, volumes, environment config |
| Core | docker-troubleshooting |
Diagnose crashes, restarts, network failures, and permission issues |
| Optimization | image-optimization |
Reduce image size, speed up builds, minimize attack surface |
| Optimization | docker-resource-management |
CPU/memory limits, resource monitoring, OOM prevention |
| Networking & Storage | docker-networking |
Bridge, overlay, host networking, DNS resolution, port mapping |
| Networking & Storage | docker-volumes |
Named volumes, bind mounts, tmpfs, backup and restore strategies |
| Security | docker-security |
Image scanning, rootless containers, secrets management, hardening |
| DevOps | docker-ci-cd |
GitHub Actions, GitLab CI, build caching, registry push workflows |
| DevOps | docker-registry |
Private registries, image tagging strategies, cleanup policies |
| DevOps | docker-development-env |
Dev containers, hot reload, debugger attachment, local stacks |
| Debugging | container-debugging |
Exec into containers, log analysis, health checks, process inspection |
| Advanced | docker-advanced-workflows |
Multi-stage pipelines, sidecar patterns, healthchecks, signal handling |
| Advanced | docker-multi-platform |
Multi-arch builds, buildx configuration, manifest lists, platform targeting |
| Advanced | docker-context-management |
Remote Docker hosts, SSH/TLS contexts, multi-host workflows |
| Orchestration | docker-swarm |
Swarm cluster management, service deployment, scaling, node administration |
| Security | docker-image-signing |
Docker Content Trust, image signing, verification, key management |
10 Rules - automatic best-practice enforcement
| Rule | Scope | What It Does |
|---|---|---|
dockerfile-lint |
**/Dockerfile* |
Flag antipatterns - unpinned bases, root user, ADD misuse, missing cleanup |
docker-secrets |
Global (always active) | Flag hardcoded passwords, tokens, and registry credentials |
compose-validation |
Compose files | Flag missing healthchecks, privileged mode, host networking |
docker-resource-limits |
Docker-related files | Flag missing memory and CPU limits |
docker-image-pinning |
Dockerfiles, compose files | Flag unpinned image tags (:latest or no tag) |
docker-port-conflicts |
Dockerfiles, compose files | Flag commonly conflicting port mappings |
docker-logging |
Dockerfiles, compose files | Flag missing logging drivers and log rotation |
buildx-best-practices |
Dockerfiles, compose files | Flag multi-platform build issues, missing cache config, arch hardcoding |
compose-scaling |
Compose files | Flag scaling blockers: container_name, fixed host ports, missing limits |
swarm-security |
Docker-related files | Flag missing autolock, unrotated certs, unencrypted overlays, exposed ports |
The MCP server gives your AI assistant live access to your local Docker environment. Works with Cursor, Claude Code, and any MCP-compatible client.
Add to your Cursor MCP config (.cursor/mcp.json):
{
"mcpServers": {
"docker": {
"command": "node",
"args": ["./mcp-server/dist/index.js"],
"cwd": "<path-to>/Docker-Developer-Tools"
}
}
}150 MCP Tools - full tool reference
Read / Inspect (10)
| Tool | What It Does |
|---|---|
docker_listContainers |
List running and stopped containers with status, ports, and names |
docker_inspectContainer |
Get detailed config, state, and networking for a specific container |
docker_containerLogs |
Retrieve stdout/stderr logs with optional tail and timestamp filters |
docker_listImages |
List local images with tags, sizes, and creation dates |
docker_inspectImage |
Get layer history, environment variables, and labels for an image |
docker_listVolumes |
List Docker volumes with driver and mount point info |
docker_listNetworks |
List Docker networks with driver, scope, and connected containers |
docker_diskUsage |
Show disk space used by images, containers, volumes, and build cache |
docker_systemInfo |
Return Docker daemon version, OS, storage driver, and runtime info |
docker_searchHub |
Search Docker Hub for images by name with filtering options |
Container Lifecycle (10)
| Tool | What It Does |
|---|---|
docker_run |
Create and start a container from an image (ports, env, volumes, network) |
docker_create |
Create a container without starting it |
docker_start |
Start a stopped container |
docker_stop |
Stop a running container with optional grace period |
docker_restart |
Restart a container with optional grace period |
docker_kill |
Send a signal to a running container (default: SIGKILL) |
docker_rm |
Remove a container (with optional force and volume removal) |
docker_pause |
Pause all processes in a running container |
docker_unpause |
Unpause a paused container |
docker_exec |
Execute a command in a running container |
Image and Build (8)
| Tool | What It Does |
|---|---|
docker_pull |
Pull an image or repository from a registry |
docker_push |
Push an image or repository to a registry |
docker_build |
Build an image from a Dockerfile and context directory |
docker_tag |
Create a tag that refers to a source image |
docker_rmi |
Remove one or more images |
docker_commit |
Create a new image from a container's changes |
docker_save |
Save one or more images to a tar archive |
docker_load |
Load images from a tar archive |
Compose (24)
| Tool | What It Does |
|---|---|
docker_composeUp |
Create and start Compose services (detached, build, profiles) |
docker_composeDown |
Stop and remove containers, networks, volumes, and images |
docker_composePs |
List containers for a Compose project |
docker_composeLogs |
View logs for Compose services |
docker_composeBuild |
Build or rebuild Compose service images |
docker_composeRestart |
Restart Compose services |
docker_composePull |
Pull images for Compose services |
docker_composeExec |
Execute a command in a running Compose service container |
docker_composeConfig |
Validate, resolve, and render a Compose file in canonical format |
docker_composeCp |
Copy files between a Compose service container and local filesystem |
docker_composeCreate |
Create service containers without starting them |
docker_composeEvents |
Receive real-time events from Compose containers |
docker_composeImages |
List images used by Compose service containers |
docker_composeKill |
Force stop Compose service containers |
docker_composeLs |
List running Compose projects |
docker_composePause |
Pause Compose services |
docker_composeUnpause |
Unpause Compose services |
docker_composePort |
Print the public port for a Compose service port binding |
docker_composeRm |
Remove stopped Compose service containers |
docker_composeRun |
Run a one-off command on a Compose service |
docker_composeScale |
Scale Compose services to a specified replica count |
docker_composeStart |
Start existing Compose service containers |
docker_composeStop |
Stop Compose services without removing containers |
docker_composeTop |
Display running processes in Compose service containers |
Volume Management (4)
| Tool | What It Does |
|---|---|
docker_volumeCreate |
Create a named volume with optional driver and labels |
docker_volumeRm |
Remove one or more volumes |
docker_volumeInspect |
Display detailed volume information |
docker_volumePrune |
Remove all unused volumes |
Network Management (6)
| Tool | What It Does |
|---|---|
docker_networkCreate |
Create a network (bridge, overlay, macvlan) |
docker_networkRm |
Remove one or more networks |
docker_networkConnect |
Connect a container to a network |
docker_networkDisconnect |
Disconnect a container from a network |
docker_networkInspect |
Display detailed network information |
docker_networkPrune |
Remove all unused networks |
Cleanup / Prune (3)
| Tool | What It Does |
|---|---|
docker_systemPrune |
Remove unused containers, networks, images, and optionally volumes |
docker_containerPrune |
Remove all stopped containers |
docker_imagePrune |
Remove dangling or unused images |
Advanced / Observability (6)
| Tool | What It Does |
|---|---|
docker_cp |
Copy files or directories between a container and the local filesystem |
docker_stats |
Show live resource usage statistics (CPU, memory, network I/O) |
docker_top |
Show running processes in a container |
docker_events |
Stream real-time events from the Docker daemon |
docker_update |
Update container resource configuration (CPU, memory, restart policy) |
docker_wait |
Block until a container stops and return its exit code |
Buildx (8)
| Tool | What It Does |
|---|---|
docker_buildxBuild |
Multi-platform builds with buildx (cache export, provenance, push/load) |
docker_buildxLs |
List buildx builder instances |
docker_buildxCreate |
Create a new buildx builder instance |
docker_buildxRm |
Remove a buildx builder instance |
docker_buildxInspect |
Inspect a buildx builder instance |
docker_buildxUse |
Set the default buildx builder |
docker_buildxImagetools |
Inspect or create multi-platform manifest lists via buildx |
docker_builderPrune |
Remove buildx build cache |
Manifest (5)
| Tool | What It Does |
|---|---|
docker_manifestCreate |
Create a local manifest list for multi-architecture images |
docker_manifestInspect |
Display an image manifest or manifest list |
docker_manifestAnnotate |
Add platform information to a manifest list entry |
docker_manifestPush |
Push a manifest list to a registry |
docker_manifestRm |
Remove local manifest lists |
Container Gaps (4)
| Tool | What It Does |
|---|---|
docker_diff |
Inspect filesystem changes in a container (added, changed, deleted files) |
docker_export |
Export a container's filesystem as a tar archive |
docker_port |
List port mappings or a specific mapping for a container |
docker_rename |
Rename a Docker container |
Image Gaps (2)
| Tool | What It Does |
|---|---|
docker_imageHistory |
Show layer history of an image (commands, sizes, timestamps) |
docker_import |
Import a tarball to create a Docker filesystem image |
Context Management (6)
| Tool | What It Does |
|---|---|
docker_contextCreate |
Create a Docker context for connecting to remote hosts |
docker_contextLs |
List available Docker contexts |
docker_contextInspect |
Display detailed information on a Docker context |
docker_contextRm |
Remove one or more Docker contexts |
docker_contextUse |
Set the current active Docker context |
docker_contextShow |
Print the name of the current Docker context |
Registry Authentication (2)
| Tool | What It Does |
|---|---|
docker_login |
Authenticate to a Docker container registry |
docker_logout |
Log out from a Docker container registry |
Swarm Cluster (8)
| Tool | What It Does |
|---|---|
docker_swarmInit |
Initialize a new Docker Swarm cluster |
docker_swarmJoin |
Join an existing Swarm as worker or manager |
docker_swarmLeave |
Leave the Docker Swarm |
docker_swarmJoinToken |
Display or rotate join tokens |
docker_swarmUpdate |
Update Swarm configuration |
docker_swarmUnlock |
Unlock a locked Swarm manager |
docker_swarmUnlockKey |
Display or rotate the unlock key |
docker_swarmCa |
Display and rotate the root CA certificate |
Swarm Services (9)
| Tool | What It Does |
|---|---|
docker_serviceCreate |
Create a replicated or global Swarm service |
docker_serviceUpdate |
Update a service (image, replicas, env, resources) |
docker_serviceRm |
Remove Swarm services |
docker_serviceLs |
List Swarm services |
docker_serviceInspect |
Inspect detailed service configuration |
docker_serviceLogs |
Fetch service or task logs |
docker_servicePs |
List tasks of a service |
docker_serviceScale |
Scale services to target replica count |
docker_serviceRollback |
Revert a service to its previous version |
Swarm Nodes (7)
| Tool | What It Does |
|---|---|
docker_nodeLs |
List nodes in the Swarm |
docker_nodeInspect |
Inspect detailed node information |
docker_nodePs |
List tasks running on a node |
docker_nodeRm |
Remove nodes from the Swarm |
docker_nodeUpdate |
Update node availability, role, or labels |
docker_nodePromote |
Promote workers to managers |
docker_nodeDemote |
Demote managers to workers |
Swarm Stacks (6)
| Tool | What It Does |
|---|---|
docker_stackDeploy |
Deploy or update a stack from a compose file |
docker_stackRm |
Remove Swarm stacks |
docker_stackLs |
List Swarm stacks |
docker_stackPs |
List tasks in a stack |
docker_stackServices |
List services in a stack |
docker_stackConfig |
Output merged stack configuration |
Swarm Configs (4)
| Tool | What It Does |
|---|---|
docker_configCreate |
Create a Swarm config from a file |
docker_configInspect |
Inspect a Swarm config |
docker_configLs |
List Swarm configs |
docker_configRm |
Remove Swarm configs |
Swarm Secrets (4)
| Tool | What It Does |
|---|---|
docker_secretCreate |
Create a Swarm secret from a file |
docker_secretInspect |
Inspect a Swarm secret (metadata only) |
docker_secretLs |
List Swarm secrets |
docker_secretRm |
Remove Swarm secrets |
Docker Content Trust (4)
| Tool | What It Does |
|---|---|
docker_trustInspect |
Inspect trust data for an image |
docker_trustSign |
Sign an image for Docker Content Trust |
docker_trustRevoke |
Revoke trust for an image |
docker_trustKey |
Manage signing keys (generate or load) |
Utility (2)
| Tool | What It Does |
|---|---|
docker_version |
Show Docker client and server version information |
docker_composeVersion |
Show Docker Compose version information |
Compose Extras (1)
| Tool | What It Does |
|---|---|
docker_composeWatch |
Watch build context and auto-rebuild on file changes |
Docker Scout (3)
| Tool | What It Does |
|---|---|
docker_scoutQuickview |
Quick overview of image vulnerabilities |
docker_scoutCves |
List CVEs found in an image with severity filters |
docker_scoutRecommendations |
Get base image update recommendations |
Plugin Management (4)
| Tool | What It Does |
|---|---|
docker_pluginLs |
List installed Docker plugins |
docker_pluginInstall |
Install a Docker plugin from a registry |
docker_pluginRm |
Remove one or more Docker plugins |
docker_pluginEnable |
Enable a disabled Docker plugin |
Installation
Symlink this repo into your Cursor plugins directory:
# Windows (PowerShell - run as admin)
New-Item -ItemType SymbolicLink `
-Path "$env:USERPROFILE\.cursor\plugins\docker-developer-tools" `
-Target "<path-to>\Docker-Developer-Tools"# macOS / Linux
ln -s /path/to/Docker-Developer-Tools ~/.cursor/plugins/docker-developer-toolsBuild and configure the MCP server:
cd mcp-server
npm install
npm run buildThen add the JSON config from the MCP Server section to .cursor/mcp.json.
Claude Code reads CLAUDE.md automatically when you open this repo. For the MCP server, register it with:
cd mcp-server && npm install && npm run build
claude mcp add docker node ./mcp-server/dist/index.jsOr if installed globally via npm:
npm install -g @tmhs/docker-mcp
claude mcp add docker -- npx @tmhs/docker-mcpAny client supporting MCP stdio transport can use the Docker MCP server. Point it at node ./mcp-server/dist/index.js or the global npx @tmhs/docker-mcp.
Example Prompts - one per skill
| Skill | Try This |
|---|---|
dockerfile-best-practices |
"Write a production Dockerfile for a Python Flask app" |
docker-compose-helper |
"Create a compose file with Nginx, Rails, Postgres, and Redis" |
docker-troubleshooting |
"My container exits with code 137 - what's wrong?" |
image-optimization |
"My Node image is 1.2 GB - help me shrink it" |
docker-resource-management |
"Set memory and CPU limits for my compose services" |
docker-networking |
"Two containers can't talk to each other - fix my networking" |
docker-volumes |
"Back up my Postgres data volume to a tar archive" |
docker-security |
"Audit my Dockerfile for security issues" |
docker-ci-cd |
"Build and push my image in GitHub Actions with layer caching" |
docker-registry |
"Set up a private registry with authentication" |
docker-development-env |
"Create a dev container with hot reload for my Go project" |
container-debugging |
"Show me the logs and processes inside my crashing container" |
docker-advanced-workflows |
"Set up healthchecks and graceful shutdown for my Node.js container" |
docker-multi-platform |
"Build my Go API image for both amd64 and arm64 with buildx" |
docker-context-management |
"Set up a Docker context for my remote staging server via SSH" |
docker-swarm |
"Initialize a Swarm cluster and deploy a 3-replica nginx service" |
docker-image-signing |
"Set up Docker Content Trust and sign our production images" |
Roadmap
| Version | Theme | MCP Tools | Highlights |
|---|---|---|---|
| v0.1.0 | Foundation | 10 | 12 skills, 6 rules, 10 read-only MCP tools |
| v0.2.0 | Container Lifecycle | +10 | run, start, stop, restart, kill, rm, exec, pause |
| v0.3.0 | Image and Build | +8 | pull, push, build, tag, rmi, commit, save, load |
| v0.4.0 | Compose | +8 | up, down, ps, logs, build, restart, pull, exec |
| v0.5.0 | Volumes, Networks, Cleanup | +12 | volume/network CRUD, system/container/image prune |
| v0.6.0 | Advanced and Observability | +6 | cp, stats, top, events, update, wait |
| v0.7.0 | Buildx, Manifests, Registry | +13 | Buildx tools, manifest lists, builder management |
| v0.8.0 | Compose Completeness | +16 | All remaining compose commands (config, cp, kill, scale, etc.) |
| v0.9.0 | Container/Image Gaps, Context, Auth | +14 | diff, export, port, rename, history, import, contexts, login |
| v0.10.0 | Swarm Orchestration | +24 | Swarm init/join, services, nodes, scaling, rollback |
| v0.11.0 | Swarm Stacks, Configs, Secrets, Trust | +18 | Stack deploy, config/secret CRUD, content trust |
| v0.12.0 | Niche, Scout, Extras | +10 | Version info, Scout CVEs, plugins, compose watch |
| v1.0.0 | Stable | +0 | Production release (~150 MCP tools) |
Contributions welcome - see CONTRIBUTING.md. Found a bug? Open an issue.
CC-BY-NC-ND-4.0 - Copyright 2026 TM Hospitality Strategies. See LICENSE.
Built by TMHSDigital
