@tmhs/docker-mcp 0.7.0 → 0.8.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.
- package/README.md +19 -3
- package/dist/index.js +33 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/composeConfig.d.ts +3 -0
- package/dist/tools/composeConfig.d.ts.map +1 -0
- package/dist/tools/composeConfig.js +30 -0
- package/dist/tools/composeConfig.js.map +1 -0
- package/dist/tools/composeCp.d.ts +3 -0
- package/dist/tools/composeCp.d.ts.map +1 -0
- package/dist/tools/composeCp.js +33 -0
- package/dist/tools/composeCp.js.map +1 -0
- package/dist/tools/composeCreate.d.ts +3 -0
- package/dist/tools/composeCreate.d.ts.map +1 -0
- package/dist/tools/composeCreate.js +36 -0
- package/dist/tools/composeCreate.js.map +1 -0
- package/dist/tools/composeEvents.d.ts +3 -0
- package/dist/tools/composeEvents.d.ts.map +1 -0
- package/dist/tools/composeEvents.js +31 -0
- package/dist/tools/composeEvents.js.map +1 -0
- package/dist/tools/composeImages.d.ts +3 -0
- package/dist/tools/composeImages.d.ts.map +1 -0
- package/dist/tools/composeImages.js +25 -0
- package/dist/tools/composeImages.js.map +1 -0
- package/dist/tools/composeKill.d.ts +3 -0
- package/dist/tools/composeKill.d.ts.map +1 -0
- package/dist/tools/composeKill.js +30 -0
- package/dist/tools/composeKill.js.map +1 -0
- package/dist/tools/composeLs.d.ts +3 -0
- package/dist/tools/composeLs.d.ts.map +1 -0
- package/dist/tools/composeLs.js +24 -0
- package/dist/tools/composeLs.js.map +1 -0
- package/dist/tools/composePause.d.ts +3 -0
- package/dist/tools/composePause.d.ts.map +1 -0
- package/dist/tools/composePause.js +27 -0
- package/dist/tools/composePause.js.map +1 -0
- package/dist/tools/composePort.d.ts +3 -0
- package/dist/tools/composePort.d.ts.map +1 -0
- package/dist/tools/composePort.js +30 -0
- package/dist/tools/composePort.js.map +1 -0
- package/dist/tools/composeRm.d.ts +3 -0
- package/dist/tools/composeRm.d.ts.map +1 -0
- package/dist/tools/composeRm.js +33 -0
- package/dist/tools/composeRm.js.map +1 -0
- package/dist/tools/composeRun.d.ts +3 -0
- package/dist/tools/composeRun.d.ts.map +1 -0
- package/dist/tools/composeRun.js +49 -0
- package/dist/tools/composeRun.js.map +1 -0
- package/dist/tools/composeScale.d.ts +3 -0
- package/dist/tools/composeScale.d.ts.map +1 -0
- package/dist/tools/composeScale.js +28 -0
- package/dist/tools/composeScale.js.map +1 -0
- package/dist/tools/composeStart.d.ts +3 -0
- package/dist/tools/composeStart.d.ts.map +1 -0
- package/dist/tools/composeStart.js +27 -0
- package/dist/tools/composeStart.js.map +1 -0
- package/dist/tools/composeStop.d.ts +3 -0
- package/dist/tools/composeStop.d.ts.map +1 -0
- package/dist/tools/composeStop.js +30 -0
- package/dist/tools/composeStop.js.map +1 -0
- package/dist/tools/composeTop.d.ts +3 -0
- package/dist/tools/composeTop.d.ts.map +1 -0
- package/dist/tools/composeTop.js +27 -0
- package/dist/tools/composeTop.js.map +1 -0
- package/dist/tools/composeUnpause.d.ts +3 -0
- package/dist/tools/composeUnpause.d.ts.map +1 -0
- package/dist/tools/composeUnpause.js +27 -0
- package/dist/tools/composeUnpause.js.map +1 -0
- 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 -
|
|
3
|
+
MCP server for Docker CLI integration - 84 tools for containers, images, complete Compose V2, volumes, networks, cleanup, observability, buildx, manifests, 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 (
|
|
51
|
+
## Tools (84)
|
|
52
52
|
|
|
53
53
|
### Read / Inspect (10)
|
|
54
54
|
|
|
@@ -93,7 +93,7 @@ Or if installed globally:
|
|
|
93
93
|
| `docker_save` | Save images to tar archive |
|
|
94
94
|
| `docker_load` | Load images from tar archive |
|
|
95
95
|
|
|
96
|
-
### Compose (
|
|
96
|
+
### Compose (24)
|
|
97
97
|
|
|
98
98
|
| Tool | Description |
|
|
99
99
|
|------|-------------|
|
|
@@ -105,6 +105,22 @@ Or if installed globally:
|
|
|
105
105
|
| `docker_composeRestart` | Restart Compose services |
|
|
106
106
|
| `docker_composePull` | Pull Compose service images |
|
|
107
107
|
| `docker_composeExec` | Execute command in a Compose service |
|
|
108
|
+
| `docker_composeConfig` | Validate and render a Compose file |
|
|
109
|
+
| `docker_composeCp` | Copy files to/from a Compose service |
|
|
110
|
+
| `docker_composeCreate` | Create containers without starting |
|
|
111
|
+
| `docker_composeEvents` | Real-time Compose container events |
|
|
112
|
+
| `docker_composeImages` | List images used by services |
|
|
113
|
+
| `docker_composeKill` | Force stop service containers |
|
|
114
|
+
| `docker_composeLs` | List Compose projects |
|
|
115
|
+
| `docker_composePause` | Pause Compose services |
|
|
116
|
+
| `docker_composeUnpause` | Unpause Compose services |
|
|
117
|
+
| `docker_composePort` | Get public port for a binding |
|
|
118
|
+
| `docker_composeRm` | Remove stopped service containers |
|
|
119
|
+
| `docker_composeRun` | Run one-off command on a service |
|
|
120
|
+
| `docker_composeScale` | Scale services to replica count |
|
|
121
|
+
| `docker_composeStart` | Start existing service containers |
|
|
122
|
+
| `docker_composeStop` | Stop services without removing |
|
|
123
|
+
| `docker_composeTop` | Running processes per service |
|
|
108
124
|
|
|
109
125
|
### Volume Management (4)
|
|
110
126
|
|
package/dist/index.js
CHANGED
|
@@ -69,9 +69,25 @@ import { register as registerManifestInspect } from "./tools/manifestInspect.js"
|
|
|
69
69
|
import { register as registerManifestAnnotate } from "./tools/manifestAnnotate.js";
|
|
70
70
|
import { register as registerManifestPush } from "./tools/manifestPush.js";
|
|
71
71
|
import { register as registerManifestRm } from "./tools/manifestRm.js";
|
|
72
|
+
import { register as registerComposeConfig } from "./tools/composeConfig.js";
|
|
73
|
+
import { register as registerComposeCp } from "./tools/composeCp.js";
|
|
74
|
+
import { register as registerComposeCreate } from "./tools/composeCreate.js";
|
|
75
|
+
import { register as registerComposeEvents } from "./tools/composeEvents.js";
|
|
76
|
+
import { register as registerComposeImages } from "./tools/composeImages.js";
|
|
77
|
+
import { register as registerComposeKill } from "./tools/composeKill.js";
|
|
78
|
+
import { register as registerComposeLs } from "./tools/composeLs.js";
|
|
79
|
+
import { register as registerComposePause } from "./tools/composePause.js";
|
|
80
|
+
import { register as registerComposeUnpause } from "./tools/composeUnpause.js";
|
|
81
|
+
import { register as registerComposePort } from "./tools/composePort.js";
|
|
82
|
+
import { register as registerComposeRm } from "./tools/composeRm.js";
|
|
83
|
+
import { register as registerComposeRun } from "./tools/composeRun.js";
|
|
84
|
+
import { register as registerComposeScale } from "./tools/composeScale.js";
|
|
85
|
+
import { register as registerComposeStart } from "./tools/composeStart.js";
|
|
86
|
+
import { register as registerComposeStop } from "./tools/composeStop.js";
|
|
87
|
+
import { register as registerComposeTop } from "./tools/composeTop.js";
|
|
72
88
|
const server = new McpServer({
|
|
73
89
|
name: "docker-mcp",
|
|
74
|
-
version: "0.
|
|
90
|
+
version: "0.8.0",
|
|
75
91
|
});
|
|
76
92
|
registerListContainers(server);
|
|
77
93
|
registerInspectContainer(server);
|
|
@@ -141,6 +157,22 @@ registerManifestInspect(server);
|
|
|
141
157
|
registerManifestAnnotate(server);
|
|
142
158
|
registerManifestPush(server);
|
|
143
159
|
registerManifestRm(server);
|
|
160
|
+
registerComposeConfig(server);
|
|
161
|
+
registerComposeCp(server);
|
|
162
|
+
registerComposeCreate(server);
|
|
163
|
+
registerComposeEvents(server);
|
|
164
|
+
registerComposeImages(server);
|
|
165
|
+
registerComposeKill(server);
|
|
166
|
+
registerComposeLs(server);
|
|
167
|
+
registerComposePause(server);
|
|
168
|
+
registerComposeUnpause(server);
|
|
169
|
+
registerComposePort(server);
|
|
170
|
+
registerComposeRm(server);
|
|
171
|
+
registerComposeRun(server);
|
|
172
|
+
registerComposeScale(server);
|
|
173
|
+
registerComposeStart(server);
|
|
174
|
+
registerComposeStop(server);
|
|
175
|
+
registerComposeTop(server);
|
|
144
176
|
async function main() {
|
|
145
177
|
const transport = new StdioServerTransport();
|
|
146
178
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"composeConfig.d.ts","sourceRoot":"","sources":["../../src/tools/composeConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqBhD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
file: z.string().optional().describe("Path to compose file"),
|
|
5
|
+
projectDir: z.string().optional().describe("Working directory for the compose project"),
|
|
6
|
+
format: z.enum(["yaml", "json"]).optional().describe("Output format (default: yaml)"),
|
|
7
|
+
services: z.array(z.string()).optional().describe("Specific services to include"),
|
|
8
|
+
};
|
|
9
|
+
export function register(server) {
|
|
10
|
+
server.tool("docker_composeConfig", "Validate, resolve, and render a Docker Compose file in canonical format", inputSchema, async (args) => {
|
|
11
|
+
try {
|
|
12
|
+
const cmdArgs = ["compose"];
|
|
13
|
+
if (args.file)
|
|
14
|
+
cmdArgs.push("-f", args.file);
|
|
15
|
+
if (args.projectDir)
|
|
16
|
+
cmdArgs.push("--project-directory", args.projectDir);
|
|
17
|
+
cmdArgs.push("config");
|
|
18
|
+
if (args.format)
|
|
19
|
+
cmdArgs.push("--format", args.format);
|
|
20
|
+
if (args.services)
|
|
21
|
+
cmdArgs.push(...args.services);
|
|
22
|
+
const output = await execDocker(cmdArgs);
|
|
23
|
+
return { content: [{ type: "text", text: output.trim() }] };
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return errorResponse(error);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=composeConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeConfig.js","sourceRoot":"","sources":["../../src/tools/composeConfig.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,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACvF,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACrF,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CAClF,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,yEAAyE,EACzE,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeCp.d.ts","sourceRoot":"","sources":["../../src/tools/composeCp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsBhD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
file: z.string().optional().describe("Path to compose file"),
|
|
5
|
+
projectDir: z.string().optional().describe("Working directory for the compose project"),
|
|
6
|
+
source: z.string().min(1).describe("Source path - use 'service:/path' for container source or local path"),
|
|
7
|
+
destination: z.string().min(1).describe("Destination path - use 'service:/path' for container destination or local path"),
|
|
8
|
+
archive: z.boolean().optional().default(false).describe("Archive mode - copy all uid/gid information"),
|
|
9
|
+
index: z.number().optional().describe("Index of the container if service has multiple replicas"),
|
|
10
|
+
};
|
|
11
|
+
export function register(server) {
|
|
12
|
+
server.tool("docker_composeCp", "Copy files between a Docker Compose service container and the local filesystem", inputSchema, async (args) => {
|
|
13
|
+
try {
|
|
14
|
+
const cmdArgs = ["compose"];
|
|
15
|
+
if (args.file)
|
|
16
|
+
cmdArgs.push("-f", args.file);
|
|
17
|
+
if (args.projectDir)
|
|
18
|
+
cmdArgs.push("--project-directory", args.projectDir);
|
|
19
|
+
cmdArgs.push("cp");
|
|
20
|
+
if (args.archive)
|
|
21
|
+
cmdArgs.push("--archive");
|
|
22
|
+
if (args.index !== undefined)
|
|
23
|
+
cmdArgs.push("--index", String(args.index));
|
|
24
|
+
cmdArgs.push(args.source, args.destination);
|
|
25
|
+
const output = await execDocker(cmdArgs, { timeout: 120_000 });
|
|
26
|
+
return { content: [{ type: "text", text: output.trim() || `Copied ${args.source} to ${args.destination}` }] };
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
return errorResponse(error);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=composeCp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeCp.js","sourceRoot":"","sources":["../../src/tools/composeCp.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,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACvF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sEAAsE,CAAC;IAC1G,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gFAAgF,CAAC;IACzH,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IACtG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;CACjG,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,gFAAgF,EAChF,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1E,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;YAC/D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,UAAU,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC;QACzH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeCreate.d.ts","sourceRoot":"","sources":["../../src/tools/composeCreate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuBhD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
file: z.string().optional().describe("Path to compose file"),
|
|
5
|
+
projectDir: z.string().optional().describe("Working directory for the compose project"),
|
|
6
|
+
services: z.array(z.string()).optional().describe("Specific services to create (default: all)"),
|
|
7
|
+
build: z.boolean().optional().default(false).describe("Build images before creating containers"),
|
|
8
|
+
forceRecreate: z.boolean().optional().default(false).describe("Recreate containers even if unchanged"),
|
|
9
|
+
pull: z.string().optional().describe("Pull policy: 'always', 'missing', 'never'"),
|
|
10
|
+
};
|
|
11
|
+
export function register(server) {
|
|
12
|
+
server.tool("docker_composeCreate", "Create Docker Compose service containers without starting them", inputSchema, async (args) => {
|
|
13
|
+
try {
|
|
14
|
+
const cmdArgs = ["compose"];
|
|
15
|
+
if (args.file)
|
|
16
|
+
cmdArgs.push("-f", args.file);
|
|
17
|
+
if (args.projectDir)
|
|
18
|
+
cmdArgs.push("--project-directory", args.projectDir);
|
|
19
|
+
cmdArgs.push("create");
|
|
20
|
+
if (args.build)
|
|
21
|
+
cmdArgs.push("--build");
|
|
22
|
+
if (args.forceRecreate)
|
|
23
|
+
cmdArgs.push("--force-recreate");
|
|
24
|
+
if (args.pull)
|
|
25
|
+
cmdArgs.push("--pull", args.pull);
|
|
26
|
+
if (args.services)
|
|
27
|
+
cmdArgs.push(...args.services);
|
|
28
|
+
const output = await execDocker(cmdArgs, { timeout: 300_000 });
|
|
29
|
+
return { content: [{ type: "text", text: output.trim() || "Compose containers created" }] };
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
return errorResponse(error);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=composeCreate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeCreate.js","sourceRoot":"","sources":["../../src/tools/composeCreate.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,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACvF,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IAC/F,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IAChG,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACtG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;CAClF,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,gEAAgE,EAChE,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,IAAI,IAAI,CAAC,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACzD,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAC/D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,4BAA4B,EAAE,CAAC,EAAE,CAAC;QACvG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeEvents.d.ts","sourceRoot":"","sources":["../../src/tools/composeEvents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwBhD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
file: z.string().optional().describe("Path to compose file"),
|
|
5
|
+
projectDir: z.string().optional().describe("Working directory for the compose project"),
|
|
6
|
+
services: z.array(z.string()).optional().describe("Specific services to watch"),
|
|
7
|
+
};
|
|
8
|
+
export function register(server) {
|
|
9
|
+
server.tool("docker_composeEvents", "Receive recent real-time events from Docker Compose containers (captures a snapshot)", inputSchema, async (args) => {
|
|
10
|
+
try {
|
|
11
|
+
const cmdArgs = ["compose"];
|
|
12
|
+
if (args.file)
|
|
13
|
+
cmdArgs.push("-f", args.file);
|
|
14
|
+
if (args.projectDir)
|
|
15
|
+
cmdArgs.push("--project-directory", args.projectDir);
|
|
16
|
+
cmdArgs.push("events", "--json");
|
|
17
|
+
if (args.services)
|
|
18
|
+
cmdArgs.push(...args.services);
|
|
19
|
+
const output = await execDocker(cmdArgs, { timeout: 5_000 });
|
|
20
|
+
return { content: [{ type: "text", text: output.trim() || "No events captured" }] };
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
const err = error;
|
|
24
|
+
if (err.killed || err.message?.includes("timed out")) {
|
|
25
|
+
return { content: [{ type: "text", text: "Event stream timed out (expected - compose events is continuous). Any captured events are above." }] };
|
|
26
|
+
}
|
|
27
|
+
return errorResponse(error);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=composeEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeEvents.js","sourceRoot":"","sources":["../../src/tools/composeEvents.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,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACvF,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;CAChF,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,sFAAsF,EACtF,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACjC,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,oBAAoB,EAAE,CAAC,EAAE,CAAC;QAC/F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAqC,CAAC;YAClD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kGAAkG,EAAE,CAAC,EAAE,CAAC;YAC5J,CAAC;YACD,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeImages.d.ts","sourceRoot":"","sources":["../../src/tools/composeImages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmBhD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
file: z.string().optional().describe("Path to compose file"),
|
|
5
|
+
projectDir: z.string().optional().describe("Working directory for the compose project"),
|
|
6
|
+
format: z.string().optional().default("json").describe("Output format (default: json)"),
|
|
7
|
+
};
|
|
8
|
+
export function register(server) {
|
|
9
|
+
server.tool("docker_composeImages", "List images used by Docker Compose service containers", inputSchema, async (args) => {
|
|
10
|
+
try {
|
|
11
|
+
const cmdArgs = ["compose"];
|
|
12
|
+
if (args.file)
|
|
13
|
+
cmdArgs.push("-f", args.file);
|
|
14
|
+
if (args.projectDir)
|
|
15
|
+
cmdArgs.push("--project-directory", args.projectDir);
|
|
16
|
+
cmdArgs.push("images", "--format", args.format ?? "json");
|
|
17
|
+
const output = await execDocker(cmdArgs);
|
|
18
|
+
return { content: [{ type: "text", text: output.trim() || "No images found" }] };
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
return errorResponse(error);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=composeImages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeImages.js","sourceRoot":"","sources":["../../src/tools/composeImages.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,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACvF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;CACxF,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,uDAAuD,EACvD,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;YAE1D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,iBAAiB,EAAE,CAAC,EAAE,CAAC;QAC5F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeKill.d.ts","sourceRoot":"","sources":["../../src/tools/composeKill.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqBhD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
file: z.string().optional().describe("Path to compose file"),
|
|
5
|
+
projectDir: z.string().optional().describe("Working directory for the compose project"),
|
|
6
|
+
services: z.array(z.string()).optional().describe("Specific services to kill (default: all)"),
|
|
7
|
+
signal: z.string().optional().describe("Signal to send (e.g. 'SIGKILL', 'SIGTERM')"),
|
|
8
|
+
};
|
|
9
|
+
export function register(server) {
|
|
10
|
+
server.tool("docker_composeKill", "Force stop Docker Compose service containers by sending a signal", inputSchema, async (args) => {
|
|
11
|
+
try {
|
|
12
|
+
const cmdArgs = ["compose"];
|
|
13
|
+
if (args.file)
|
|
14
|
+
cmdArgs.push("-f", args.file);
|
|
15
|
+
if (args.projectDir)
|
|
16
|
+
cmdArgs.push("--project-directory", args.projectDir);
|
|
17
|
+
cmdArgs.push("kill");
|
|
18
|
+
if (args.signal)
|
|
19
|
+
cmdArgs.push("-s", args.signal);
|
|
20
|
+
if (args.services)
|
|
21
|
+
cmdArgs.push(...args.services);
|
|
22
|
+
const output = await execDocker(cmdArgs);
|
|
23
|
+
return { content: [{ type: "text", text: output.trim() || "Services killed" }] };
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return errorResponse(error);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=composeKill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeKill.js","sourceRoot":"","sources":["../../src/tools/composeKill.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,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACvF,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAC7F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;CACrF,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,kEAAkE,EAClE,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,iBAAiB,EAAE,CAAC,EAAE,CAAC;QAC5F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeLs.d.ts","sourceRoot":"","sources":["../../src/tools/composeLs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkBhD"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
all: z.boolean().optional().default(false).describe("Show all projects including stopped"),
|
|
5
|
+
format: z.string().optional().default("json").describe("Output format (default: json)"),
|
|
6
|
+
filter: z.string().optional().describe("Filter projects (e.g. 'status=running')"),
|
|
7
|
+
};
|
|
8
|
+
export function register(server) {
|
|
9
|
+
server.tool("docker_composeLs", "List running Docker Compose projects", inputSchema, async (args) => {
|
|
10
|
+
try {
|
|
11
|
+
const cmdArgs = ["compose", "ls", "--format", args.format ?? "json"];
|
|
12
|
+
if (args.all)
|
|
13
|
+
cmdArgs.push("--all");
|
|
14
|
+
if (args.filter)
|
|
15
|
+
cmdArgs.push("--filter", args.filter);
|
|
16
|
+
const output = await execDocker(cmdArgs);
|
|
17
|
+
return { content: [{ type: "text", text: output.trim() || "No compose projects found" }] };
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
return errorResponse(error);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=composeLs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeLs.js","sourceRoot":"","sources":["../../src/tools/composeLs.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,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC1F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACvF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;CAClF,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,sCAAsC,EACtC,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;YACrE,IAAI,IAAI,CAAC,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAEvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,2BAA2B,EAAE,CAAC,EAAE,CAAC;QACtG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composePause.d.ts","sourceRoot":"","sources":["../../src/tools/composePause.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoBhD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
file: z.string().optional().describe("Path to compose file"),
|
|
5
|
+
projectDir: z.string().optional().describe("Working directory for the compose project"),
|
|
6
|
+
services: z.array(z.string()).optional().describe("Specific services to pause (default: all)"),
|
|
7
|
+
};
|
|
8
|
+
export function register(server) {
|
|
9
|
+
server.tool("docker_composePause", "Pause Docker Compose services", inputSchema, async (args) => {
|
|
10
|
+
try {
|
|
11
|
+
const cmdArgs = ["compose"];
|
|
12
|
+
if (args.file)
|
|
13
|
+
cmdArgs.push("-f", args.file);
|
|
14
|
+
if (args.projectDir)
|
|
15
|
+
cmdArgs.push("--project-directory", args.projectDir);
|
|
16
|
+
cmdArgs.push("pause");
|
|
17
|
+
if (args.services)
|
|
18
|
+
cmdArgs.push(...args.services);
|
|
19
|
+
const output = await execDocker(cmdArgs);
|
|
20
|
+
return { content: [{ type: "text", text: output.trim() || "Services paused" }] };
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
return errorResponse(error);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=composePause.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composePause.js","sourceRoot":"","sources":["../../src/tools/composePause.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,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACvF,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;CAC/F,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,+BAA+B,EAC/B,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,iBAAiB,EAAE,CAAC,EAAE,CAAC;QAC5F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composePort.d.ts","sourceRoot":"","sources":["../../src/tools/composePort.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqBhD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
file: z.string().optional().describe("Path to compose file"),
|
|
5
|
+
projectDir: z.string().optional().describe("Working directory for the compose project"),
|
|
6
|
+
service: z.string().min(1).describe("Service name"),
|
|
7
|
+
privatePort: z.number().describe("Private port number to query"),
|
|
8
|
+
protocol: z.enum(["tcp", "udp"]).optional().describe("Protocol (default: tcp)"),
|
|
9
|
+
};
|
|
10
|
+
export function register(server) {
|
|
11
|
+
server.tool("docker_composePort", "Print the public port for a Docker Compose service port binding", inputSchema, async (args) => {
|
|
12
|
+
try {
|
|
13
|
+
const cmdArgs = ["compose"];
|
|
14
|
+
if (args.file)
|
|
15
|
+
cmdArgs.push("-f", args.file);
|
|
16
|
+
if (args.projectDir)
|
|
17
|
+
cmdArgs.push("--project-directory", args.projectDir);
|
|
18
|
+
cmdArgs.push("port");
|
|
19
|
+
if (args.protocol)
|
|
20
|
+
cmdArgs.push("--protocol", args.protocol);
|
|
21
|
+
cmdArgs.push(args.service, String(args.privatePort));
|
|
22
|
+
const output = await execDocker(cmdArgs);
|
|
23
|
+
return { content: [{ type: "text", text: output.trim() }] };
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return errorResponse(error);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=composePort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composePort.js","sourceRoot":"","sources":["../../src/tools/composePort.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,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACvF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;IACnD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IAChE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;CAChF,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,iEAAiE,EACjE,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAErD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeRm.d.ts","sourceRoot":"","sources":["../../src/tools/composeRm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsBhD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
file: z.string().optional().describe("Path to compose file"),
|
|
5
|
+
projectDir: z.string().optional().describe("Working directory for the compose project"),
|
|
6
|
+
services: z.array(z.string()).optional().describe("Specific services to remove (default: all stopped)"),
|
|
7
|
+
volumes: z.boolean().optional().default(false).describe("Remove anonymous volumes attached to containers"),
|
|
8
|
+
stop: z.boolean().optional().default(false).describe("Stop running containers before removing"),
|
|
9
|
+
};
|
|
10
|
+
export function register(server) {
|
|
11
|
+
server.tool("docker_composeRm", "Remove stopped Docker Compose service containers", inputSchema, async (args) => {
|
|
12
|
+
try {
|
|
13
|
+
const cmdArgs = ["compose"];
|
|
14
|
+
if (args.file)
|
|
15
|
+
cmdArgs.push("-f", args.file);
|
|
16
|
+
if (args.projectDir)
|
|
17
|
+
cmdArgs.push("--project-directory", args.projectDir);
|
|
18
|
+
cmdArgs.push("rm", "-f");
|
|
19
|
+
if (args.stop)
|
|
20
|
+
cmdArgs.push("--stop");
|
|
21
|
+
if (args.volumes)
|
|
22
|
+
cmdArgs.push("-v");
|
|
23
|
+
if (args.services)
|
|
24
|
+
cmdArgs.push(...args.services);
|
|
25
|
+
const output = await execDocker(cmdArgs);
|
|
26
|
+
return { content: [{ type: "text", text: output.trim() || "Stopped containers removed" }] };
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
return errorResponse(error);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=composeRm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeRm.js","sourceRoot":"","sources":["../../src/tools/composeRm.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,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACvF,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IACvG,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,iDAAiD,CAAC;IAC1G,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;CAChG,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,kDAAkD,EAClD,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,4BAA4B,EAAE,CAAC,EAAE,CAAC;QACvG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeRun.d.ts","sourceRoot":"","sources":["../../src/tools/composeRun.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6BhD"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
file: z.string().optional().describe("Path to compose file"),
|
|
5
|
+
projectDir: z.string().optional().describe("Working directory for the compose project"),
|
|
6
|
+
service: z.string().min(1).describe("Service to run the command on"),
|
|
7
|
+
command: z.array(z.string()).optional().describe("Command and arguments to run"),
|
|
8
|
+
rm: z.boolean().optional().default(true).describe("Remove container after exit (default: true)"),
|
|
9
|
+
detach: z.boolean().optional().default(false).describe("Run in background"),
|
|
10
|
+
user: z.string().optional().describe("Run as specified user (e.g. 'root', '1000:1000')"),
|
|
11
|
+
env: z.array(z.string()).optional().describe("Environment variables (e.g. ['KEY=value'])"),
|
|
12
|
+
workdir: z.string().optional().describe("Working directory inside the container"),
|
|
13
|
+
noDeps: z.boolean().optional().default(false).describe("Don't start linked services"),
|
|
14
|
+
};
|
|
15
|
+
export function register(server) {
|
|
16
|
+
server.tool("docker_composeRun", "Run a one-off command on a Docker Compose service", inputSchema, async (args) => {
|
|
17
|
+
try {
|
|
18
|
+
const cmdArgs = ["compose"];
|
|
19
|
+
if (args.file)
|
|
20
|
+
cmdArgs.push("-f", args.file);
|
|
21
|
+
if (args.projectDir)
|
|
22
|
+
cmdArgs.push("--project-directory", args.projectDir);
|
|
23
|
+
cmdArgs.push("run", "--no-TTY");
|
|
24
|
+
if (args.rm)
|
|
25
|
+
cmdArgs.push("--rm");
|
|
26
|
+
if (args.detach)
|
|
27
|
+
cmdArgs.push("-d");
|
|
28
|
+
if (args.user)
|
|
29
|
+
cmdArgs.push("--user", args.user);
|
|
30
|
+
if (args.env) {
|
|
31
|
+
for (const e of args.env)
|
|
32
|
+
cmdArgs.push("-e", e);
|
|
33
|
+
}
|
|
34
|
+
if (args.workdir)
|
|
35
|
+
cmdArgs.push("-w", args.workdir);
|
|
36
|
+
if (args.noDeps)
|
|
37
|
+
cmdArgs.push("--no-deps");
|
|
38
|
+
cmdArgs.push(args.service);
|
|
39
|
+
if (args.command)
|
|
40
|
+
cmdArgs.push(...args.command);
|
|
41
|
+
const output = await execDocker(cmdArgs, { timeout: 300_000 });
|
|
42
|
+
return { content: [{ type: "text", text: output.trim() || "Command completed" }] };
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
return errorResponse(error);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=composeRun.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeRun.js","sourceRoot":"","sources":["../../src/tools/composeRun.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeScale.d.ts","sourceRoot":"","sources":["../../src/tools/composeScale.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsBhD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
file: z.string().optional().describe("Path to compose file"),
|
|
5
|
+
projectDir: z.string().optional().describe("Working directory for the compose project"),
|
|
6
|
+
scales: z.array(z.string()).min(1).describe("Scale specifications (e.g. ['web=3', 'worker=2'])"),
|
|
7
|
+
};
|
|
8
|
+
export function register(server) {
|
|
9
|
+
server.tool("docker_composeScale", "Scale Docker Compose services to a specified number of replicas", inputSchema, async (args) => {
|
|
10
|
+
try {
|
|
11
|
+
const cmdArgs = ["compose"];
|
|
12
|
+
if (args.file)
|
|
13
|
+
cmdArgs.push("-f", args.file);
|
|
14
|
+
if (args.projectDir)
|
|
15
|
+
cmdArgs.push("--project-directory", args.projectDir);
|
|
16
|
+
cmdArgs.push("up", "-d");
|
|
17
|
+
for (const s of args.scales) {
|
|
18
|
+
cmdArgs.push("--scale", s);
|
|
19
|
+
}
|
|
20
|
+
const output = await execDocker(cmdArgs, { timeout: 300_000 });
|
|
21
|
+
return { content: [{ type: "text", text: output.trim() || `Scaled services: ${args.scales.join(", ")}` }] };
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
return errorResponse(error);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=composeScale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeScale.js","sourceRoot":"","sources":["../../src/tools/composeScale.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,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACvF,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC;CACjG,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,iEAAiE,EACjE,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACzB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAC7B,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAC/D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACvH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeStart.d.ts","sourceRoot":"","sources":["../../src/tools/composeStart.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoBhD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
file: z.string().optional().describe("Path to compose file"),
|
|
5
|
+
projectDir: z.string().optional().describe("Working directory for the compose project"),
|
|
6
|
+
services: z.array(z.string()).optional().describe("Specific services to start (default: all)"),
|
|
7
|
+
};
|
|
8
|
+
export function register(server) {
|
|
9
|
+
server.tool("docker_composeStart", "Start existing Docker Compose service containers", inputSchema, async (args) => {
|
|
10
|
+
try {
|
|
11
|
+
const cmdArgs = ["compose"];
|
|
12
|
+
if (args.file)
|
|
13
|
+
cmdArgs.push("-f", args.file);
|
|
14
|
+
if (args.projectDir)
|
|
15
|
+
cmdArgs.push("--project-directory", args.projectDir);
|
|
16
|
+
cmdArgs.push("start");
|
|
17
|
+
if (args.services)
|
|
18
|
+
cmdArgs.push(...args.services);
|
|
19
|
+
const output = await execDocker(cmdArgs);
|
|
20
|
+
return { content: [{ type: "text", text: output.trim() || "Services started" }] };
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
return errorResponse(error);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=composeStart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeStart.js","sourceRoot":"","sources":["../../src/tools/composeStart.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,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACvF,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;CAC/F,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,kDAAkD,EAClD,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,kBAAkB,EAAE,CAAC,EAAE,CAAC;QAC7F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeStop.d.ts","sourceRoot":"","sources":["../../src/tools/composeStop.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqBhD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
file: z.string().optional().describe("Path to compose file"),
|
|
5
|
+
projectDir: z.string().optional().describe("Working directory for the compose project"),
|
|
6
|
+
services: z.array(z.string()).optional().describe("Specific services to stop (default: all)"),
|
|
7
|
+
timeout: z.number().optional().describe("Seconds to wait for graceful stop before killing"),
|
|
8
|
+
};
|
|
9
|
+
export function register(server) {
|
|
10
|
+
server.tool("docker_composeStop", "Stop Docker Compose services without removing containers", inputSchema, async (args) => {
|
|
11
|
+
try {
|
|
12
|
+
const cmdArgs = ["compose"];
|
|
13
|
+
if (args.file)
|
|
14
|
+
cmdArgs.push("-f", args.file);
|
|
15
|
+
if (args.projectDir)
|
|
16
|
+
cmdArgs.push("--project-directory", args.projectDir);
|
|
17
|
+
cmdArgs.push("stop");
|
|
18
|
+
if (args.timeout !== undefined)
|
|
19
|
+
cmdArgs.push("-t", String(args.timeout));
|
|
20
|
+
if (args.services)
|
|
21
|
+
cmdArgs.push(...args.services);
|
|
22
|
+
const output = await execDocker(cmdArgs);
|
|
23
|
+
return { content: [{ type: "text", text: output.trim() || "Services stopped" }] };
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return errorResponse(error);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=composeStop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeStop.js","sourceRoot":"","sources":["../../src/tools/composeStop.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,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACvF,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAC7F,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;CAC5F,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,0DAA0D,EAC1D,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACzE,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,kBAAkB,EAAE,CAAC,EAAE,CAAC;QAC7F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeTop.d.ts","sourceRoot":"","sources":["../../src/tools/composeTop.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoBhD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
file: z.string().optional().describe("Path to compose file"),
|
|
5
|
+
projectDir: z.string().optional().describe("Working directory for the compose project"),
|
|
6
|
+
services: z.array(z.string()).optional().describe("Specific services to display processes for (default: all)"),
|
|
7
|
+
};
|
|
8
|
+
export function register(server) {
|
|
9
|
+
server.tool("docker_composeTop", "Display running processes in Docker Compose service containers", inputSchema, async (args) => {
|
|
10
|
+
try {
|
|
11
|
+
const cmdArgs = ["compose"];
|
|
12
|
+
if (args.file)
|
|
13
|
+
cmdArgs.push("-f", args.file);
|
|
14
|
+
if (args.projectDir)
|
|
15
|
+
cmdArgs.push("--project-directory", args.projectDir);
|
|
16
|
+
cmdArgs.push("top");
|
|
17
|
+
if (args.services)
|
|
18
|
+
cmdArgs.push(...args.services);
|
|
19
|
+
const output = await execDocker(cmdArgs);
|
|
20
|
+
return { content: [{ type: "text", text: output.trim() || "No running processes found" }] };
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
return errorResponse(error);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=composeTop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeTop.js","sourceRoot":"","sources":["../../src/tools/composeTop.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,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACvF,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;CAC/G,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,gEAAgE,EAChE,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,4BAA4B,EAAE,CAAC,EAAE,CAAC;QACvG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeUnpause.d.ts","sourceRoot":"","sources":["../../src/tools/composeUnpause.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoBhD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
file: z.string().optional().describe("Path to compose file"),
|
|
5
|
+
projectDir: z.string().optional().describe("Working directory for the compose project"),
|
|
6
|
+
services: z.array(z.string()).optional().describe("Specific services to unpause (default: all)"),
|
|
7
|
+
};
|
|
8
|
+
export function register(server) {
|
|
9
|
+
server.tool("docker_composeUnpause", "Unpause Docker Compose services", inputSchema, async (args) => {
|
|
10
|
+
try {
|
|
11
|
+
const cmdArgs = ["compose"];
|
|
12
|
+
if (args.file)
|
|
13
|
+
cmdArgs.push("-f", args.file);
|
|
14
|
+
if (args.projectDir)
|
|
15
|
+
cmdArgs.push("--project-directory", args.projectDir);
|
|
16
|
+
cmdArgs.push("unpause");
|
|
17
|
+
if (args.services)
|
|
18
|
+
cmdArgs.push(...args.services);
|
|
19
|
+
const output = await execDocker(cmdArgs);
|
|
20
|
+
return { content: [{ type: "text", text: output.trim() || "Services unpaused" }] };
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
return errorResponse(error);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=composeUnpause.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeUnpause.js","sourceRoot":"","sources":["../../src/tools/composeUnpause.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,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACvF,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;CACjG,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,iCAAiC,EACjC,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,mBAAmB,EAAE,CAAC,EAAE,CAAC;QAC9F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tmhs/docker-mcp",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "MCP server for Docker CLI integration -
|
|
3
|
+
"version": "0.8.0",
|
|
4
|
+
"description": "MCP server for Docker CLI integration - 84 tools for containers, images, compose, volumes, networks, cleanup, observability, buildx, manifests, and system info. Full lifecycle, image pipeline, complete Compose V2, volume/network CRUD, resource pruning, live monitoring, multi-platform builds, and manifest management.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|