Skip to content

Commit 147d564

Browse files
committed
v0.10.0: Swarm Orchestration - 24 new MCP tools, 1 skill, 1 rule
Add 24 Swarm orchestration tools covering cluster management (init, join, leave, join-token, update, unlock, unlock-key, ca), service lifecycle (create, update, rm, ls, inspect, logs, ps, scale, rollback), and node administration (ls, inspect, ps, rm, update, promote, demote). New docker-swarm skill for Swarm mode patterns and swarm-security rule for autolock, cert rotation, encrypted overlays, and resource limits. Totals: 122 MCP tools, 16 skills, 10 rules. Made-with: Cursor
1 parent b2968f7 commit 147d564

36 files changed

+1614
-26
lines changed

.cursor-plugin/plugin.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"name": "docker-developer-tools",
33
"displayName": "Docker Developer Tools",
4-
"version": "0.9.0",
5-
"description": "A Cursor plugin for Docker and container workflows - 15 skills, 9 rules, and 98 MCP tools for building, debugging, optimizing, and managing Docker containers, images, networks, and volumes. Includes a companion MCP server (docker-mcp) for live Docker CLI integration.",
4+
"version": "0.10.0",
5+
"description": "A Cursor plugin for Docker and container workflows - 16 skills, 10 rules, and 122 MCP tools for building, debugging, optimizing, and managing Docker containers, images, networks, and volumes. Includes a companion MCP server (docker-mcp) for live Docker CLI integration.",
66
"author": {
77
"name": "TMHSDigital",
88
"url": "https://github.com/TMHSDigital"

CHANGELOG.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,42 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.10.0] - 2026-03-29
9+
10+
### Added
11+
12+
#### MCP Server - Swarm Orchestration (+24, total 122)
13+
- `docker_swarmInit` - initialize a new Docker Swarm cluster
14+
- `docker_swarmJoin` - join an existing Swarm as worker or manager node
15+
- `docker_swarmLeave` - leave the Docker Swarm
16+
- `docker_swarmJoinToken` - display or rotate join tokens for worker or manager nodes
17+
- `docker_swarmUpdate` - update Swarm configuration (task history, cert expiry, autolock)
18+
- `docker_swarmUnlock` - unlock a locked Swarm manager node (secure stdin key piping)
19+
- `docker_swarmUnlockKey` - display or rotate the Swarm unlock key
20+
- `docker_swarmCa` - display and rotate the cluster root CA certificate (120s timeout)
21+
- `docker_serviceCreate` - create a replicated or global Swarm service with ports, env, mounts, networks, constraints, and resource limits (120s timeout)
22+
- `docker_serviceUpdate` - rolling update of service image, replicas, env, labels, and resources (120s timeout)
23+
- `docker_serviceRm` - remove one or more Swarm services
24+
- `docker_serviceLs` - list Swarm services with optional filters (JSON format)
25+
- `docker_serviceInspect` - inspect detailed service configuration (pretty or JSON)
26+
- `docker_serviceLogs` - fetch service or task logs with tail, since, and timestamp options
27+
- `docker_servicePs` - list tasks of a service with filters (JSON format)
28+
- `docker_serviceScale` - scale one or more services to target replica count (120s timeout)
29+
- `docker_serviceRollback` - revert a service to its previous configuration (120s timeout)
30+
- `docker_nodeLs` - list nodes in the Swarm with filters (JSON format)
31+
- `docker_nodeInspect` - inspect detailed node information (pretty or JSON)
32+
- `docker_nodePs` - list tasks running on a node with filters (JSON format)
33+
- `docker_nodeRm` - remove one or more nodes from the Swarm
34+
- `docker_nodeUpdate` - update node availability (active/pause/drain), role, and labels
35+
- `docker_nodePromote` - promote worker nodes to manager
36+
- `docker_nodeDemote` - demote manager nodes to worker
37+
38+
#### Skill
39+
- `docker-swarm` - Swarm mode orchestration covering cluster init, service deployment, scaling, rolling updates, node management, and drain/failover patterns
40+
41+
#### Rule
42+
- `swarm-security` - flag missing autolock, unrotated certificates, unencrypted overlay networks, exposed manager ports, missing resource limits on services, join tokens in code, and missing healthchecks
43+
844
## [0.9.0] - 2026-03-29
945

1046
### Added
@@ -259,6 +295,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
259295
- Python test suite: plugin manifest, skills, rules, docs consistency, internal links, roadmap
260296
- Vitest test suite: error classes, docker-api utilities, input validation
261297

298+
[0.10.0]: https://github.com/TMHSDigital/Docker-Developer-Tools/releases/tag/v0.10.0
262299
[0.9.0]: https://github.com/TMHSDigital/Docker-Developer-Tools/releases/tag/v0.9.0
263300
[0.8.0]: https://github.com/TMHSDigital/Docker-Developer-Tools/releases/tag/v0.8.0
264301
[0.7.0]: https://github.com/TMHSDigital/Docker-Developer-Tools/releases/tag/v0.7.0

