{"id":47709451,"url":"https://github.com/tmhsdigital/docker-developer-tools","last_synced_at":"2026-05-24T02:02:05.134Z","repository":{"id":347808820,"uuid":"1195357027","full_name":"TMHSDigital/Docker-Developer-Tools","owner":"TMHSDigital","description":"Cursor IDE plugin for Docker workflows. 17 skills, 10 rules, 150 MCP tools. v1.0.0 stable.","archived":false,"fork":false,"pushed_at":"2026-04-25T16:14:10.000Z","size":3861,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-25T16:28:22.610Z","etag":null,"topics":["containers","cursor-plugin","devops","docker","docker-compose","dockerfile","mcp"],"latest_commit_sha":null,"homepage":"https://tmhsdigital.github.io/Docker-Developer-Tools/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TMHSDigital.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":["TMHSDigital"]}},"created_at":"2026-03-29T15:18:20.000Z","updated_at":"2026-04-25T16:14:13.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/TMHSDigital/Docker-Developer-Tools","commit_stats":null,"previous_names":["tmhsdigital/docker-developer-tools"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/TMHSDigital/Docker-Developer-Tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FDocker-Developer-Tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FDocker-Developer-Tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FDocker-Developer-Tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FDocker-Developer-Tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TMHSDigital","download_url":"https://codeload.github.com/TMHSDigital/Docker-Developer-Tools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FDocker-Developer-Tools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33418550,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T22:14:44.296Z","status":"online","status_checked_at":"2026-05-24T02:00:06.296Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["containers","cursor-plugin","devops","docker","docker-compose","dockerfile","mcp"],"created_at":"2026-04-02T18:26:34.060Z","updated_at":"2026-05-24T02:02:05.126Z","avatar_url":"https://github.com/TMHSDigital.png","language":"TypeScript","funding_links":["https://github.com/sponsors/TMHSDigital"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/logo.png\" alt=\"Docker Developer Tools Logo\" width=\"100\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eDocker Developer Tools\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eExpert Docker workflows for Cursor, Claude Code, and any MCP-compatible editor.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/TMHSDigital/Docker-Developer-Tools/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/badge/version-1.3.6-0db7ed?style=flat-square\" alt=\"Version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/TMHSDigital/Docker-Developer-Tools/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/TMHSDigital/Docker-Developer-Tools?style=flat-square\u0026color=0db7ed\u0026label=release\" alt=\"Release\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@tmhs/docker-mcp\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@tmhs/docker-mcp?style=flat-square\u0026color=066da5\u0026label=npm\" alt=\"npm\" /\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-CC--BY--NC--ND--4.0-384d54?style=flat-square\" alt=\"License\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://tmhsdigital.github.io/Docker-Developer-Tools/\"\u003e\u003cimg src=\"https://img.shields.io/badge/docs-website-0db7ed?style=flat-square\" alt=\"Docs\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/TMHSDigital/Docker-Developer-Tools/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/TMHSDigital/Docker-Developer-Tools/ci.yml?branch=main\u0026style=flat-square\u0026label=CI\" alt=\"CI\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/TMHSDigital/Docker-Developer-Tools/actions/workflows/validate.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/TMHSDigital/Docker-Developer-Tools/validate.yml?branch=main\u0026style=flat-square\u0026label=validate\" alt=\"Validate\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/TMHSDigital/Docker-Developer-Tools/actions/workflows/codeql.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/TMHSDigital/Docker-Developer-Tools/codeql.yml?branch=main\u0026style=flat-square\u0026label=CodeQL\" alt=\"CodeQL\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/TMHSDigital/Docker-Developer-Tools/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/TMHSDigital/Docker-Developer-Tools?style=flat-square\u0026color=384d54\" alt=\"Stars\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/TMHSDigital/Docker-Developer-Tools/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/TMHSDigital/Docker-Developer-Tools?style=flat-square\u0026color=384d54\" alt=\"Issues\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@tmhs/docker-mcp\"\u003e\u003cimg src=\"https://img.shields.io/npm/dm/@tmhs/docker-mcp?style=flat-square\u0026color=384d54\u0026label=downloads\" alt=\"Downloads\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e17 skills\u003c/strong\u003e\u0026nbsp;\u0026bull;\u0026nbsp;\u003cstrong\u003e10 rules\u003c/strong\u003e\u0026nbsp;\u0026bull;\u0026nbsp;\u003cstrong\u003e150 MCP tools\u003c/strong\u003e\n\u003c/p\u003e\n\n---\n\n## Compatibility\n\nThis project works with any AI coding tool that supports skills, rules, or MCP:\n\n| Component | Cursor | Claude Code (terminal) | Claude Code in Cursor | Other MCP clients |\n|---|:---:|:---:|:---:|:---:|\n| **CLAUDE.md** context | Yes | Yes | Yes | - |\n| **17 Skills** (SKILL.md) | Yes | Yes | Yes | - |\n| **10 Rules** (.mdc) | Yes | Via CLAUDE.md | Yes | - |\n| **150 MCP tools** | Yes | Yes | Yes | Yes |\n\n\u003e **Claude Code** reads `CLAUDE.md` automatically and can reference skills. The MCP server works with any client that supports the MCP stdio transport.\n\n## Quick Start\n\nInstall the plugin, then ask anything about Docker:\n\n```text\n\"Write a production Dockerfile for my Node.js app with multi-stage builds\"\n\"My container keeps restarting - help me debug it\"\n\"Set up a docker-compose stack with Postgres, Redis, and my API\"\n```\n\n## How It Works\n\n```mermaid\nflowchart LR\n    A[User asks Docker question] --\u003e B[AI loads a Skill]\n    B --\u003e C[Skill guides the response]\n    C --\u003e D[MCP tools fetch live Docker data]\n    D --\u003e E[User gets expert help]\n```\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e17 Skills\u003c/strong\u003e - on-demand Docker expertise\u003c/summary\u003e\n\n\u0026nbsp;\n\n| Category | Skill | Description |\n|---|---|---|\n| **Core** | `dockerfile-best-practices` | Multi-stage builds, layer caching, base image selection |\n| **Core** | `docker-compose-helper` | Service definitions, networking, volumes, environment config |\n| **Core** | `docker-troubleshooting` | Diagnose crashes, restarts, network failures, and permission issues |\n| **Optimization** | `image-optimization` | Reduce image size, speed up builds, minimize attack surface |\n| **Optimization** | `docker-resource-management` | CPU/memory limits, resource monitoring, OOM prevention |\n| **Networking \u0026 Storage** | `docker-networking` | Bridge, overlay, host networking, DNS resolution, port mapping |\n| **Networking \u0026 Storage** | `docker-volumes` | Named volumes, bind mounts, tmpfs, backup and restore strategies |\n| **Security** | `docker-security` | Image scanning, rootless containers, secrets management, hardening |\n| **DevOps** | `docker-ci-cd` | GitHub Actions, GitLab CI, build caching, registry push workflows |\n| **DevOps** | `docker-registry` | Private registries, image tagging strategies, cleanup policies |\n| **DevOps** | `docker-development-env` | Dev containers, hot reload, debugger attachment, local stacks |\n| **Debugging** | `container-debugging` | Exec into containers, log analysis, health checks, process inspection |\n| **Advanced** | `docker-advanced-workflows` | Multi-stage pipelines, sidecar patterns, healthchecks, signal handling |\n| **Advanced** | `docker-multi-platform` | Multi-arch builds, buildx configuration, manifest lists, platform targeting |\n| **Advanced** | `docker-context-management` | Remote Docker hosts, SSH/TLS contexts, multi-host workflows |\n| **Orchestration** | `docker-swarm` | Swarm cluster management, service deployment, scaling, node administration |\n| **Security** | `docker-image-signing` | Docker Content Trust, image signing, verification, key management |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e10 Rules\u003c/strong\u003e - automatic best-practice enforcement\u003c/summary\u003e\n\n\u0026nbsp;\n\n| Rule | Scope | What It Does |\n|---|---|---|\n| `dockerfile-lint` | `**/Dockerfile*` | Flag antipatterns - unpinned bases, root user, ADD misuse, missing cleanup |\n| `docker-secrets` | Global (always active) | Flag hardcoded passwords, tokens, and registry credentials |\n| `compose-validation` | Compose files | Flag missing healthchecks, privileged mode, host networking |\n| `docker-resource-limits` | Docker-related files | Flag missing memory and CPU limits |\n| `docker-image-pinning` | Dockerfiles, compose files | Flag unpinned image tags (`:latest` or no tag) |\n| `docker-port-conflicts` | Dockerfiles, compose files | Flag commonly conflicting port mappings |\n| `docker-logging` | Dockerfiles, compose files | Flag missing logging drivers and log rotation |\n| `buildx-best-practices` | Dockerfiles, compose files | Flag multi-platform build issues, missing cache config, arch hardcoding |\n| `compose-scaling` | Compose files | Flag scaling blockers: container_name, fixed host ports, missing limits |\n| `swarm-security` | Docker-related files | Flag missing autolock, unrotated certs, unencrypted overlays, exposed ports |\n\n\u003c/details\u003e\n\n---\n\n## Companion: Docker MCP Server\n\nThe MCP server gives your AI assistant live access to your local Docker environment. Works with Cursor, Claude Code, and any MCP-compatible client.\n\n\u003cp\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@tmhs/docker-mcp\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@tmhs/docker-mcp\" alt=\"npm version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@tmhs/docker-mcp\"\u003e\u003cimg src=\"https://img.shields.io/npm/dm/@tmhs/docker-mcp\" alt=\"npm downloads\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nAdd to your Cursor MCP config (`.cursor/mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"docker\": {\n      \"command\": \"node\",\n      \"args\": [\"./mcp-server/dist/index.js\"],\n      \"cwd\": \"\u003cpath-to\u003e/Docker-Developer-Tools\"\n    }\n  }\n}\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e150 MCP Tools\u003c/strong\u003e - full tool reference\u003c/summary\u003e\n\n\u0026nbsp;\n\n**Read / Inspect** (10)\n\n| Tool | What It Does |\n|---|---|\n| `docker_listContainers` | List running and stopped containers with status, ports, and names |\n| `docker_inspectContainer` | Get detailed config, state, and networking for a specific container |\n| `docker_containerLogs` | Retrieve stdout/stderr logs with optional tail and timestamp filters |\n| `docker_listImages` | List local images with tags, sizes, and creation dates |\n| `docker_inspectImage` | Get layer history, environment variables, and labels for an image |\n| `docker_listVolumes` | List Docker volumes with driver and mount point info |\n| `docker_listNetworks` | List Docker networks with driver, scope, and connected containers |\n| `docker_diskUsage` | Show disk space used by images, containers, volumes, and build cache |\n| `docker_systemInfo` | Return Docker daemon version, OS, storage driver, and runtime info |\n| `docker_searchHub` | Search Docker Hub for images by name with filtering options |\n\n**Container Lifecycle** (10)\n\n| Tool | What It Does |\n|---|---|\n| `docker_run` | Create and start a container from an image (ports, env, volumes, network) |\n| `docker_create` | Create a container without starting it |\n| `docker_start` | Start a stopped container |\n| `docker_stop` | Stop a running container with optional grace period |\n| `docker_restart` | Restart a container with optional grace period |\n| `docker_kill` | Send a signal to a running container (default: SIGKILL) |\n| `docker_rm` | Remove a container (with optional force and volume removal) |\n| `docker_pause` | Pause all processes in a running container |\n| `docker_unpause` | Unpause a paused container |\n| `docker_exec` | Execute a command in a running container |\n\n**Image and Build** (8)\n\n| Tool | What It Does |\n|---|---|\n| `docker_pull` | Pull an image or repository from a registry |\n| `docker_push` | Push an image or repository to a registry |\n| `docker_build` | Build an image from a Dockerfile and context directory |\n| `docker_tag` | Create a tag that refers to a source image |\n| `docker_rmi` | Remove one or more images |\n| `docker_commit` | Create a new image from a container's changes |\n| `docker_save` | Save one or more images to a tar archive |\n| `docker_load` | Load images from a tar archive |\n\n**Compose** (24)\n\n| Tool | What It Does |\n|---|---|\n| `docker_composeUp` | Create and start Compose services (detached, build, profiles) |\n| `docker_composeDown` | Stop and remove containers, networks, volumes, and images |\n| `docker_composePs` | List containers for a Compose project |\n| `docker_composeLogs` | View logs for Compose services |\n| `docker_composeBuild` | Build or rebuild Compose service images |\n| `docker_composeRestart` | Restart Compose services |\n| `docker_composePull` | Pull images for Compose services |\n| `docker_composeExec` | Execute a command in a running Compose service container |\n| `docker_composeConfig` | Validate, resolve, and render a Compose file in canonical format |\n| `docker_composeCp` | Copy files between a Compose service container and local filesystem |\n| `docker_composeCreate` | Create service containers without starting them |\n| `docker_composeEvents` | Receive real-time events from Compose containers |\n| `docker_composeImages` | List images used by Compose service containers |\n| `docker_composeKill` | Force stop Compose service containers |\n| `docker_composeLs` | List running Compose projects |\n| `docker_composePause` | Pause Compose services |\n| `docker_composeUnpause` | Unpause Compose services |\n| `docker_composePort` | Print the public port for a Compose service port binding |\n| `docker_composeRm` | Remove stopped Compose service containers |\n| `docker_composeRun` | Run a one-off command on a Compose service |\n| `docker_composeScale` | Scale Compose services to a specified replica count |\n| `docker_composeStart` | Start existing Compose service containers |\n| `docker_composeStop` | Stop Compose services without removing containers |\n| `docker_composeTop` | Display running processes in Compose service containers |\n\n**Volume Management** (4)\n\n| Tool | What It Does |\n|---|---|\n| `docker_volumeCreate` | Create a named volume with optional driver and labels |\n| `docker_volumeRm` | Remove one or more volumes |\n| `docker_volumeInspect` | Display detailed volume information |\n| `docker_volumePrune` | Remove all unused volumes |\n\n**Network Management** (6)\n\n| Tool | What It Does |\n|---|---|\n| `docker_networkCreate` | Create a network (bridge, overlay, macvlan) |\n| `docker_networkRm` | Remove one or more networks |\n| `docker_networkConnect` | Connect a container to a network |\n| `docker_networkDisconnect` | Disconnect a container from a network |\n| `docker_networkInspect` | Display detailed network information |\n| `docker_networkPrune` | Remove all unused networks |\n\n**Cleanup / Prune** (3)\n\n| Tool | What It Does |\n|---|---|\n| `docker_systemPrune` | Remove unused containers, networks, images, and optionally volumes |\n| `docker_containerPrune` | Remove all stopped containers |\n| `docker_imagePrune` | Remove dangling or unused images |\n\n**Advanced / Observability** (6)\n\n| Tool | What It Does |\n|---|---|\n| `docker_cp` | Copy files or directories between a container and the local filesystem |\n| `docker_stats` | Show live resource usage statistics (CPU, memory, network I/O) |\n| `docker_top` | Show running processes in a container |\n| `docker_events` | Stream real-time events from the Docker daemon |\n| `docker_update` | Update container resource configuration (CPU, memory, restart policy) |\n| `docker_wait` | Block until a container stops and return its exit code |\n\n**Buildx** (8)\n\n| Tool | What It Does |\n|---|---|\n| `docker_buildxBuild` | Multi-platform builds with buildx (cache export, provenance, push/load) |\n| `docker_buildxLs` | List buildx builder instances |\n| `docker_buildxCreate` | Create a new buildx builder instance |\n| `docker_buildxRm` | Remove a buildx builder instance |\n| `docker_buildxInspect` | Inspect a buildx builder instance |\n| `docker_buildxUse` | Set the default buildx builder |\n| `docker_buildxImagetools` | Inspect or create multi-platform manifest lists via buildx |\n| `docker_builderPrune` | Remove buildx build cache |\n\n**Manifest** (5)\n\n| Tool | What It Does |\n|---|---|\n| `docker_manifestCreate` | Create a local manifest list for multi-architecture images |\n| `docker_manifestInspect` | Display an image manifest or manifest list |\n| `docker_manifestAnnotate` | Add platform information to a manifest list entry |\n| `docker_manifestPush` | Push a manifest list to a registry |\n| `docker_manifestRm` | Remove local manifest lists |\n\n**Container Gaps** (4)\n\n| Tool | What It Does |\n|---|---|\n| `docker_diff` | Inspect filesystem changes in a container (added, changed, deleted files) |\n| `docker_export` | Export a container's filesystem as a tar archive |\n| `docker_port` | List port mappings or a specific mapping for a container |\n| `docker_rename` | Rename a Docker container |\n\n**Image Gaps** (2)\n\n| Tool | What It Does |\n|---|---|\n| `docker_imageHistory` | Show layer history of an image (commands, sizes, timestamps) |\n| `docker_import` | Import a tarball to create a Docker filesystem image |\n\n**Context Management** (6)\n\n| Tool | What It Does |\n|---|---|\n| `docker_contextCreate` | Create a Docker context for connecting to remote hosts |\n| `docker_contextLs` | List available Docker contexts |\n| `docker_contextInspect` | Display detailed information on a Docker context |\n| `docker_contextRm` | Remove one or more Docker contexts |\n| `docker_contextUse` | Set the current active Docker context |\n| `docker_contextShow` | Print the name of the current Docker context |\n\n**Registry Authentication** (2)\n\n| Tool | What It Does |\n|---|---|\n| `docker_login` | Authenticate to a Docker container registry |\n| `docker_logout` | Log out from a Docker container registry |\n\n**Swarm Cluster** (8)\n\n| Tool | What It Does |\n|---|---|\n| `docker_swarmInit` | Initialize a new Docker Swarm cluster |\n| `docker_swarmJoin` | Join an existing Swarm as worker or manager |\n| `docker_swarmLeave` | Leave the Docker Swarm |\n| `docker_swarmJoinToken` | Display or rotate join tokens |\n| `docker_swarmUpdate` | Update Swarm configuration |\n| `docker_swarmUnlock` | Unlock a locked Swarm manager |\n| `docker_swarmUnlockKey` | Display or rotate the unlock key |\n| `docker_swarmCa` | Display and rotate the root CA certificate |\n\n**Swarm Services** (9)\n\n| Tool | What It Does |\n|---|---|\n| `docker_serviceCreate` | Create a replicated or global Swarm service |\n| `docker_serviceUpdate` | Update a service (image, replicas, env, resources) |\n| `docker_serviceRm` | Remove Swarm services |\n| `docker_serviceLs` | List Swarm services |\n| `docker_serviceInspect` | Inspect detailed service configuration |\n| `docker_serviceLogs` | Fetch service or task logs |\n| `docker_servicePs` | List tasks of a service |\n| `docker_serviceScale` | Scale services to target replica count |\n| `docker_serviceRollback` | Revert a service to its previous version |\n\n**Swarm Nodes** (7)\n\n| Tool | What It Does |\n|---|---|\n| `docker_nodeLs` | List nodes in the Swarm |\n| `docker_nodeInspect` | Inspect detailed node information |\n| `docker_nodePs` | List tasks running on a node |\n| `docker_nodeRm` | Remove nodes from the Swarm |\n| `docker_nodeUpdate` | Update node availability, role, or labels |\n| `docker_nodePromote` | Promote workers to managers |\n| `docker_nodeDemote` | Demote managers to workers |\n\n**Swarm Stacks** (6)\n\n| Tool | What It Does |\n|---|---|\n| `docker_stackDeploy` | Deploy or update a stack from a compose file |\n| `docker_stackRm` | Remove Swarm stacks |\n| `docker_stackLs` | List Swarm stacks |\n| `docker_stackPs` | List tasks in a stack |\n| `docker_stackServices` | List services in a stack |\n| `docker_stackConfig` | Output merged stack configuration |\n\n**Swarm Configs** (4)\n\n| Tool | What It Does |\n|---|---|\n| `docker_configCreate` | Create a Swarm config from a file |\n| `docker_configInspect` | Inspect a Swarm config |\n| `docker_configLs` | List Swarm configs |\n| `docker_configRm` | Remove Swarm configs |\n\n**Swarm Secrets** (4)\n\n| Tool | What It Does |\n|---|---|\n| `docker_secretCreate` | Create a Swarm secret from a file |\n| `docker_secretInspect` | Inspect a Swarm secret (metadata only) |\n| `docker_secretLs` | List Swarm secrets |\n| `docker_secretRm` | Remove Swarm secrets |\n\n**Docker Content Trust** (4)\n\n| Tool | What It Does |\n|---|---|\n| `docker_trustInspect` | Inspect trust data for an image |\n| `docker_trustSign` | Sign an image for Docker Content Trust |\n| `docker_trustRevoke` | Revoke trust for an image |\n| `docker_trustKey` | Manage signing keys (generate or load) |\n\n**Utility** (2)\n\n| Tool | What It Does |\n|---|---|\n| `docker_version` | Show Docker client and server version information |\n| `docker_composeVersion` | Show Docker Compose version information |\n\n**Compose Extras** (1)\n\n| Tool | What It Does |\n|---|---|\n| `docker_composeWatch` | Watch build context and auto-rebuild on file changes |\n\n**Docker Scout** (3)\n\n| Tool | What It Does |\n|---|---|\n| `docker_scoutQuickview` | Quick overview of image vulnerabilities |\n| `docker_scoutCves` | List CVEs found in an image with severity filters |\n| `docker_scoutRecommendations` | Get base image update recommendations |\n\n**Plugin Management** (4)\n\n| Tool | What It Does |\n|---|---|\n| `docker_pluginLs` | List installed Docker plugins |\n| `docker_pluginInstall` | Install a Docker plugin from a registry |\n| `docker_pluginRm` | Remove one or more Docker plugins |\n| `docker_pluginEnable` | Enable a disabled Docker plugin |\n\n\u003c/details\u003e\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eInstallation\u003c/strong\u003e\u003c/summary\u003e\n\n\u0026nbsp;\n\n### Cursor (plugin + MCP)\n\nSymlink this repo into your Cursor plugins directory:\n\n```powershell\n# Windows (PowerShell - run as admin)\nNew-Item -ItemType SymbolicLink `\n  -Path \"$env:USERPROFILE\\.cursor\\plugins\\docker-developer-tools\" `\n  -Target \"\u003cpath-to\u003e\\Docker-Developer-Tools\"\n```\n\n```bash\n# macOS / Linux\nln -s /path/to/Docker-Developer-Tools ~/.cursor/plugins/docker-developer-tools\n```\n\nBuild and configure the MCP server:\n\n```bash\ncd mcp-server\nnpm install\nnpm run build\n```\n\nThen add the JSON config from the [MCP Server section](#companion-docker-mcp-server) to `.cursor/mcp.json`.\n\n### Claude Code (terminal or in Cursor)\n\nClaude Code reads `CLAUDE.md` automatically when you open this repo. For the MCP server, register it with:\n\n```bash\ncd mcp-server \u0026\u0026 npm install \u0026\u0026 npm run build\nclaude mcp add docker node ./mcp-server/dist/index.js\n```\n\nOr if installed globally via npm:\n\n```bash\nnpm install -g @tmhs/docker-mcp\nclaude mcp add docker -- npx @tmhs/docker-mcp\n```\n\n### Other MCP clients\n\nAny 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`.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eExample Prompts\u003c/strong\u003e - one per skill\u003c/summary\u003e\n\n\u0026nbsp;\n\n| Skill | Try This |\n|---|---|\n| `dockerfile-best-practices` | \"Write a production Dockerfile for a Python Flask app\" |\n| `docker-compose-helper` | \"Create a compose file with Nginx, Rails, Postgres, and Redis\" |\n| `docker-troubleshooting` | \"My container exits with code 137 - what's wrong?\" |\n| `image-optimization` | \"My Node image is 1.2 GB - help me shrink it\" |\n| `docker-resource-management` | \"Set memory and CPU limits for my compose services\" |\n| `docker-networking` | \"Two containers can't talk to each other - fix my networking\" |\n| `docker-volumes` | \"Back up my Postgres data volume to a tar archive\" |\n| `docker-security` | \"Audit my Dockerfile for security issues\" |\n| `docker-ci-cd` | \"Build and push my image in GitHub Actions with layer caching\" |\n| `docker-registry` | \"Set up a private registry with authentication\" |\n| `docker-development-env` | \"Create a dev container with hot reload for my Go project\" |\n| `container-debugging` | \"Show me the logs and processes inside my crashing container\" |\n| `docker-advanced-workflows` | \"Set up healthchecks and graceful shutdown for my Node.js container\" |\n| `docker-multi-platform` | \"Build my Go API image for both amd64 and arm64 with buildx\" |\n| `docker-context-management` | \"Set up a Docker context for my remote staging server via SSH\" |\n| `docker-swarm` | \"Initialize a Swarm cluster and deploy a 3-replica nginx service\" |\n| `docker-image-signing` | \"Set up Docker Content Trust and sign our production images\" |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eRoadmap\u003c/strong\u003e\u003c/summary\u003e\n\n\u0026nbsp;\n\n| Version | Theme | MCP Tools | Highlights |\n|---|---|---|---|\n| **v0.1.0** | Foundation | 10 | 12 skills, 6 rules, 10 read-only MCP tools |\n| **v0.2.0** | Container Lifecycle | +10 | run, start, stop, restart, kill, rm, exec, pause |\n| **v0.3.0** | Image and Build | +8 | pull, push, build, tag, rmi, commit, save, load |\n| **v0.4.0** | Compose | +8 | up, down, ps, logs, build, restart, pull, exec |\n| **v0.5.0** | Volumes, Networks, Cleanup | +12 | volume/network CRUD, system/container/image prune |\n| **v0.6.0** | Advanced and Observability | +6 | cp, stats, top, events, update, wait |\n| **v0.7.0** | Buildx, Manifests, Registry | +13 | Buildx tools, manifest lists, builder management |\n| **v0.8.0** | Compose Completeness | +16 | All remaining compose commands (config, cp, kill, scale, etc.) |\n| **v0.9.0** | Container/Image Gaps, Context, Auth | +14 | diff, export, port, rename, history, import, contexts, login |\n| **v0.10.0** | Swarm Orchestration | +24 | Swarm init/join, services, nodes, scaling, rollback |\n| **v0.11.0** | Swarm Stacks, Configs, Secrets, Trust | +18 | Stack deploy, config/secret CRUD, content trust |\n| **v0.12.0** | Niche, Scout, Extras | +10 | Version info, Scout CVEs, plugins, compose watch |\n| **v1.0.0** | Stable | +0 | Production release (~150 MCP tools) |\n\n\u003c/details\u003e\n\n---\n\n## Contributing\n\nContributions welcome - see [CONTRIBUTING.md](CONTRIBUTING.md). Found a bug? [Open an issue](https://github.com/TMHSDigital/Docker-Developer-Tools/issues).\n\n## License\n\n**CC-BY-NC-ND-4.0** - Copyright 2026 TM Hospitality Strategies. See [LICENSE](LICENSE).\n\n\u003cp align=\"center\"\u003e\n  Built by \u003ca href=\"https://github.com/TMHSDigital\"\u003eTMHSDigital\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmhsdigital%2Fdocker-developer-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftmhsdigital%2Fdocker-developer-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmhsdigital%2Fdocker-developer-tools/lists"}