@tmhs/docker-mcp 0.9.0 → 0.11.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 +79 -2
- package/dist/index.js +85 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/configCreate.d.ts +3 -0
- package/dist/tools/configCreate.d.ts.map +1 -0
- package/dist/tools/configCreate.js +24 -0
- package/dist/tools/configCreate.js.map +1 -0
- package/dist/tools/configInspect.d.ts +3 -0
- package/dist/tools/configInspect.d.ts.map +1 -0
- package/dist/tools/configInspect.js +22 -0
- package/dist/tools/configInspect.js.map +1 -0
- package/dist/tools/configLs.d.ts +3 -0
- package/dist/tools/configLs.d.ts.map +1 -0
- package/dist/tools/configLs.js +22 -0
- package/dist/tools/configLs.js.map +1 -0
- package/dist/tools/configRm.d.ts +3 -0
- package/dist/tools/configRm.d.ts.map +1 -0
- package/dist/tools/configRm.js +17 -0
- package/dist/tools/configRm.js.map +1 -0
- package/dist/tools/nodeDemote.d.ts +3 -0
- package/dist/tools/nodeDemote.d.ts.map +1 -0
- package/dist/tools/nodeDemote.js +17 -0
- package/dist/tools/nodeDemote.js.map +1 -0
- package/dist/tools/nodeInspect.d.ts +3 -0
- package/dist/tools/nodeInspect.d.ts.map +1 -0
- package/dist/tools/nodeInspect.js +22 -0
- package/dist/tools/nodeInspect.js.map +1 -0
- package/dist/tools/nodeLs.d.ts +3 -0
- package/dist/tools/nodeLs.d.ts.map +1 -0
- package/dist/tools/nodeLs.js +22 -0
- package/dist/tools/nodeLs.js.map +1 -0
- package/dist/tools/nodePromote.d.ts +3 -0
- package/dist/tools/nodePromote.d.ts.map +1 -0
- package/dist/tools/nodePromote.js +17 -0
- package/dist/tools/nodePromote.js.map +1 -0
- package/dist/tools/nodePs.d.ts +3 -0
- package/dist/tools/nodePs.d.ts.map +1 -0
- package/dist/tools/nodePs.js +25 -0
- package/dist/tools/nodePs.js.map +1 -0
- package/dist/tools/nodeRm.d.ts +3 -0
- package/dist/tools/nodeRm.d.ts.map +1 -0
- package/dist/tools/nodeRm.js +22 -0
- package/dist/tools/nodeRm.js.map +1 -0
- package/dist/tools/nodeUpdate.d.ts +3 -0
- package/dist/tools/nodeUpdate.d.ts.map +1 -0
- package/dist/tools/nodeUpdate.js +29 -0
- package/dist/tools/nodeUpdate.js.map +1 -0
- package/dist/tools/secretCreate.d.ts +3 -0
- package/dist/tools/secretCreate.d.ts.map +1 -0
- package/dist/tools/secretCreate.js +24 -0
- package/dist/tools/secretCreate.js.map +1 -0
- package/dist/tools/secretInspect.d.ts +3 -0
- package/dist/tools/secretInspect.d.ts.map +1 -0
- package/dist/tools/secretInspect.js +22 -0
- package/dist/tools/secretInspect.js.map +1 -0
- package/dist/tools/secretLs.d.ts +3 -0
- package/dist/tools/secretLs.d.ts.map +1 -0
- package/dist/tools/secretLs.js +22 -0
- package/dist/tools/secretLs.js.map +1 -0
- package/dist/tools/secretRm.d.ts +3 -0
- package/dist/tools/secretRm.d.ts.map +1 -0
- package/dist/tools/secretRm.js +17 -0
- package/dist/tools/secretRm.js.map +1 -0
- package/dist/tools/serviceCreate.d.ts +3 -0
- package/dist/tools/serviceCreate.d.ts.map +1 -0
- package/dist/tools/serviceCreate.js +62 -0
- package/dist/tools/serviceCreate.js.map +1 -0
- package/dist/tools/serviceInspect.d.ts +3 -0
- package/dist/tools/serviceInspect.d.ts.map +1 -0
- package/dist/tools/serviceInspect.js +22 -0
- package/dist/tools/serviceInspect.js.map +1 -0
- package/dist/tools/serviceLogs.d.ts +3 -0
- package/dist/tools/serviceLogs.d.ts.map +1 -0
- package/dist/tools/serviceLogs.js +28 -0
- package/dist/tools/serviceLogs.js.map +1 -0
- package/dist/tools/serviceLs.d.ts +3 -0
- package/dist/tools/serviceLs.d.ts.map +1 -0
- package/dist/tools/serviceLs.js +22 -0
- package/dist/tools/serviceLs.js.map +1 -0
- package/dist/tools/servicePs.d.ts +3 -0
- package/dist/tools/servicePs.d.ts.map +1 -0
- package/dist/tools/servicePs.js +24 -0
- package/dist/tools/servicePs.js.map +1 -0
- package/dist/tools/serviceRm.d.ts +3 -0
- package/dist/tools/serviceRm.d.ts.map +1 -0
- package/dist/tools/serviceRm.js +17 -0
- package/dist/tools/serviceRm.js.map +1 -0
- package/dist/tools/serviceRollback.d.ts +3 -0
- package/dist/tools/serviceRollback.d.ts.map +1 -0
- package/dist/tools/serviceRollback.js +22 -0
- package/dist/tools/serviceRollback.js.map +1 -0
- package/dist/tools/serviceScale.d.ts +3 -0
- package/dist/tools/serviceScale.d.ts.map +1 -0
- package/dist/tools/serviceScale.js +17 -0
- package/dist/tools/serviceScale.js.map +1 -0
- package/dist/tools/serviceUpdate.d.ts +3 -0
- package/dist/tools/serviceUpdate.d.ts.map +1 -0
- package/dist/tools/serviceUpdate.js +45 -0
- package/dist/tools/serviceUpdate.js.map +1 -0
- package/dist/tools/stackConfig.d.ts +3 -0
- package/dist/tools/stackConfig.d.ts.map +1 -0
- package/dist/tools/stackConfig.js +17 -0
- package/dist/tools/stackConfig.js.map +1 -0
- package/dist/tools/stackDeploy.d.ts +3 -0
- package/dist/tools/stackDeploy.d.ts.map +1 -0
- package/dist/tools/stackDeploy.js +29 -0
- package/dist/tools/stackDeploy.js.map +1 -0
- package/dist/tools/stackLs.d.ts +3 -0
- package/dist/tools/stackLs.d.ts.map +1 -0
- package/dist/tools/stackLs.js +17 -0
- package/dist/tools/stackLs.js.map +1 -0
- package/dist/tools/stackPs.d.ts +3 -0
- package/dist/tools/stackPs.d.ts.map +1 -0
- package/dist/tools/stackPs.js +24 -0
- package/dist/tools/stackPs.js.map +1 -0
- package/dist/tools/stackRm.d.ts +3 -0
- package/dist/tools/stackRm.d.ts.map +1 -0
- package/dist/tools/stackRm.js +17 -0
- package/dist/tools/stackRm.js.map +1 -0
- package/dist/tools/stackServices.d.ts +3 -0
- package/dist/tools/stackServices.d.ts.map +1 -0
- package/dist/tools/stackServices.js +24 -0
- package/dist/tools/stackServices.js.map +1 -0
- package/dist/tools/swarmCa.d.ts +3 -0
- package/dist/tools/swarmCa.d.ts.map +1 -0
- package/dist/tools/swarmCa.js +26 -0
- package/dist/tools/swarmCa.js.map +1 -0
- package/dist/tools/swarmInit.d.ts +3 -0
- package/dist/tools/swarmInit.d.ts.map +1 -0
- package/dist/tools/swarmInit.js +29 -0
- package/dist/tools/swarmInit.js.map +1 -0
- package/dist/tools/swarmJoin.d.ts +3 -0
- package/dist/tools/swarmJoin.d.ts.map +1 -0
- package/dist/tools/swarmJoin.js +26 -0
- package/dist/tools/swarmJoin.js.map +1 -0
- package/dist/tools/swarmJoinToken.d.ts +3 -0
- package/dist/tools/swarmJoinToken.d.ts.map +1 -0
- package/dist/tools/swarmJoinToken.js +22 -0
- package/dist/tools/swarmJoinToken.js.map +1 -0
- package/dist/tools/swarmLeave.d.ts +3 -0
- package/dist/tools/swarmLeave.d.ts.map +1 -0
- package/dist/tools/swarmLeave.js +20 -0
- package/dist/tools/swarmLeave.js.map +1 -0
- package/dist/tools/swarmUnlock.d.ts +3 -0
- package/dist/tools/swarmUnlock.d.ts.map +1 -0
- package/dist/tools/swarmUnlock.js +33 -0
- package/dist/tools/swarmUnlock.js.map +1 -0
- package/dist/tools/swarmUnlockKey.d.ts +3 -0
- package/dist/tools/swarmUnlockKey.d.ts.map +1 -0
- package/dist/tools/swarmUnlockKey.js +21 -0
- package/dist/tools/swarmUnlockKey.js.map +1 -0
- package/dist/tools/swarmUpdate.d.ts +3 -0
- package/dist/tools/swarmUpdate.d.ts.map +1 -0
- package/dist/tools/swarmUpdate.js +29 -0
- package/dist/tools/swarmUpdate.js.map +1 -0
- package/dist/tools/trustInspect.d.ts +3 -0
- package/dist/tools/trustInspect.d.ts.map +1 -0
- package/dist/tools/trustInspect.js +22 -0
- package/dist/tools/trustInspect.js.map +1 -0
- package/dist/tools/trustKey.d.ts +3 -0
- package/dist/tools/trustKey.d.ts.map +1 -0
- package/dist/tools/trustKey.js +30 -0
- package/dist/tools/trustKey.js.map +1 -0
- package/dist/tools/trustRevoke.d.ts +3 -0
- package/dist/tools/trustRevoke.d.ts.map +1 -0
- package/dist/tools/trustRevoke.js +22 -0
- package/dist/tools/trustRevoke.js.map +1 -0
- package/dist/tools/trustSign.d.ts +3 -0
- package/dist/tools/trustSign.d.ts.map +1 -0
- package/dist/tools/trustSign.js +22 -0
- package/dist/tools/trustSign.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
action: z.enum(["generate", "load"]).describe("Key action: generate a new key pair or load an existing key"),
|
|
5
|
+
name: z.string().optional().describe("Key name (required for generate)"),
|
|
6
|
+
keyFile: z.string().optional().describe("Path to the key file (required for load)"),
|
|
7
|
+
};
|
|
8
|
+
export function register(server) {
|
|
9
|
+
server.tool("docker_trustKey", "Manage Docker Content Trust signing keys (generate or load)", inputSchema, async (args) => {
|
|
10
|
+
try {
|
|
11
|
+
const cmdArgs = ["trust", "key", args.action];
|
|
12
|
+
if (args.action === "generate") {
|
|
13
|
+
if (!args.name)
|
|
14
|
+
throw new Error("name is required for generate action");
|
|
15
|
+
cmdArgs.push(args.name);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
if (!args.keyFile)
|
|
19
|
+
throw new Error("keyFile is required for load action");
|
|
20
|
+
cmdArgs.push(args.keyFile);
|
|
21
|
+
}
|
|
22
|
+
const output = await execDocker(cmdArgs);
|
|
23
|
+
return { content: [{ type: "text", text: output.trim() || `Key ${args.action} completed` }] };
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return errorResponse(error);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=trustKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trustKey.js","sourceRoot":"","sources":["../../src/tools/trustKey.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,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,6DAA6D,CAAC;IAC5G,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACxE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;CACpF,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,6DAA6D,EAC7D,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBACxE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBAC1E,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YACD,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,OAAO,IAAI,CAAC,MAAM,YAAY,EAAE,CAAC,EAAE,CAAC;QACzG,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":"trustRevoke.d.ts","sourceRoot":"","sources":["../../src/tools/trustRevoke.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiBhD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
image: z.string().min(1).describe("Image to revoke trust for"),
|
|
5
|
+
yes: z.boolean().optional().default(true).describe("Skip confirmation prompt"),
|
|
6
|
+
};
|
|
7
|
+
export function register(server) {
|
|
8
|
+
server.tool("docker_trustRevoke", "Revoke Docker Content Trust for an image", inputSchema, async (args) => {
|
|
9
|
+
try {
|
|
10
|
+
const cmdArgs = ["trust", "revoke"];
|
|
11
|
+
if (args.yes)
|
|
12
|
+
cmdArgs.push("--yes");
|
|
13
|
+
cmdArgs.push(args.image);
|
|
14
|
+
const output = await execDocker(cmdArgs);
|
|
15
|
+
return { content: [{ type: "text", text: output.trim() || `Trust revoked for '${args.image}'` }] };
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
return errorResponse(error);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=trustRevoke.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trustRevoke.js","sourceRoot":"","sources":["../../src/tools/trustRevoke.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,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC9D,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CAC/E,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,0CAA0C,EAC1C,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,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,sBAAsB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC;QAC9G,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":"trustSign.d.ts","sourceRoot":"","sources":["../../src/tools/trustSign.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiBhD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { execDocker, errorResponse } from "../utils/docker-api.js";
|
|
3
|
+
const inputSchema = {
|
|
4
|
+
image: z.string().min(1).describe("Image to sign (e.g. 'registry.example.com/myimage:latest')"),
|
|
5
|
+
local: z.boolean().optional().default(false).describe("Sign a locally tagged image"),
|
|
6
|
+
};
|
|
7
|
+
export function register(server) {
|
|
8
|
+
server.tool("docker_trustSign", "Sign an image for Docker Content Trust", inputSchema, async (args) => {
|
|
9
|
+
try {
|
|
10
|
+
const cmdArgs = ["trust", "sign"];
|
|
11
|
+
if (args.local)
|
|
12
|
+
cmdArgs.push("--local");
|
|
13
|
+
cmdArgs.push(args.image);
|
|
14
|
+
const output = await execDocker(cmdArgs, { timeout: 120_000 });
|
|
15
|
+
return { content: [{ type: "text", text: output.trim() || `Image '${args.image}' signed` }] };
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
return errorResponse(error);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=trustSign.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trustSign.js","sourceRoot":"","sources":["../../src/tools/trustSign.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,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IAC/F,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CACrF,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,wCAAwC,EACxC,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,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,KAAK,UAAU,EAAE,CAAC,EAAE,CAAC;QACzG,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.11.0",
|
|
4
|
+
"description": "MCP server for Docker CLI integration - 140 tools for containers, images, compose, volumes, networks, cleanup, observability, buildx, manifests, contexts, registry auth, Swarm orchestration, stacks, configs, secrets, content trust, and system info.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|