@octopusdeploy/mcp-server 0.1.2 → 0.2.1
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/LICENSE +373 -373
- package/README.md +204 -210
- package/dist/helpers/getClientConfigurationFromEnvironment.js +2 -2
- package/dist/helpers/getClientConfigurationFromEnvironment.js.map +1 -1
- package/dist/index.js +13 -11
- package/dist/index.js.map +1 -1
- package/dist/tools/getAccount.d.ts +3 -0
- package/dist/tools/getAccount.d.ts.map +1 -0
- package/dist/tools/getAccount.js +40 -0
- package/dist/tools/getAccount.js.map +1 -0
- package/dist/tools/getBranches.js +4 -3
- package/dist/tools/getBranches.js.map +1 -1
- package/dist/tools/getCertificate.d.ts +3 -0
- package/dist/tools/getCertificate.d.ts.map +1 -0
- package/dist/tools/getCertificate.js +40 -0
- package/dist/tools/getCertificate.js.map +1 -0
- package/dist/tools/getCurrentUser.js +3 -3
- package/dist/tools/getDeploymentProcess.js +3 -3
- package/dist/tools/getDeploymentTarget.js +3 -3
- package/dist/tools/getKubernetesLiveStatus.js +4 -3
- package/dist/tools/getKubernetesLiveStatus.js.map +1 -1
- package/dist/tools/getMissingTenantVariables.js +3 -3
- package/dist/tools/getReleaseById.js +1 -1
- package/dist/tools/getTaskById.js +1 -1
- package/dist/tools/getTaskDetails.js +1 -1
- package/dist/tools/getTaskRaw.js +1 -1
- package/dist/tools/getTenantById.js +2 -2
- package/dist/tools/getTenantById.js.map +1 -1
- package/dist/tools/getTenantVariables.js +6 -6
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/listAccounts.d.ts +3 -0
- package/dist/tools/listAccounts.d.ts.map +1 -0
- package/dist/tools/listAccounts.js +54 -0
- package/dist/tools/listAccounts.js.map +1 -0
- package/dist/tools/listCertificates.d.ts +3 -0
- package/dist/tools/listCertificates.d.ts.map +1 -0
- package/dist/tools/listCertificates.js +62 -0
- package/dist/tools/listCertificates.js.map +1 -0
- package/dist/tools/listDeploymentTargets.js +3 -3
- package/dist/tools/listDeployments.js +3 -3
- package/dist/tools/listEnvironments.js +3 -3
- package/dist/tools/listProjects.js +1 -1
- package/dist/tools/listReleases.js +3 -3
- package/dist/tools/listReleasesForProject.js +3 -3
- package/dist/tools/listSpaces.js +1 -1
- package/dist/tools/listTenants.js +3 -3
- package/dist/types/accountTypes.d.ts +218 -0
- package/dist/types/accountTypes.d.ts.map +1 -0
- package/dist/types/accountTypes.js +127 -0
- package/dist/types/accountTypes.js.map +1 -0
- package/dist/types/certificateTypes.d.ts +74 -0
- package/dist/types/certificateTypes.d.ts.map +1 -0
- package/dist/types/certificateTypes.js +46 -0
- package/dist/types/certificateTypes.js.map +1 -0
- package/dist/types/deploymentTargetTypes.d.ts +1 -6
- package/dist/types/deploymentTargetTypes.d.ts.map +1 -1
- package/dist/types/deploymentTargetTypes.js +1 -5
- package/dist/types/deploymentTargetTypes.js.map +1 -1
- package/dist/types/toolConfig.d.ts +15 -1
- package/dist/types/toolConfig.d.ts.map +1 -1
- package/dist/types/toolConfig.js +57 -1
- package/dist/types/toolConfig.js.map +1 -1
- package/dist/utils/logger.js +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/package.json +58 -50
- package/dist/resources/index.d.ts +0 -3
- package/dist/resources/index.d.ts.map +0 -1
- package/dist/resources/index.js +0 -4
- package/dist/resources/index.js.map +0 -1
- package/dist/resources/spacesResource.d.ts +0 -3
- package/dist/resources/spacesResource.d.ts.map +0 -1
- package/dist/resources/spacesResource.js +0 -54
- package/dist/resources/spacesResource.js.map +0 -1
- package/dist/tools/getLatestDeployment.d.ts +0 -3
- package/dist/tools/getLatestDeployment.d.ts.map +0 -1
- package/dist/tools/getLatestDeployment.js +0 -85
- package/dist/tools/getLatestDeployment.js.map +0 -1
- package/dist/types/resourceCollection.d.ts +0 -9
- package/dist/types/resourceCollection.d.ts.map +0 -1
- package/dist/types/resourceCollection.js +0 -2
- package/dist/types/resourceCollection.js.map +0 -1
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Client, resolveSpaceId } from "@octopusdeploy/api-client";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
|
+
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
5
|
+
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
6
|
+
import { mapCertificateResource } from "../types/certificateTypes.js";
|
|
7
|
+
export function registerGetCertificateTool(server) {
|
|
8
|
+
server.tool("get_certificate", `Get details for a specific certificate by its ID
|
|
9
|
+
|
|
10
|
+
This tool retrieves detailed information about a specific certificate using its ID. The space name and certificate ID are both required.`, {
|
|
11
|
+
spaceName: z.string(),
|
|
12
|
+
certificateId: z.string().describe("The ID of the certificate to retrieve"),
|
|
13
|
+
}, {
|
|
14
|
+
title: "Get a specific certificate by ID from an Octopus Deploy space",
|
|
15
|
+
readOnlyHint: true,
|
|
16
|
+
}, async ({ spaceName, certificateId }) => {
|
|
17
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
18
|
+
const client = await Client.create(configuration);
|
|
19
|
+
const spaceId = await resolveSpaceId(client, spaceName);
|
|
20
|
+
const response = await client.get("~/api/{spaceId}/certificates/{id}", {
|
|
21
|
+
spaceId,
|
|
22
|
+
id: certificateId,
|
|
23
|
+
});
|
|
24
|
+
const certificate = mapCertificateResource(response);
|
|
25
|
+
return {
|
|
26
|
+
content: [
|
|
27
|
+
{
|
|
28
|
+
type: "text",
|
|
29
|
+
text: JSON.stringify(certificate),
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
registerToolDefinition({
|
|
36
|
+
toolName: "get_certificate",
|
|
37
|
+
config: { toolset: "certificates", readOnly: true },
|
|
38
|
+
registerFn: registerGetCertificateTool,
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=getCertificate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCertificate.js","sourceRoot":"","sources":["../../src/tools/getCertificate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qCAAqC,EAAE,MAAM,qDAAqD,CAAC;AAC5G,OAAO,EAA4B,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEhG,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB;;yIAEqI,EACrI;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KAC5E,EACD;QACE,KAAK,EAAE,+DAA+D;QACtE,YAAY,EAAE,IAAI;KACnB,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE;QACrC,MAAM,aAAa,GAAG,qCAAqC,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAExD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAC/B,mCAAmC,EACnC;YACE,OAAO;YACP,EAAE,EAAE,aAAa;SAClB,CACF,CAAC;QAEF,MAAM,WAAW,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAErD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;iBAClC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,sBAAsB,CAAC;IACrB,QAAQ,EAAE,iBAAiB;IAC3B,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnD,UAAU,EAAE,0BAA0B;CACvC,CAAC,CAAC"}
|
|
@@ -3,8 +3,8 @@ import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
3
3
|
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
4
4
|
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
5
5
|
export function registerGetCurrentUserTool(server) {
|
|
6
|
-
server.tool("get_current_user", `Get information about the current authenticated user
|
|
7
|
-
|
|
6
|
+
server.tool("get_current_user", `Get information about the current authenticated user
|
|
7
|
+
|
|
8
8
|
This tool retrieves information about the currently authenticated user from the Octopus Deploy API.`, {}, {
|
|
9
9
|
title: "Get current user information",
|
|
10
10
|
readOnlyHint: true,
|
|
@@ -35,6 +35,6 @@ This tool retrieves information about the currently authenticated user from the
|
|
|
35
35
|
registerToolDefinition({
|
|
36
36
|
toolName: "get_current_user",
|
|
37
37
|
config: { toolset: "context", readOnly: true },
|
|
38
|
-
registerFn: registerGetCurrentUserTool
|
|
38
|
+
registerFn: registerGetCurrentUserTool,
|
|
39
39
|
});
|
|
40
40
|
//# sourceMappingURL=getCurrentUser.js.map
|
|
@@ -6,8 +6,8 @@ import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfi
|
|
|
6
6
|
import {} from "../types/deploymentProcessTypes.js";
|
|
7
7
|
import { getProjectBranches } from "../helpers/vcsProjectHelpers.js";
|
|
8
8
|
export function registerGetDeploymentProcessTool(server) {
|
|
9
|
-
server.tool("get_deployment_process", `Get deployment process by ID
|
|
10
|
-
|
|
9
|
+
server.tool("get_deployment_process", `Get deployment process by ID
|
|
10
|
+
|
|
11
11
|
This tool retrieves a deployment process by its ID. Each project has a deployment process attached, and releases/deployments can also have frozen processes attached.`, {
|
|
12
12
|
spaceName: z.string(),
|
|
13
13
|
projectId: z.string().optional().describe("The ID of the project to retrieve the deployment process for. If processId is not provided, this parameter is required."),
|
|
@@ -86,6 +86,6 @@ This tool retrieves a deployment process by its ID. Each project has a deploymen
|
|
|
86
86
|
registerToolDefinition({
|
|
87
87
|
toolName: "get_deployment_process",
|
|
88
88
|
config: { toolset: "projects", readOnly: true },
|
|
89
|
-
registerFn: registerGetDeploymentProcessTool
|
|
89
|
+
registerFn: registerGetDeploymentProcessTool,
|
|
90
90
|
});
|
|
91
91
|
//# sourceMappingURL=getDeploymentProcess.js.map
|
|
@@ -5,8 +5,8 @@ import { registerToolDefinition } from "../types/toolConfig.js";
|
|
|
5
5
|
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
6
6
|
import {} from "../types/deploymentTargetTypes.js";
|
|
7
7
|
export function registerGetDeploymentTargetTool(server) {
|
|
8
|
-
server.tool("get_deployment_target", `Get a specific deployment target (machine) by ID
|
|
9
|
-
|
|
8
|
+
server.tool("get_deployment_target", `Get a specific deployment target (machine) by ID
|
|
9
|
+
|
|
10
10
|
This tool retrieves detailed information about a specific deployment target using its ID. The space name and target ID are both required.`, {
|
|
11
11
|
spaceName: z.string(),
|
|
12
12
|
targetId: z.string(),
|
|
@@ -61,6 +61,6 @@ This tool retrieves detailed information about a specific deployment target usin
|
|
|
61
61
|
registerToolDefinition({
|
|
62
62
|
toolName: "get_deployment_target",
|
|
63
63
|
config: { toolset: "machines", readOnly: true },
|
|
64
|
-
registerFn: registerGetDeploymentTargetTool
|
|
64
|
+
registerFn: registerGetDeploymentTargetTool,
|
|
65
65
|
});
|
|
66
66
|
//# sourceMappingURL=getDeploymentTarget.js.map
|
|
@@ -4,8 +4,8 @@ import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
4
4
|
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
5
5
|
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
6
6
|
export function registerGetKubernetesLiveStatusTool(server) {
|
|
7
|
-
server.tool("get_kubernetes_live_status", `Get Kubernetes live status for a project and environment
|
|
8
|
-
|
|
7
|
+
server.tool("get_kubernetes_live_status", `Get Kubernetes live status for a project and environment
|
|
8
|
+
|
|
9
9
|
This tool retrieves the live status of Kubernetes resources for a specific project and environment. Optionally include a tenant ID for multi-tenant deployments.`, {
|
|
10
10
|
spaceName: z.string().describe("The space name"),
|
|
11
11
|
projectId: z.string().describe("The ID of the project"),
|
|
@@ -59,6 +59,7 @@ export function registerGetKubernetesLiveStatusTool(server) {
|
|
|
59
59
|
registerToolDefinition({
|
|
60
60
|
toolName: "get_kubernetes_live_status",
|
|
61
61
|
config: { toolset: "kubernetes", readOnly: true },
|
|
62
|
-
registerFn: registerGetKubernetesLiveStatusTool
|
|
62
|
+
registerFn: registerGetKubernetesLiveStatusTool,
|
|
63
|
+
minimumOctopusVersion: "2025.3",
|
|
63
64
|
});
|
|
64
65
|
//# sourceMappingURL=getKubernetesLiveStatus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getKubernetesLiveStatus.js","sourceRoot":"","sources":["../../src/tools/getKubernetesLiveStatus.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"getKubernetesLiveStatus.js","sourceRoot":"","sources":["../../src/tools/getKubernetesLiveStatus.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@ import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
4
4
|
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
5
5
|
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
6
6
|
export function registerGetMissingTenantVariablesTool(server) {
|
|
7
|
-
server.tool("get_missing_tenant_variables", `Get missing tenant variables
|
|
8
|
-
|
|
7
|
+
server.tool("get_missing_tenant_variables", `Get missing tenant variables
|
|
8
|
+
|
|
9
9
|
This tool retrieves tenant variables that are missing values. Optionally filter by tenant, project, or environment.`, {
|
|
10
10
|
spaceName: z.string().describe("The space name"),
|
|
11
11
|
tenantId: z.string().optional().describe("Filter by specific tenant ID"),
|
|
@@ -42,6 +42,6 @@ export function registerGetMissingTenantVariablesTool(server) {
|
|
|
42
42
|
registerToolDefinition({
|
|
43
43
|
toolName: "get_missing_tenant_variables",
|
|
44
44
|
config: { toolset: "tenants", readOnly: true },
|
|
45
|
-
registerFn: registerGetMissingTenantVariablesTool
|
|
45
|
+
registerFn: registerGetMissingTenantVariablesTool,
|
|
46
46
|
});
|
|
47
47
|
//# sourceMappingURL=getMissingTenantVariables.js.map
|
|
@@ -40,6 +40,6 @@ export function registerGetReleaseByIdTool(server) {
|
|
|
40
40
|
registerToolDefinition({
|
|
41
41
|
toolName: "get_release_by_id",
|
|
42
42
|
config: { toolset: "releases", readOnly: true },
|
|
43
|
-
registerFn: registerGetReleaseByIdTool
|
|
43
|
+
registerFn: registerGetReleaseByIdTool,
|
|
44
44
|
});
|
|
45
45
|
//# sourceMappingURL=getReleaseById.js.map
|
|
@@ -39,6 +39,6 @@ export function registerGetTaskByIdTool(server) {
|
|
|
39
39
|
registerToolDefinition({
|
|
40
40
|
toolName: "get_task_by_id",
|
|
41
41
|
config: { toolset: "tasks", readOnly: true },
|
|
42
|
-
registerFn: registerGetTaskByIdTool
|
|
42
|
+
registerFn: registerGetTaskByIdTool,
|
|
43
43
|
});
|
|
44
44
|
//# sourceMappingURL=getTaskById.js.map
|
|
@@ -39,6 +39,6 @@ export function registerGetTaskDetailsTool(server) {
|
|
|
39
39
|
registerToolDefinition({
|
|
40
40
|
toolName: "get_task_details",
|
|
41
41
|
config: { toolset: "tasks", readOnly: true },
|
|
42
|
-
registerFn: registerGetTaskDetailsTool
|
|
42
|
+
registerFn: registerGetTaskDetailsTool,
|
|
43
43
|
});
|
|
44
44
|
//# sourceMappingURL=getTaskDetails.js.map
|
package/dist/tools/getTaskRaw.js
CHANGED
|
@@ -38,6 +38,6 @@ export function registerGetTaskRawTool(server) {
|
|
|
38
38
|
registerToolDefinition({
|
|
39
39
|
toolName: "get_task_raw",
|
|
40
40
|
config: { toolset: "tasks", readOnly: true },
|
|
41
|
-
registerFn: registerGetTaskRawTool
|
|
41
|
+
registerFn: registerGetTaskRawTool,
|
|
42
42
|
});
|
|
43
43
|
//# sourceMappingURL=getTaskRaw.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Client,
|
|
1
|
+
import { Client, TenantRepository } from "@octopusdeploy/api-client";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
4
|
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
@@ -40,6 +40,6 @@ export function registerGetTenantByIdTool(server) {
|
|
|
40
40
|
registerToolDefinition({
|
|
41
41
|
toolName: "get_tenant_by_id",
|
|
42
42
|
config: { toolset: "tenants", readOnly: true },
|
|
43
|
-
registerFn: registerGetTenantByIdTool
|
|
43
|
+
registerFn: registerGetTenantByIdTool,
|
|
44
44
|
});
|
|
45
45
|
//# sourceMappingURL=getTenantById.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTenantById.js","sourceRoot":"","sources":["../../src/tools/getTenantById.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"getTenantById.js","sourceRoot":"","sources":["../../src/tools/getTenantById.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,qCAAqC,EAAE,MAAM,qDAAqD,CAAC;AAC5G,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,gDAAgD,kBAAkB,EAAE,EACpE;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KAClE,EACD;QACE,KAAK,EAAE,8CAA8C;QACrD,YAAY,EAAE,IAAI;KACnB,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QAChC,MAAM,aAAa,GAAG,qCAAqC,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEjE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEpD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,EAAE,EAAE,MAAM,CAAC,EAAE;wBACb,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;wBAC/C,UAAU,EAAE,MAAM,CAAC,UAAU;wBAC7B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;wBAC7C,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,SAAS,EAAE,YAAY,CAAC,GAAG,aAAa,CAAC,WAAW,6CAA6C,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;wBACpJ,oBAAoB,EAAE,yGAAyG;qBAChI,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,sBAAsB,CAAC;IACrB,QAAQ,EAAE,kBAAkB;IAC5B,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC9C,UAAU,EAAE,yBAAyB;CACtC,CAAC,CAAC"}
|
|
@@ -4,11 +4,11 @@ import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
4
4
|
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
5
5
|
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
6
6
|
export function registerGetTenantVariablesTool(server) {
|
|
7
|
-
server.tool("get_tenant_variables", `Get tenant variables by type
|
|
8
|
-
|
|
9
|
-
This tool retrieves different types of tenant variables. Use variableType parameter to specify which type:
|
|
10
|
-
- "all": Get all tenant variables
|
|
11
|
-
- "common": Get common variables only
|
|
7
|
+
server.tool("get_tenant_variables", `Get tenant variables by type
|
|
8
|
+
|
|
9
|
+
This tool retrieves different types of tenant variables. Use variableType parameter to specify which type:
|
|
10
|
+
- "all": Get all tenant variables
|
|
11
|
+
- "common": Get common variables only
|
|
12
12
|
- "project": Get project-specific variables only`, {
|
|
13
13
|
spaceName: z.string().describe("The space name"),
|
|
14
14
|
tenantId: z.string().describe("The ID of the tenant to retrieve variables for"),
|
|
@@ -53,6 +53,6 @@ export function registerGetTenantVariablesTool(server) {
|
|
|
53
53
|
registerToolDefinition({
|
|
54
54
|
toolName: "get_tenant_variables",
|
|
55
55
|
config: { toolset: "tenants", readOnly: true },
|
|
56
|
-
registerFn: registerGetTenantVariablesTool
|
|
56
|
+
registerFn: registerGetTenantVariablesTool,
|
|
57
57
|
});
|
|
58
58
|
//# sourceMappingURL=getTenantVariables.js.map
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -20,5 +20,9 @@ import './getDeploymentTarget.js';
|
|
|
20
20
|
import './getDeploymentProcess.js';
|
|
21
21
|
import './getBranches.js';
|
|
22
22
|
import './getCurrentUser.js';
|
|
23
|
+
import './listCertificates.js';
|
|
24
|
+
import './getCertificate.js';
|
|
25
|
+
import './listAccounts.js';
|
|
26
|
+
import './getAccount.js';
|
|
23
27
|
export declare function registerTools(server: McpServer, config?: ToolsetConfig): void;
|
|
24
28
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,6BAA6B,CAAC;AACrC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,iBAAiB,CAAC;AACzB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,yBAAyB,CAAC;AACjC,OAAO,gCAAgC,CAAC;AACxC,OAAO,8BAA8B,CAAC;AACtC,OAAO,4BAA4B,CAAC;AACpC,OAAO,0BAA0B,CAAC;AAClC,OAAO,2BAA2B,CAAC;AACnC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,6BAA6B,CAAC;AACrC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,iBAAiB,CAAC;AACzB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,yBAAyB,CAAC;AACjC,OAAO,gCAAgC,CAAC;AACxC,OAAO,8BAA8B,CAAC;AACtC,OAAO,4BAA4B,CAAC;AACpC,OAAO,0BAA0B,CAAC;AAClC,OAAO,2BAA2B,CAAC;AACnC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,iBAAiB,CAAC;AAwBzB,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,GAAE,aAAkB,QAO1E"}
|
package/dist/tools/index.js
CHANGED
|
@@ -21,6 +21,10 @@ import './getDeploymentTarget.js';
|
|
|
21
21
|
import './getDeploymentProcess.js';
|
|
22
22
|
import './getBranches.js';
|
|
23
23
|
import './getCurrentUser.js';
|
|
24
|
+
import './listCertificates.js';
|
|
25
|
+
import './getCertificate.js';
|
|
26
|
+
import './listAccounts.js';
|
|
27
|
+
import './getAccount.js';
|
|
24
28
|
function isToolEnabled(toolRegistration, config) {
|
|
25
29
|
if (!toolRegistration) {
|
|
26
30
|
return false;
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAEL,aAAa,EACb,gBAAgB,EAEjB,MAAM,wBAAwB,CAAC;AAEhC,2DAA2D;AAC3D,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,6BAA6B,CAAC;AACrC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,iBAAiB,CAAC;AACzB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,yBAAyB,CAAC;AACjC,OAAO,gCAAgC,CAAC;AACxC,OAAO,8BAA8B,CAAC;AACtC,OAAO,4BAA4B,CAAC;AACpC,OAAO,0BAA0B,CAAC;AAClC,OAAO,2BAA2B,CAAC;AACnC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAEL,aAAa,EACb,gBAAgB,EAEjB,MAAM,wBAAwB,CAAC;AAEhC,2DAA2D;AAC3D,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,6BAA6B,CAAC;AACrC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,iBAAiB,CAAC;AACzB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,yBAAyB,CAAC;AACjC,OAAO,gCAAgC,CAAC;AACxC,OAAO,8BAA8B,CAAC;AACtC,OAAO,4BAA4B,CAAC;AACpC,OAAO,0BAA0B,CAAC;AAClC,OAAO,2BAA2B,CAAC;AACnC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,iBAAiB,CAAC;AAEzB,SAAS,aAAa,CAAC,gBAAkC,EAAE,MAAqB;IAC9E,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8BAA8B;IAC9B,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,KAAK,KAAK;QACtD,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,IAAI,gBAAgB,CAAC,CAAC;IAEjD,IAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7G,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uBAAuB;IACvB,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAiB,EAAE,SAAwB,EAAE;IACzE,2EAA2E;IAC3E,KAAK,MAAM,CAAC,EAAE,gBAAgB,CAAC,IAAI,aAAa,EAAE,CAAC;QACjD,IAAI,aAAa,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,CAAC;YAC5C,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listAccounts.d.ts","sourceRoot":"","sources":["../../src/tools/listAccounts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,QA4DzD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Client, resolveSpaceId } from "@octopusdeploy/api-client";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
|
+
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
5
|
+
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
6
|
+
import { mapAccountResource, AccountType } from "../types/accountTypes.js";
|
|
7
|
+
export function registerListAccountsTool(server) {
|
|
8
|
+
server.tool("list_accounts", `List accounts in a space
|
|
9
|
+
|
|
10
|
+
This tool lists all accounts in a given space. The space name is required. You can optionally filter by various parameters like name, account type, etc.`, {
|
|
11
|
+
spaceName: z.string(),
|
|
12
|
+
skip: z.number().optional(),
|
|
13
|
+
take: z.number().optional(),
|
|
14
|
+
ids: z.array(z.string()).optional(),
|
|
15
|
+
partialName: z.string().optional(),
|
|
16
|
+
accountType: z.nativeEnum(AccountType).optional(),
|
|
17
|
+
}, {
|
|
18
|
+
title: "List all accounts in an Octopus Deploy space",
|
|
19
|
+
readOnlyHint: true,
|
|
20
|
+
}, async ({ spaceName, skip, take, ids, partialName, accountType, }) => {
|
|
21
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
22
|
+
const client = await Client.create(configuration);
|
|
23
|
+
const spaceId = await resolveSpaceId(client, spaceName);
|
|
24
|
+
const response = await client.get("~/api/{spaceId}/accounts{?skip,take,ids,partialName,accountType}", {
|
|
25
|
+
spaceId,
|
|
26
|
+
skip,
|
|
27
|
+
take,
|
|
28
|
+
ids,
|
|
29
|
+
partialName,
|
|
30
|
+
accountType,
|
|
31
|
+
});
|
|
32
|
+
const accounts = response.Items.map((account) => mapAccountResource(account));
|
|
33
|
+
return {
|
|
34
|
+
content: [
|
|
35
|
+
{
|
|
36
|
+
type: "text",
|
|
37
|
+
text: JSON.stringify({
|
|
38
|
+
totalResults: response.TotalResults,
|
|
39
|
+
itemsPerPage: response.ItemsPerPage,
|
|
40
|
+
numberOfPages: response.NumberOfPages,
|
|
41
|
+
lastPageNumber: response.LastPageNumber,
|
|
42
|
+
items: accounts,
|
|
43
|
+
}),
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
registerToolDefinition({
|
|
50
|
+
toolName: "list_accounts",
|
|
51
|
+
config: { toolset: "accounts", readOnly: true },
|
|
52
|
+
registerFn: registerListAccountsTool,
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=listAccounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listAccounts.js","sourceRoot":"","sources":["../../src/tools/listAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAA2B,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qCAAqC,EAAE,MAAM,qDAAqD,CAAC;AAC5G,OAAO,EAEL,kBAAkB,EAClB,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAElC,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,MAAM,CAAC,IAAI,CACT,eAAe,EACf;;yJAEqJ,EACrJ;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;KAClD,EACD;QACE,KAAK,EAAE,8CAA8C;QACrD,YAAY,EAAE,IAAI;KACnB,EACD,KAAK,EAAE,EACL,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,WAAW,EACX,WAAW,GACZ,EAAE,EAAE;QACH,MAAM,aAAa,GAAG,qCAAqC,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAExD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAC/B,kEAAkE,EAClE;YACE,OAAO;YACP,IAAI;YACJ,IAAI;YACJ,GAAG;YACH,WAAW;YACX,WAAW;SACZ,CACF,CAAC;QAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAwB,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;QAE/F,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,YAAY,EAAE,QAAQ,CAAC,YAAY;wBACnC,YAAY,EAAE,QAAQ,CAAC,YAAY;wBACnC,aAAa,EAAE,QAAQ,CAAC,aAAa;wBACrC,cAAc,EAAE,QAAQ,CAAC,cAAc;wBACvC,KAAK,EAAE,QAAQ;qBAChB,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,sBAAsB,CAAC;IACrB,QAAQ,EAAE,eAAe;IACzB,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC/C,UAAU,EAAE,wBAAwB;CACrC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listCertificates.d.ts","sourceRoot":"","sources":["../../src/tools/listCertificates.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,QAwE7D"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Client, resolveSpaceId } from "@octopusdeploy/api-client";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
|
+
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
5
|
+
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
6
|
+
import { mapCertificateResource } from "../types/certificateTypes.js";
|
|
7
|
+
export function registerListCertificatesTool(server) {
|
|
8
|
+
server.tool("list_certificates", `List certificates in a space
|
|
9
|
+
|
|
10
|
+
This tool lists all certificates in a given space. The space name is required. You can optionally filter by various parameters like name, archived status, tenant, etc.`, {
|
|
11
|
+
spaceName: z.string(),
|
|
12
|
+
skip: z.number().optional(),
|
|
13
|
+
take: z.number().optional(),
|
|
14
|
+
search: z.string().optional(),
|
|
15
|
+
archived: z.boolean().optional(),
|
|
16
|
+
tenant: z.string().optional(),
|
|
17
|
+
firstResult: z.number().optional(),
|
|
18
|
+
orderBy: z.string().optional(),
|
|
19
|
+
ids: z.array(z.string()).optional(),
|
|
20
|
+
partialName: z.string().optional(),
|
|
21
|
+
}, {
|
|
22
|
+
title: "List all certificates in an Octopus Deploy space",
|
|
23
|
+
readOnlyHint: true,
|
|
24
|
+
}, async ({ spaceName, skip, take, search, archived, tenant, firstResult, orderBy, ids, partialName, }) => {
|
|
25
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
26
|
+
const client = await Client.create(configuration);
|
|
27
|
+
const spaceId = await resolveSpaceId(client, spaceName);
|
|
28
|
+
const response = await client.get("~/api/{spaceId}/certificates{?skip,take,search,archived,tenant,firstResult,orderBy,ids,partialName}", {
|
|
29
|
+
spaceId,
|
|
30
|
+
skip,
|
|
31
|
+
take,
|
|
32
|
+
search,
|
|
33
|
+
archived,
|
|
34
|
+
tenant,
|
|
35
|
+
firstResult,
|
|
36
|
+
orderBy,
|
|
37
|
+
ids,
|
|
38
|
+
partialName,
|
|
39
|
+
});
|
|
40
|
+
const certificates = response.Items.map((cert) => mapCertificateResource(cert));
|
|
41
|
+
return {
|
|
42
|
+
content: [
|
|
43
|
+
{
|
|
44
|
+
type: "text",
|
|
45
|
+
text: JSON.stringify({
|
|
46
|
+
totalResults: response.TotalResults,
|
|
47
|
+
itemsPerPage: response.ItemsPerPage,
|
|
48
|
+
numberOfPages: response.NumberOfPages,
|
|
49
|
+
lastPageNumber: response.LastPageNumber,
|
|
50
|
+
items: certificates,
|
|
51
|
+
}),
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
registerToolDefinition({
|
|
58
|
+
toolName: "list_certificates",
|
|
59
|
+
config: { toolset: "certificates", readOnly: true },
|
|
60
|
+
registerFn: registerListCertificatesTool,
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=listCertificates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listCertificates.js","sourceRoot":"","sources":["../../src/tools/listCertificates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAA2B,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qCAAqC,EAAE,MAAM,qDAAqD,CAAC;AAC5G,OAAO,EAA4B,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEhG,MAAM,UAAU,4BAA4B,CAAC,MAAiB;IAC5D,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB;;wKAEoK,EACpK;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACnC,EACD;QACE,KAAK,EAAE,kDAAkD;QACzD,YAAY,EAAE,IAAI;KACnB,EACD,KAAK,EAAE,EACL,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,MAAM,EACN,WAAW,EACX,OAAO,EACP,GAAG,EACH,WAAW,GACZ,EAAE,EAAE;QACH,MAAM,aAAa,GAAG,qCAAqC,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAExD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAC/B,qGAAqG,EACrG;YACE,OAAO;YACP,IAAI;YACJ,IAAI;YACJ,MAAM;YACN,QAAQ;YACR,MAAM;YACN,WAAW;YACX,OAAO;YACP,GAAG;YACH,WAAW;SACZ,CACF,CAAC;QAEF,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAyB,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;QAErG,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,YAAY,EAAE,QAAQ,CAAC,YAAY;wBACnC,YAAY,EAAE,QAAQ,CAAC,YAAY;wBACnC,aAAa,EAAE,QAAQ,CAAC,aAAa;wBACrC,cAAc,EAAE,QAAQ,CAAC,cAAc;wBACvC,KAAK,EAAE,YAAY;qBACpB,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,sBAAsB,CAAC;IACrB,QAAQ,EAAE,mBAAmB;IAC7B,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnD,UAAU,EAAE,4BAA4B;CACzC,CAAC,CAAC"}
|
|
@@ -5,8 +5,8 @@ import { registerToolDefinition } from "../types/toolConfig.js";
|
|
|
5
5
|
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
6
6
|
import {} from "../types/deploymentTargetTypes.js";
|
|
7
7
|
export function registerListDeploymentTargetsTool(server) {
|
|
8
|
-
server.tool("list_deployment_targets", `List deployment targets (machines) in a space
|
|
9
|
-
|
|
8
|
+
server.tool("list_deployment_targets", `List deployment targets (machines) in a space
|
|
9
|
+
|
|
10
10
|
This tool lists all deployment targets in a given space. The space name is required. You can optionally filter by various parameters like name, roles, health status, etc.`, {
|
|
11
11
|
spaceName: z.string(),
|
|
12
12
|
skip: z.number().optional(),
|
|
@@ -93,6 +93,6 @@ This tool lists all deployment targets in a given space. The space name is requi
|
|
|
93
93
|
registerToolDefinition({
|
|
94
94
|
toolName: "list_deployment_targets",
|
|
95
95
|
config: { toolset: "machines", readOnly: true },
|
|
96
|
-
registerFn: registerListDeploymentTargetsTool
|
|
96
|
+
registerFn: registerListDeploymentTargetsTool,
|
|
97
97
|
});
|
|
98
98
|
//# sourceMappingURL=listDeploymentTargets.js.map
|
|
@@ -4,8 +4,8 @@ import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
4
4
|
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
5
5
|
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
6
6
|
export function registerListDeploymentsTool(server) {
|
|
7
|
-
server.tool("list_deployments", `List deployments in a space
|
|
8
|
-
|
|
7
|
+
server.tool("list_deployments", `List deployments in a space
|
|
8
|
+
|
|
9
9
|
This tool lists deployments in a given space. The space name is required. When requesting latest deployment consider which deployment state the user is interested in (successful or all). Optional filters include: projects (array of project IDs), environments (array of environment IDs), tenants (array of tenant IDs), channels (array of channel IDs), taskState (one of: Canceled, Cancelling, Executing, Failed, Queued, Success, TimedOut), and take (number of results to return).`, {
|
|
10
10
|
spaceName: z.string(),
|
|
11
11
|
projects: z.array(z.string()).optional(),
|
|
@@ -65,6 +65,6 @@ export function registerListDeploymentsTool(server) {
|
|
|
65
65
|
registerToolDefinition({
|
|
66
66
|
toolName: "list_deployments",
|
|
67
67
|
config: { toolset: "deployments", readOnly: true },
|
|
68
|
-
registerFn: registerListDeploymentsTool
|
|
68
|
+
registerFn: registerListDeploymentsTool,
|
|
69
69
|
});
|
|
70
70
|
//# sourceMappingURL=listDeployments.js.map
|
|
@@ -4,8 +4,8 @@ import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
4
4
|
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
5
5
|
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
6
6
|
export function registerListEnvironmentsTool(server) {
|
|
7
|
-
server.tool("list_environments", `List environments in a space
|
|
8
|
-
|
|
7
|
+
server.tool("list_environments", `List environments in a space
|
|
8
|
+
|
|
9
9
|
This tool lists all environments in a given space. The space name is required. Use this tool as early as possible to understand which environments are configured. Optionally filter by partial name match using partialName parameter.`, { spaceName: z.string(), partialName: z.string().optional() }, {
|
|
10
10
|
title: "List all environments in an Octopus Deploy space",
|
|
11
11
|
readOnlyHint: true,
|
|
@@ -37,6 +37,6 @@ export function registerListEnvironmentsTool(server) {
|
|
|
37
37
|
registerToolDefinition({
|
|
38
38
|
toolName: "list_environments",
|
|
39
39
|
config: { toolset: "core", readOnly: true },
|
|
40
|
-
registerFn: registerListEnvironmentsTool
|
|
40
|
+
registerFn: registerListEnvironmentsTool,
|
|
41
41
|
});
|
|
42
42
|
//# sourceMappingURL=listEnvironments.js.map
|
|
@@ -39,6 +39,6 @@ export function registerListProjectsTool(server) {
|
|
|
39
39
|
registerToolDefinition({
|
|
40
40
|
toolName: "list_projects",
|
|
41
41
|
config: { toolset: "projects", readOnly: true },
|
|
42
|
-
registerFn: registerListProjectsTool
|
|
42
|
+
registerFn: registerListProjectsTool,
|
|
43
43
|
});
|
|
44
44
|
//# sourceMappingURL=listProjects.js.map
|
|
@@ -4,8 +4,8 @@ import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
4
4
|
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
5
5
|
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
6
6
|
export function registerListReleasesTool(server) {
|
|
7
|
-
server.tool("list_releases", `List releases in a space
|
|
8
|
-
|
|
7
|
+
server.tool("list_releases", `List releases in a space
|
|
8
|
+
|
|
9
9
|
This tool lists all releases in a given space. The space name is required. Optionally provide skip and take parameters for pagination.`, {
|
|
10
10
|
spaceName: z.string().describe("The space name"),
|
|
11
11
|
skip: z.number().optional().describe("Number of items to skip for pagination"),
|
|
@@ -49,6 +49,6 @@ export function registerListReleasesTool(server) {
|
|
|
49
49
|
registerToolDefinition({
|
|
50
50
|
toolName: "list_releases",
|
|
51
51
|
config: { toolset: "releases", readOnly: true },
|
|
52
|
-
registerFn: registerListReleasesTool
|
|
52
|
+
registerFn: registerListReleasesTool,
|
|
53
53
|
});
|
|
54
54
|
//# sourceMappingURL=listReleases.js.map
|
|
@@ -4,8 +4,8 @@ import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
4
4
|
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
5
5
|
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
6
6
|
export function registerListReleasesForProjectTool(server) {
|
|
7
|
-
server.tool("list_releases_for_project", `List releases for a specific project
|
|
8
|
-
|
|
7
|
+
server.tool("list_releases_for_project", `List releases for a specific project
|
|
8
|
+
|
|
9
9
|
This tool lists all releases for a given project in a space. The space name and project ID are required. Optionally provide skip, take, and searchByVersion parameters.`, {
|
|
10
10
|
spaceName: z.string(),
|
|
11
11
|
projectId: z.string(),
|
|
@@ -55,6 +55,6 @@ export function registerListReleasesForProjectTool(server) {
|
|
|
55
55
|
registerToolDefinition({
|
|
56
56
|
toolName: "list_releases_for_project",
|
|
57
57
|
config: { toolset: "releases", readOnly: true },
|
|
58
|
-
registerFn: registerListReleasesForProjectTool
|
|
58
|
+
registerFn: registerListReleasesForProjectTool,
|
|
59
59
|
});
|
|
60
60
|
//# sourceMappingURL=listReleasesForProject.js.map
|
package/dist/tools/listSpaces.js
CHANGED
|
@@ -33,6 +33,6 @@ export function registerListSpacesTool(server) {
|
|
|
33
33
|
registerToolDefinition({
|
|
34
34
|
toolName: "list_spaces",
|
|
35
35
|
config: { toolset: "core", readOnly: true },
|
|
36
|
-
registerFn: registerListSpacesTool
|
|
36
|
+
registerFn: registerListSpacesTool,
|
|
37
37
|
});
|
|
38
38
|
//# sourceMappingURL=listSpaces.js.map
|
|
@@ -5,8 +5,8 @@ import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfi
|
|
|
5
5
|
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
6
6
|
import { getPublicUrl } from "../helpers/getPublicUrl.js";
|
|
7
7
|
export function registerListTenantsTool(server) {
|
|
8
|
-
server.tool("list_tenants", `List tenants in a space
|
|
9
|
-
|
|
8
|
+
server.tool("list_tenants", `List tenants in a space
|
|
9
|
+
|
|
10
10
|
This tool lists all tenants in a given space. The space name is required. Optionally provide skip and take parameters for pagination.`, {
|
|
11
11
|
spaceName: z.string().describe("The space name"),
|
|
12
12
|
skip: z.number().optional().describe("Number of items to skip for pagination"),
|
|
@@ -59,6 +59,6 @@ export function registerListTenantsTool(server) {
|
|
|
59
59
|
registerToolDefinition({
|
|
60
60
|
toolName: "list_tenants",
|
|
61
61
|
config: { toolset: "tenants", readOnly: true },
|
|
62
|
-
registerFn: registerListTenantsTool
|
|
62
|
+
registerFn: registerListTenantsTool,
|
|
63
63
|
});
|
|
64
64
|
//# sourceMappingURL=listTenants.js.map
|