CLAUDE.md

Lines changed: 70 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ Project documentation for Claude Code and AI assistants working on this reposito
44

55
## Project Overview
66

7-
Docker Developer Tools is a Cursor IDE plugin that integrates Docker and container workflows into Cursor's AI chat. It includes 15 skills, 9 rules, and a companion MCP server with 98 tools for live Docker CLI integration.
7+
Docker Developer Tools is a Cursor IDE plugin that integrates Docker and container workflows into Cursor's AI chat. It includes 16 skills, 10 rules, and a companion MCP server with 122 tools for live Docker CLI integration.
88

99
This is a monorepo - the Cursor plugin (skills and rules) and the companion MCP server live in the same repository. Docker's API is local (Docker Engine socket / CLI), so one repo is simpler for users to install and maintain.
1010

11-
**Version:** 0.9.0
11+
**Version:** 0.10.0
1212
**License:** CC-BY-NC-ND-4.0
1313
**Author:** TMHSDigital
1414

@@ -35,7 +35,7 @@ Docker-Developer-Tools/
3535
tests/ # Python structure tests
3636
```
3737

38-
## Skills (15)
38+
## Skills (16)
3939

4040
| Skill | Description |
4141
|-------|-------------|
@@ -54,8 +54,9 @@ Docker-Developer-Tools/
5454
| `docker-advanced-workflows` | Multi-stage pipelines, sidecar patterns, healthchecks, signal handling |
5555
| `docker-multi-platform` | Multi-arch builds, buildx configuration, manifest lists, platform targeting |
5656
| `docker-context-management` | Remote Docker hosts, SSH/TLS contexts, multi-host workflows |
57+
| `docker-swarm` | Swarm cluster management, service deployment, scaling, node administration |
5758

58-
## Rules (9)
59+
## Rules (10)
5960

6061
| Rule | Scope | Description |
6162
|------|-------|-------------|
@@ -68,8 +69,9 @@ Docker-Developer-Tools/
6869
| `docker-logging` | Dockerfiles, compose files | Flag missing logging drivers and log rotation |
6970
| `buildx-best-practices` | Dockerfiles, compose files | Flag multi-platform build issues, missing cache config |
7071
| `compose-scaling` | Compose files | Flag scaling blockers: container_name, fixed host ports, missing limits |
72+
| `swarm-security` | Docker-related files | Flag missing autolock, unrotated certs, unencrypted overlays, exposed ports |
7173

72-
## MCP Server (98 tools)
74+
## MCP Server (122 tools)
7375

7476
The MCP server talks to Docker via CLI exec (`docker` commands) rather than the Docker Engine REST API. It uses stdio transport and requires `docker` to be available on PATH.
7577

@@ -241,6 +243,45 @@ The MCP server talks to Docker via CLI exec (`docker` commands) rather than the
241243
| `docker_login` | Authenticate to a container registry |
242244
| `docker_logout` | Log out from a container registry |
243245

246+
### Swarm Cluster (8)
247+
248+
| Tool | Description |
249+
|------|-------------|
250+
| `docker_swarmInit` | Initialize a new Swarm cluster |
251+
| `docker_swarmJoin` | Join a Swarm as worker or manager |
252+
| `docker_swarmLeave` | Leave the Swarm |
253+
| `docker_swarmJoinToken` | Display or rotate join tokens |
254+
| `docker_swarmUpdate` | Update Swarm configuration |
255+
| `docker_swarmUnlock` | Unlock a locked Swarm manager |
256+
| `docker_swarmUnlockKey` | Display or rotate the unlock key |
257+
| `docker_swarmCa` | Display and rotate root CA certificate |
258+
259+
### Swarm Services (9)
260+
261+
| Tool | Description |
262+
|------|-------------|
263+
| `docker_serviceCreate` | Create a replicated or global service |
264+
| `docker_serviceUpdate` | Update a service |
265+
| `docker_serviceRm` | Remove services |
266+
| `docker_serviceLs` | List services |
267+
| `docker_serviceInspect` | Inspect a service |
268+
| `docker_serviceLogs` | Fetch service logs |
269+
| `docker_servicePs` | List tasks of a service |
270+
| `docker_serviceScale` | Scale services |
271+
| `docker_serviceRollback` | Rollback a service |
272+
273+
### Swarm Nodes (7)
274+
275+
| Tool | Description |
276+
|------|-------------|
277+
| `docker_nodeLs` | List nodes in the Swarm |
278+
| `docker_nodeInspect` | Inspect a node |
279+
| `docker_nodePs` | List tasks on a node |
280+
| `docker_nodeRm` | Remove nodes |
281+
| `docker_nodeUpdate` | Update node metadata |
282+
| `docker_nodePromote` | Promote workers to managers |
283+
| `docker_nodeDemote` | Demote managers to workers |
284+
244285
## Development Workflow
245286

246287
### Plugin development (symlink)
@@ -408,3 +449,27 @@ Full checklist with copy-paste commands: [CONTRIBUTING.md - Release Checklist](C
408449
| `docker context show` | `docker_contextShow` |
409450
| `docker login --password-stdin` | `docker_login` |
410451
| `docker logout` | `docker_logout` |
452+
| `docker swarm init` | `docker_swarmInit` |
453+
| `docker swarm join` | `docker_swarmJoin` |
454+
| `docker swarm leave` | `docker_swarmLeave` |
455+
| `docker swarm join-token` | `docker_swarmJoinToken` |
456+
| `docker swarm update` | `docker_swarmUpdate` |
457+
| `docker swarm unlock` | `docker_swarmUnlock` |
458+
| `docker swarm unlock-key` | `docker_swarmUnlockKey` |
459+
| `docker swarm ca` | `docker_swarmCa` |
460+
| `docker service create` | `docker_serviceCreate` |
461+
| `docker service update` | `docker_serviceUpdate` |
462+
| `docker service rm` | `docker_serviceRm` |
463+
| `docker service ls --format json` | `docker_serviceLs` |
464+
| `docker service inspect` | `docker_serviceInspect` |
465+
| `docker service logs` | `docker_serviceLogs` |
466+
| `docker service ps --format json` | `docker_servicePs` |
467+
| `docker service scale` | `docker_serviceScale` |
468+
| `docker service rollback` | `docker_serviceRollback` |
469+
| `docker node ls --format json` | `docker_nodeLs` |
470+
| `docker node inspect` | `docker_nodeInspect` |
471+
| `docker node ps --format json` | `docker_nodePs` |
472+
| `docker node rm` | `docker_nodeRm` |
473+
| `docker node update` | `docker_nodeUpdate` |
474+
| `docker node promote` | `docker_nodePromote` |
475+
| `docker node demote` | `docker_nodeDemote` |

README.md

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<p align="center">
1212
<a href="https://github.com/TMHSDigital/Docker-Developer-Tools/actions/workflows/validate.yml"><img src="https://img.shields.io/github/actions/workflow/status/TMHSDigital/Docker-Developer-Tools/validate.yml?branch=main&label=CI" alt="CI" /></a>
1313
<a href="LICENSE"><img src="https://img.shields.io/badge/license-CC--BY--NC--ND--4.0-blue" alt="License" /></a>
14-
<img src="https://img.shields.io/badge/version-0.9.0-green" alt="Version" />
14+
<img src="https://img.shields.io/badge/version-0.10.0-green" alt="Version" />
1515
<a href="https://www.npmjs.com/package/@tmhs/docker-mcp"><img src="https://img.shields.io/npm/v/@tmhs/docker-mcp" alt="npm" /></a>
1616
<a href="https://www.npmjs.com/package/@tmhs/docker-mcp"><img src="https://img.shields.io/npm/dm/@tmhs/docker-mcp" alt="npm downloads" /></a>
1717
<a href="https://www.npmjs.com/package/@tmhs/docker-mcp"><img src="https://img.shields.io/npm/unpacked-size/@tmhs/docker-mcp" alt="npm size" /></a>
@@ -22,7 +22,7 @@
2222
</p>
2323

2424
<p align="center">
25-
<strong>15 skills</strong>&nbsp;&bull;&nbsp;<strong>9 rules</strong>&nbsp;&bull;&nbsp;<strong>98 MCP tools</strong>
25+
<strong>16 skills</strong>&nbsp;&bull;&nbsp;<strong>10 rules</strong>&nbsp;&bull;&nbsp;<strong>122 MCP tools</strong>
2626
</p>
2727

2828
---
@@ -71,6 +71,7 @@ flowchart LR
7171
| **Advanced** | `docker-advanced-workflows` | Multi-stage pipelines, sidecar patterns, healthchecks, signal handling |
7272
| **Advanced** | `docker-multi-platform` | Multi-arch builds, buildx configuration, manifest lists, platform targeting |
7373
| **Advanced** | `docker-context-management` | Remote Docker hosts, SSH/TLS contexts, multi-host workflows |
74+
| **Orchestration** | `docker-swarm` | Swarm cluster management, service deployment, scaling, node administration |
7475

7576
</details>
7677

@@ -90,6 +91,7 @@ flowchart LR
9091
| `docker-logging` | Dockerfiles, compose files | Flag missing logging drivers and log rotation |
9192
| `buildx-best-practices` | Dockerfiles, compose files | Flag multi-platform build issues, missing cache config, arch hardcoding |
9293
| `compose-scaling` | Compose files | Flag scaling blockers: container_name, fixed host ports, missing limits |
94+
| `swarm-security` | Docker-related files | Flag missing autolock, unrotated certs, unencrypted overlays, exposed ports |
9395

9496
</details>
9597

@@ -291,6 +293,45 @@ Add to your Cursor MCP config (`.cursor/mcp.json`):
291293
| `docker_login` | Authenticate to a Docker container registry |
292294
| `docker_logout` | Log out from a Docker container registry |
293295

296+
**Swarm Cluster** (8)
297+
298+
| Tool | What It Does |
299+
|---|---|
300+
| `docker_swarmInit` | Initialize a new Docker Swarm cluster |
301+
| `docker_swarmJoin` | Join an existing Swarm as worker or manager |
302+
| `docker_swarmLeave` | Leave the Docker Swarm |
303+
| `docker_swarmJoinToken` | Display or rotate join tokens |
304+
| `docker_swarmUpdate` | Update Swarm configuration |
305+
| `docker_swarmUnlock` | Unlock a locked Swarm manager |
306+
| `docker_swarmUnlockKey` | Display or rotate the unlock key |
307+
| `docker_swarmCa` | Display and rotate the root CA certificate |
308+
309+
**Swarm Services** (9)
310+
311+
| Tool | What It Does |
312+
|---|---|
313+
| `docker_serviceCreate` | Create a replicated or global Swarm service |
314+
| `docker_serviceUpdate` | Update a service (image, replicas, env, resources) |
315+
| `docker_serviceRm` | Remove Swarm services |
316+
| `docker_serviceLs` | List Swarm services |
317+
| `docker_serviceInspect` | Inspect detailed service configuration |
318+
| `docker_serviceLogs` | Fetch service or task logs |
319+
| `docker_servicePs` | List tasks of a service |
320+
| `docker_serviceScale` | Scale services to target replica count |
321+
| `docker_serviceRollback` | Revert a service to its previous version |
322+
323+
**Swarm Nodes** (7)
324+
325+
| Tool | What It Does |
326+
|---|---|
327+
| `docker_nodeLs` | List nodes in the Swarm |
328+
| `docker_nodeInspect` | Inspect detailed node information |
329+
| `docker_nodePs` | List tasks running on a node |
330+
| `docker_nodeRm` | Remove nodes from the Swarm |
331+
| `docker_nodeUpdate` | Update node availability, role, or labels |
332+
| `docker_nodePromote` | Promote workers to managers |
333+
| `docker_nodeDemote` | Demote managers to workers |
334+
294335
</details>
295336

296337
---
@@ -350,6 +391,7 @@ Then add the JSON config from the [MCP Server section](#companion-docker-mcp-ser
350391
| `docker-advanced-workflows` | "Set up healthchecks and graceful shutdown for my Node.js container" |
351392
| `docker-multi-platform` | "Build my Go API image for both amd64 and arm64 with buildx" |
352393
| `docker-context-management` | "Set up a Docker context for my remote staging server via SSH" |
394+
| `docker-swarm` | "Initialize a Swarm cluster and deploy a 3-replica nginx service" |
353395

354396
</details>
355397

ROADMAP.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
55
## Current Status
66

7-
**v0.9.0** - Container/Image Gaps, Context, and Auth release with 15 skills, 9 rules, and 98 MCP tools.
7+
**v0.10.0** - Swarm Orchestration release with 16 skills, 10 rules, and 122 MCP tools.
88

99
## Release Plan
1010

@@ -18,8 +18,8 @@
1818
| v0.6.0 | Advanced and Observability | +6 | 55 | +1 | +1 | Released |
1919
| v0.7.0 | Buildx, Manifests, and Registry | +13 | 68 | +1 | +1 | Released |
2020
| v0.8.0 | Compose Completeness | +16 | 84 | +0 | +1 | Released |
21-
| v0.9.0 | Container/Image Gaps, Context, Auth | +14 | 98 | +1 | +0 | (current) |
22-
| v0.10.0 | Swarm Orchestration | +24 | 122 | +1 | +1 | Planned |
21+
| v0.9.0 | Container/Image Gaps, Context, Auth | +14 | 98 | +1 | +0 | Released |
22+
| v0.10.0 | Swarm Orchestration | +24 | 122 | +1 | +1 | (current) |
2323
| v0.11.0 | Swarm Stacks, Configs, Secrets, Trust | +18 | 140 | +1 | +0 | Planned |
2424
| v0.12.0 | Niche, Scout, and Extras | +10 | 150 | +0 | +0 | Planned |
2525
| v1.0.0 | Stable | +0 | 150 | +0 | +0 | Planned |

0 commit comments

Comments
 (0)