@tmhs/docker-mcp 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +41 -2
  2. package/dist/index.js +39 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/tools/containerPrune.d.ts +3 -0
  5. package/dist/tools/containerPrune.d.ts.map +1 -0
  6. package/dist/tools/containerPrune.js +28 -0
  7. package/dist/tools/containerPrune.js.map +1 -0
  8. package/dist/tools/cp.d.ts +3 -0
  9. package/dist/tools/cp.d.ts.map +1 -0
  10. package/dist/tools/cp.js +50 -0
  11. package/dist/tools/cp.js.map +1 -0
  12. package/dist/tools/events.d.ts +3 -0
  13. package/dist/tools/events.d.ts.map +1 -0
  14. package/dist/tools/events.js +48 -0
  15. package/dist/tools/events.js.map +1 -0
  16. package/dist/tools/imagePrune.d.ts +3 -0
  17. package/dist/tools/imagePrune.d.ts.map +1 -0
  18. package/dist/tools/imagePrune.js +36 -0
  19. package/dist/tools/imagePrune.js.map +1 -0
  20. package/dist/tools/networkConnect.d.ts +3 -0
  21. package/dist/tools/networkConnect.d.ts.map +1 -0
  22. package/dist/tools/networkConnect.js +46 -0
  23. package/dist/tools/networkConnect.js.map +1 -0
  24. package/dist/tools/networkCreate.d.ts +3 -0
  25. package/dist/tools/networkCreate.d.ts.map +1 -0
  26. package/dist/tools/networkCreate.js +71 -0
  27. package/dist/tools/networkCreate.js.map +1 -0
  28. package/dist/tools/networkDisconnect.d.ts +3 -0
  29. package/dist/tools/networkDisconnect.d.ts.map +1 -0
  30. package/dist/tools/networkDisconnect.js +38 -0
  31. package/dist/tools/networkDisconnect.js.map +1 -0
  32. package/dist/tools/networkInspect.d.ts +3 -0
  33. package/dist/tools/networkInspect.d.ts.map +1 -0
  34. package/dist/tools/networkInspect.js +24 -0
  35. package/dist/tools/networkInspect.js.map +1 -0
  36. package/dist/tools/networkPrune.d.ts +3 -0
  37. package/dist/tools/networkPrune.d.ts.map +1 -0
  38. package/dist/tools/networkPrune.js +28 -0
  39. package/dist/tools/networkPrune.js.map +1 -0
  40. package/dist/tools/networkRm.d.ts +3 -0
  41. package/dist/tools/networkRm.d.ts.map +1 -0
  42. package/dist/tools/networkRm.js +34 -0
  43. package/dist/tools/networkRm.js.map +1 -0
  44. package/dist/tools/stats.d.ts +3 -0
  45. package/dist/tools/stats.d.ts.map +1 -0
  46. package/dist/tools/stats.js +39 -0
  47. package/dist/tools/stats.js.map +1 -0
  48. package/dist/tools/systemPrune.d.ts +3 -0
  49. package/dist/tools/systemPrune.d.ts.map +1 -0
  50. package/dist/tools/systemPrune.js +37 -0
  51. package/dist/tools/systemPrune.js.map +1 -0
  52. package/dist/tools/top.d.ts +3 -0
  53. package/dist/tools/top.d.ts.map +1 -0
  54. package/dist/tools/top.js +35 -0
  55. package/dist/tools/top.js.map +1 -0
  56. package/dist/tools/update.d.ts +3 -0
  57. package/dist/tools/update.d.ts.map +1 -0
  58. package/dist/tools/update.js +64 -0
  59. package/dist/tools/update.js.map +1 -0
  60. package/dist/tools/volumeCreate.d.ts +3 -0
  61. package/dist/tools/volumeCreate.d.ts.map +1 -0
  62. package/dist/tools/volumeCreate.js +51 -0
  63. package/dist/tools/volumeCreate.js.map +1 -0
  64. package/dist/tools/volumeInspect.d.ts +3 -0
  65. package/dist/tools/volumeInspect.d.ts.map +1 -0
  66. package/dist/tools/volumeInspect.js +24 -0
  67. package/dist/tools/volumeInspect.js.map +1 -0
  68. package/dist/tools/volumePrune.d.ts +3 -0
  69. package/dist/tools/volumePrune.d.ts.map +1 -0
  70. package/dist/tools/volumePrune.js +36 -0
  71. package/dist/tools/volumePrune.js.map +1 -0
  72. package/dist/tools/volumeRm.d.ts +3 -0
  73. package/dist/tools/volumeRm.d.ts.map +1 -0
  74. package/dist/tools/volumeRm.js +34 -0
  75. package/dist/tools/volumeRm.js.map +1 -0
  76. package/dist/tools/wait.d.ts +3 -0
  77. package/dist/tools/wait.d.ts.map +1 -0
  78. package/dist/tools/wait.js +29 -0
  79. package/dist/tools/wait.js.map +1 -0
  80. package/dist/utils/docker-api.d.ts.map +1 -1
  81. package/dist/utils/docker-api.js +9 -1
  82. package/dist/utils/docker-api.js.map +1 -1
  83. package/dist/utils/errors.d.ts +8 -0
  84. package/dist/utils/errors.d.ts.map +1 -1
  85. package/dist/utils/errors.js +16 -0
  86. package/dist/utils/errors.js.map +1 -1
  87. package/package.json +2 -2
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @tmhs/docker-mcp
2
2
 
3
- MCP server for Docker CLI integration - 36 tools for containers, images, Compose, volumes, networks, and system info.
3
+ MCP server for Docker CLI integration - 55 tools for containers, images, Compose, volumes, networks, cleanup, observability, and system info.
4
4
 
5
5
  Part of the [Docker Developer Tools](https://github.com/TMHSDigital/Docker-Developer-Tools) Cursor plugin.
6
6
 
@@ -48,7 +48,7 @@ Or if installed globally:
48
48
  }
49
49
  ```
50
50
 
51
- ## Tools (36)
51
+ ## Tools (55)
52
52
 
53
53
  ### Read / Inspect (10)
54
54
 
@@ -106,6 +106,45 @@ Or if installed globally:
106
106
  | `docker_composePull` | Pull Compose service images |
107
107
  | `docker_composeExec` | Execute command in a Compose service |
108
108
 
109
+ ### Volume Management (4)
110
+
111
+ | Tool | Description |
112
+ |------|-------------|
113
+ | `docker_volumeCreate` | Create a named volume |
114
+ | `docker_volumeRm` | Remove volumes |
115
+ | `docker_volumeInspect` | Detailed volume info |
116
+ | `docker_volumePrune` | Remove unused volumes |
117
+
118
+ ### Network Management (6)
119
+
120
+ | Tool | Description |
121
+ |------|-------------|
122
+ | `docker_networkCreate` | Create a network |
123
+ | `docker_networkRm` | Remove networks |
124
+ | `docker_networkConnect` | Connect container to network |
125
+ | `docker_networkDisconnect` | Disconnect container from network |
126
+ | `docker_networkInspect` | Detailed network info |
127
+ | `docker_networkPrune` | Remove unused networks |
128
+
129
+ ### Cleanup / Prune (3)
130
+
131
+ | Tool | Description |
132
+ |------|-------------|
133
+ | `docker_systemPrune` | Remove unused containers, networks, images |
134
+ | `docker_containerPrune` | Remove stopped containers |
135
+ | `docker_imagePrune` | Remove unused images |
136
+
137
+ ### Advanced / Observability (6)
138
+
139
+ | Tool | Description |
140
+ |------|-------------|
141
+ | `docker_cp` | Copy files between container and host |
142
+ | `docker_stats` | Live resource usage statistics |
143
+ | `docker_top` | Running processes in a container |
144
+ | `docker_events` | Real-time Docker daemon events |
145
+ | `docker_update` | Update container resource config |
146
+ | `docker_wait` | Wait for container to stop |
147
+
109
148
  ## License
110
149
 
111
150
  CC-BY-NC-ND-4.0 - Copyright 2026 TM Hospitality Strategies
package/dist/index.js CHANGED
@@ -37,9 +37,28 @@ import { register as registerComposeBuild } from "./tools/composeBuild.js";
37
37
  import { register as registerComposeRestart } from "./tools/composeRestart.js";
38
38
  import { register as registerComposePull } from "./tools/composePull.js";
39
39
  import { register as registerComposeExec } from "./tools/composeExec.js";
40
+ import { register as registerVolumeCreate } from "./tools/volumeCreate.js";
41
+ import { register as registerVolumeRm } from "./tools/volumeRm.js";
42
+ import { register as registerVolumeInspect } from "./tools/volumeInspect.js";
43
+ import { register as registerVolumePrune } from "./tools/volumePrune.js";
44
+ import { register as registerNetworkCreate } from "./tools/networkCreate.js";
45
+ import { register as registerNetworkRm } from "./tools/networkRm.js";
46
+ import { register as registerNetworkConnect } from "./tools/networkConnect.js";
47
+ import { register as registerNetworkDisconnect } from "./tools/networkDisconnect.js";
48
+ import { register as registerNetworkInspect } from "./tools/networkInspect.js";
49
+ import { register as registerNetworkPrune } from "./tools/networkPrune.js";
50
+ import { register as registerSystemPrune } from "./tools/systemPrune.js";
51
+ import { register as registerContainerPrune } from "./tools/containerPrune.js";
52
+ import { register as registerImagePrune } from "./tools/imagePrune.js";
53
+ import { register as registerCp } from "./tools/cp.js";
54
+ import { register as registerStats } from "./tools/stats.js";
55
+ import { register as registerTop } from "./tools/top.js";
56
+ import { register as registerEvents } from "./tools/events.js";
57
+ import { register as registerUpdate } from "./tools/update.js";
58
+ import { register as registerWait } from "./tools/wait.js";
40
59
  const server = new McpServer({
41
60
  name: "docker-mcp",
42
- version: "0.4.0",
61
+ version: "0.6.0",
43
62
  });
44
63
  registerListContainers(server);
45
64
  registerInspectContainer(server);
@@ -77,6 +96,25 @@ registerComposeBuild(server);
77
96
  registerComposeRestart(server);
78
97
  registerComposePull(server);
79
98
  registerComposeExec(server);
99
+ registerVolumeCreate(server);
100
+ registerVolumeRm(server);
101
+ registerVolumeInspect(server);
102
+ registerVolumePrune(server);
103
+ registerNetworkCreate(server);
104
+ registerNetworkRm(server);
105
+ registerNetworkConnect(server);
106
+ registerNetworkDisconnect(server);
107
+ registerNetworkInspect(server);
108
+ registerNetworkPrune(server);
109
+ registerSystemPrune(server);
110
+ registerContainerPrune(server);
111
+ registerImagePrune(server);
112
+ registerCp(server);
113
+ registerStats(server);
114
+ registerTop(server);
115
+ registerEvents(server);
116
+ registerUpdate(server);
117
+ registerWait(server);
80
118
  async function main() {
81
119
  const transport = new StdioServerTransport();
82
120
  await server.connect(transport);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function register(server: McpServer): void;
3
+ //# sourceMappingURL=containerPrune.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containerPrune.d.ts","sourceRoot":"","sources":["../../src/tools/containerPrune.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyBhD"}
@@ -0,0 +1,28 @@
1
+ import { z } from "zod";
2
+ import { execDocker, errorResponse } from "../utils/docker-api.js";
3
+ const inputSchema = {
4
+ filter: z
5
+ .string()
6
+ .optional()
7
+ .describe("Filter containers to prune (e.g. 'until=24h', 'label=disposable')"),
8
+ };
9
+ export function register(server) {
10
+ server.tool("docker_containerPrune", "Remove all stopped containers (always non-interactive)", inputSchema, async (args) => {
11
+ try {
12
+ const cmdArgs = ["container", "prune", "-f"];
13
+ if (args.filter) {
14
+ cmdArgs.push("--filter", args.filter);
15
+ }
16
+ const output = await execDocker(cmdArgs);
17
+ return {
18
+ content: [
19
+ { type: "text", text: output.trim() || "No stopped containers to prune" },
20
+ ],
21
+ };
22
+ }
23
+ catch (error) {
24
+ return errorResponse(error);
25
+ }
26
+ });
27
+ }
28
+ //# sourceMappingURL=containerPrune.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containerPrune.js","sourceRoot":"","sources":["../../src/tools/containerPrune.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mEAAmE,CAAC;CACjF,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,wDAAwD,EACxD,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAE7C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YAEzC,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,gCAAgC,EAAE;iBACnF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function register(server: McpServer): void;
3
+ //# sourceMappingURL=cp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cp.d.ts","sourceRoot":"","sources":["../../src/tools/cp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4BzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoChD"}
@@ -0,0 +1,50 @@
1
+ import { z } from "zod";
2
+ import { execDocker, errorResponse } from "../utils/docker-api.js";
3
+ const inputSchema = {
4
+ source: z
5
+ .string()
6
+ .min(1)
7
+ .describe("Source path - 'container:/path' for container source or local path"),
8
+ destination: z
9
+ .string()
10
+ .min(1)
11
+ .describe("Destination path - 'container:/path' for container destination or local path"),
12
+ archive: z
13
+ .boolean()
14
+ .optional()
15
+ .default(false)
16
+ .describe("Archive mode - copy all uid/gid information"),
17
+ followLink: z
18
+ .boolean()
19
+ .optional()
20
+ .default(false)
21
+ .describe("Always follow symbolic links in source"),
22
+ };
23
+ export function register(server) {
24
+ server.tool("docker_cp", "Copy files or directories between a container and the local filesystem", inputSchema, async (args) => {
25
+ try {
26
+ const cmdArgs = ["cp"];
27
+ if (args.archive) {
28
+ cmdArgs.push("--archive");
29
+ }
30
+ if (args.followLink) {
31
+ cmdArgs.push("--follow-link");
32
+ }
33
+ cmdArgs.push(args.source, args.destination);
34
+ const output = await execDocker(cmdArgs, { timeout: 120_000 });
35
+ return {
36
+ content: [
37
+ {
38
+ type: "text",
39
+ text: output.trim() ||
40
+ `Copied ${args.source} to ${args.destination}`,
41
+ },
42
+ ],
43
+ };
44
+ }
45
+ catch (error) {
46
+ return errorResponse(error);
47
+ }
48
+ });
49
+ }
50
+ //# sourceMappingURL=cp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cp.js","sourceRoot":"","sources":["../../src/tools/cp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,oEAAoE,CACrE;IACH,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,8EAA8E,CAC/E;IACH,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,6CAA6C,CAAC;IAC1D,UAAU,EAAE,CAAC;SACV,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,wCAAwC,CAAC;CACtD,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,WAAW,EACX,wEAAwE,EACxE,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;YAEvB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5B,CAAC;YAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAChC,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAE5C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAE/D,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EACF,MAAM,CAAC,IAAI,EAAE;4BACb,UAAU,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,WAAW,EAAE;qBACjD;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function register(server: McpServer): void;
3
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/tools/events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoBzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsChD"}
@@ -0,0 +1,48 @@
1
+ import { z } from "zod";
2
+ import { execDocker, errorResponse } from "../utils/docker-api.js";
3
+ const inputSchema = {
4
+ since: z
5
+ .string()
6
+ .optional()
7
+ .describe("Show events since timestamp or relative (e.g. '10m', '2024-01-01T00:00:00')"),
8
+ until: z
9
+ .string()
10
+ .optional()
11
+ .describe("Show events until timestamp or relative (defaults to 'now' to prevent blocking)"),
12
+ filter: z
13
+ .array(z.string())
14
+ .optional()
15
+ .describe("Event filters (e.g. 'type=container', 'event=start', 'container=myapp')"),
16
+ };
17
+ export function register(server) {
18
+ server.tool("docker_events", "Stream real-time events from the Docker daemon (returns recent event snapshot)", inputSchema, async (args) => {
19
+ try {
20
+ const cmdArgs = ["events", "--format", "json"];
21
+ if (args.since) {
22
+ cmdArgs.push("--since", args.since);
23
+ }
24
+ else {
25
+ cmdArgs.push("--since", "1h");
26
+ }
27
+ cmdArgs.push("--until", args.until ?? "0s");
28
+ if (args.filter) {
29
+ for (const f of args.filter) {
30
+ cmdArgs.push("--filter", f);
31
+ }
32
+ }
33
+ const output = await execDocker(cmdArgs, { timeout: 30_000 });
34
+ return {
35
+ content: [
36
+ {
37
+ type: "text",
38
+ text: output.trim() || "No events in the specified time range",
39
+ },
40
+ ],
41
+ };
42
+ }
43
+ catch (error) {
44
+ return errorResponse(error);
45
+ }
46
+ });
47
+ }
48
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/tools/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,6EAA6E,CAAC;IAC1F,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iFAAiF,CAAC;IAC9F,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CACP,yEAAyE,CAC1E;CACJ,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,eAAe,EACf,gFAAgF,EAChF,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YAE/C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAChC,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;YAE5C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC5B,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAE9D,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,uCAAuC;qBAC/D;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function register(server: McpServer): void;
3
+ //# sourceMappingURL=imagePrune.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imagePrune.d.ts","sourceRoot":"","sources":["../../src/tools/imagePrune.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAezE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6BhD"}
@@ -0,0 +1,36 @@
1
+ import { z } from "zod";
2
+ import { execDocker, errorResponse } from "../utils/docker-api.js";
3
+ const inputSchema = {
4
+ all: z
5
+ .boolean()
6
+ .optional()
7
+ .default(false)
8
+ .describe("Remove all unused images, not just dangling ones"),
9
+ filter: z
10
+ .string()
11
+ .optional()
12
+ .describe("Filter images to prune (e.g. 'until=24h', 'label=temp')"),
13
+ };
14
+ export function register(server) {
15
+ server.tool("docker_imagePrune", "Remove unused Docker images (always non-interactive)", inputSchema, async (args) => {
16
+ try {
17
+ const cmdArgs = ["image", "prune", "-f"];
18
+ if (args.all) {
19
+ cmdArgs.push("--all");
20
+ }
21
+ if (args.filter) {
22
+ cmdArgs.push("--filter", args.filter);
23
+ }
24
+ const output = await execDocker(cmdArgs, { timeout: 60_000 });
25
+ return {
26
+ content: [
27
+ { type: "text", text: output.trim() || "No unused images to prune" },
28
+ ],
29
+ };
30
+ }
31
+ catch (error) {
32
+ return errorResponse(error);
33
+ }
34
+ });
35
+ }
36
+ //# sourceMappingURL=imagePrune.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imagePrune.js","sourceRoot":"","sources":["../../src/tools/imagePrune.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE,CAAC;SACH,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yDAAyD,CAAC;CACvE,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,sDAAsD,EACtD,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAEzC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAE9D,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,2BAA2B,EAAE;iBAC9E;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function register(server: McpServer): void;
3
+ //# sourceMappingURL=networkConnect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkConnect.d.ts","sourceRoot":"","sources":["../../src/tools/networkConnect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsBzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiChD"}
@@ -0,0 +1,46 @@
1
+ import { z } from "zod";
2
+ import { execDocker, errorResponse } from "../utils/docker-api.js";
3
+ const inputSchema = {
4
+ network: z
5
+ .string()
6
+ .min(1)
7
+ .describe("Network name or ID"),
8
+ container: z
9
+ .string()
10
+ .min(1)
11
+ .describe("Container name or ID to connect"),
12
+ ip: z
13
+ .string()
14
+ .optional()
15
+ .describe("IPv4 address to assign (e.g. '172.28.0.10')"),
16
+ alias: z
17
+ .array(z.string())
18
+ .optional()
19
+ .describe("Network-scoped aliases for the container"),
20
+ };
21
+ export function register(server) {
22
+ server.tool("docker_networkConnect", "Connect a container to a Docker network", inputSchema, async (args) => {
23
+ try {
24
+ const cmdArgs = ["network", "connect"];
25
+ if (args.ip) {
26
+ cmdArgs.push("--ip", args.ip);
27
+ }
28
+ if (args.alias) {
29
+ for (const a of args.alias) {
30
+ cmdArgs.push("--alias", a);
31
+ }
32
+ }
33
+ cmdArgs.push(args.network, args.container);
34
+ const output = await execDocker(cmdArgs);
35
+ return {
36
+ content: [
37
+ { type: "text", text: output.trim() || `Container ${args.container} connected to ${args.network}` },
38
+ ],
39
+ };
40
+ }
41
+ catch (error) {
42
+ return errorResponse(error);
43
+ }
44
+ });
45
+ }
46
+ //# sourceMappingURL=networkConnect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkConnect.js","sourceRoot":"","sources":["../../src/tools/networkConnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,oBAAoB,CAAC;IACjC,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,EAAE,EAAE,CAAC;SACF,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,6CAA6C,CAAC;IAC1D,KAAK,EAAE,CAAC;SACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,0CAA0C,CAAC;CACxD,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,yCAAyC,EACzC,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAEvC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YAEzC,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,aAAa,IAAI,CAAC,SAAS,iBAAiB,IAAI,CAAC,OAAO,EAAE,EAAE;iBAC7G;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function register(server: McpServer): void;
3
+ //# sourceMappingURL=networkCreate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkCreate.d.ts","sourceRoot":"","sources":["../../src/tools/networkCreate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmCzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiDhD"}
@@ -0,0 +1,71 @@
1
+ import { z } from "zod";
2
+ import { execDocker, errorResponse } from "../utils/docker-api.js";
3
+ const inputSchema = {
4
+ name: z
5
+ .string()
6
+ .min(1)
7
+ .describe("Name for the new network"),
8
+ driver: z
9
+ .string()
10
+ .optional()
11
+ .describe("Network driver: 'bridge', 'overlay', 'macvlan', 'none' (default: 'bridge')"),
12
+ subnet: z
13
+ .string()
14
+ .optional()
15
+ .describe("Subnet in CIDR format (e.g. '172.28.0.0/16')"),
16
+ gateway: z
17
+ .string()
18
+ .optional()
19
+ .describe("Gateway for the subnet (e.g. '172.28.0.1')"),
20
+ ipRange: z
21
+ .string()
22
+ .optional()
23
+ .describe("Allocate container IPs from this range (e.g. '172.28.5.0/24')"),
24
+ internal: z
25
+ .boolean()
26
+ .optional()
27
+ .default(false)
28
+ .describe("Restrict external access to the network"),
29
+ labels: z
30
+ .array(z.string())
31
+ .optional()
32
+ .describe("Labels as 'key=value' strings"),
33
+ };
34
+ export function register(server) {
35
+ server.tool("docker_networkCreate", "Create a Docker network with optional driver, subnet, and labels", inputSchema, async (args) => {
36
+ try {
37
+ const cmdArgs = ["network", "create"];
38
+ if (args.driver) {
39
+ cmdArgs.push("--driver", args.driver);
40
+ }
41
+ if (args.subnet) {
42
+ cmdArgs.push("--subnet", args.subnet);
43
+ }
44
+ if (args.gateway) {
45
+ cmdArgs.push("--gateway", args.gateway);
46
+ }
47
+ if (args.ipRange) {
48
+ cmdArgs.push("--ip-range", args.ipRange);
49
+ }
50
+ if (args.internal) {
51
+ cmdArgs.push("--internal");
52
+ }
53
+ if (args.labels) {
54
+ for (const l of args.labels) {
55
+ cmdArgs.push("--label", l);
56
+ }
57
+ }
58
+ cmdArgs.push(args.name);
59
+ const output = await execDocker(cmdArgs);
60
+ return {
61
+ content: [
62
+ { type: "text", text: `Network created: ${output.trim()}` },
63
+ ],
64
+ };
65
+ }
66
+ catch (error) {
67
+ return errorResponse(error);
68
+ }
69
+ });
70
+ }
71
+ //# sourceMappingURL=networkCreate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkCreate.js","sourceRoot":"","sources":["../../src/tools/networkCreate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,0BAA0B,CAAC;IACvC,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4EAA4E,CAAC;IACzF,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8CAA8C,CAAC;IAC3D,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4CAA4C,CAAC;IACzD,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+DAA+D,CAAC;IAC5E,QAAQ,EAAE,CAAC;SACR,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,yCAAyC,CAAC;IACtD,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,+BAA+B,CAAC;CAC7C,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,kEAAkE,EAClE,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAEtC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7B,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAExB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YAEzC,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,oBAAoB,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE;iBACrE;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function register(server: McpServer): void;
3
+ //# sourceMappingURL=networkDisconnect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkDisconnect.d.ts","sourceRoot":"","sources":["../../src/tools/networkDisconnect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmBzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2BhD"}
@@ -0,0 +1,38 @@
1
+ import { z } from "zod";
2
+ import { execDocker, errorResponse } from "../utils/docker-api.js";
3
+ const inputSchema = {
4
+ network: z
5
+ .string()
6
+ .min(1)
7
+ .describe("Network name or ID"),
8
+ container: z
9
+ .string()
10
+ .min(1)
11
+ .describe("Container name or ID to disconnect"),
12
+ force: z
13
+ .boolean()
14
+ .optional()
15
+ .default(false)
16
+ .describe("Force disconnection"),
17
+ };
18
+ export function register(server) {
19
+ server.tool("docker_networkDisconnect", "Disconnect a container from a Docker network", inputSchema, async (args) => {
20
+ try {
21
+ const cmdArgs = ["network", "disconnect"];
22
+ if (args.force) {
23
+ cmdArgs.push("--force");
24
+ }
25
+ cmdArgs.push(args.network, args.container);
26
+ const output = await execDocker(cmdArgs);
27
+ return {
28
+ content: [
29
+ { type: "text", text: output.trim() || `Container ${args.container} disconnected from ${args.network}` },
30
+ ],
31
+ };
32
+ }
33
+ catch (error) {
34
+ return errorResponse(error);
35
+ }
36
+ });
37
+ }
38
+ //# sourceMappingURL=networkDisconnect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkDisconnect.js","sourceRoot":"","sources":["../../src/tools/networkDisconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,oBAAoB,CAAC;IACjC,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,oCAAoC,CAAC;IACjD,KAAK,EAAE,CAAC;SACL,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,qBAAqB,CAAC;CACnC,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,0BAA0B,EAC1B,8CAA8C,EAC9C,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAE1C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YAEzC,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,aAAa,IAAI,CAAC,SAAS,sBAAsB,IAAI,CAAC,OAAO,EAAE,EAAE;iBAClH;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function register(server: McpServer): void;
3
+ //# sourceMappingURL=networkInspect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkInspect.d.ts","sourceRoot":"","sources":["../../src/tools/networkInspect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmBhD"}
@@ -0,0 +1,24 @@
1
+ import { z } from "zod";
2
+ import { execDocker, errorResponse } from "../utils/docker-api.js";
3
+ const inputSchema = {
4
+ network: z
5
+ .string()
6
+ .min(1)
7
+ .describe("Network name or ID to inspect"),
8
+ };
9
+ export function register(server) {
10
+ server.tool("docker_networkInspect", "Display detailed information about a Docker network", inputSchema, async (args) => {
11
+ try {
12
+ const output = await execDocker(["network", "inspect", args.network]);
13
+ return {
14
+ content: [
15
+ { type: "text", text: output.trim() },
16
+ ],
17
+ };
18
+ }
19
+ catch (error) {
20
+ return errorResponse(error);
21
+ }
22
+ });
23
+ }
24
+ //# sourceMappingURL=networkInspect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkInspect.js","sourceRoot":"","sources":["../../src/tools/networkInspect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,+BAA+B,CAAC;CAC7C,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,qDAAqD,EACrD,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAEtE,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE;iBAC/C;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function register(server: McpServer): void;
3
+ //# sourceMappingURL=networkPrune.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkPrune.d.ts","sourceRoot":"","sources":["../../src/tools/networkPrune.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyBhD"}
@@ -0,0 +1,28 @@
1
+ import { z } from "zod";
2
+ import { execDocker, errorResponse } from "../utils/docker-api.js";
3
+ const inputSchema = {
4
+ filter: z
5
+ .string()
6
+ .optional()
7
+ .describe("Filter networks to prune (e.g. 'until=24h', 'label=temp')"),
8
+ };
9
+ export function register(server) {
10
+ server.tool("docker_networkPrune", "Remove all unused Docker networks (always non-interactive)", inputSchema, async (args) => {
11
+ try {
12
+ const cmdArgs = ["network", "prune", "-f"];
13
+ if (args.filter) {
14
+ cmdArgs.push("--filter", args.filter);
15
+ }
16
+ const output = await execDocker(cmdArgs);
17
+ return {
18
+ content: [
19
+ { type: "text", text: output.trim() || "No unused networks to prune" },
20
+ ],
21
+ };
22
+ }
23
+ catch (error) {
24
+ return errorResponse(error);
25
+ }
26
+ });
27
+ }
28
+ //# sourceMappingURL=networkPrune.js.map