@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.
Files changed (84) hide show
  1. package/LICENSE +373 -373
  2. package/README.md +204 -210
  3. package/dist/helpers/getClientConfigurationFromEnvironment.js +2 -2
  4. package/dist/helpers/getClientConfigurationFromEnvironment.js.map +1 -1
  5. package/dist/index.js +13 -11
  6. package/dist/index.js.map +1 -1
  7. package/dist/tools/getAccount.d.ts +3 -0
  8. package/dist/tools/getAccount.d.ts.map +1 -0
  9. package/dist/tools/getAccount.js +40 -0
  10. package/dist/tools/getAccount.js.map +1 -0
  11. package/dist/tools/getBranches.js +4 -3
  12. package/dist/tools/getBranches.js.map +1 -1
  13. package/dist/tools/getCertificate.d.ts +3 -0
  14. package/dist/tools/getCertificate.d.ts.map +1 -0
  15. package/dist/tools/getCertificate.js +40 -0
  16. package/dist/tools/getCertificate.js.map +1 -0
  17. package/dist/tools/getCurrentUser.js +3 -3
  18. package/dist/tools/getDeploymentProcess.js +3 -3
  19. package/dist/tools/getDeploymentTarget.js +3 -3
  20. package/dist/tools/getKubernetesLiveStatus.js +4 -3
  21. package/dist/tools/getKubernetesLiveStatus.js.map +1 -1
  22. package/dist/tools/getMissingTenantVariables.js +3 -3
  23. package/dist/tools/getReleaseById.js +1 -1
  24. package/dist/tools/getTaskById.js +1 -1
  25. package/dist/tools/getTaskDetails.js +1 -1
  26. package/dist/tools/getTaskRaw.js +1 -1
  27. package/dist/tools/getTenantById.js +2 -2
  28. package/dist/tools/getTenantById.js.map +1 -1
  29. package/dist/tools/getTenantVariables.js +6 -6
  30. package/dist/tools/index.d.ts +4 -0
  31. package/dist/tools/index.d.ts.map +1 -1
  32. package/dist/tools/index.js +4 -0
  33. package/dist/tools/index.js.map +1 -1
  34. package/dist/tools/listAccounts.d.ts +3 -0
  35. package/dist/tools/listAccounts.d.ts.map +1 -0
  36. package/dist/tools/listAccounts.js +54 -0
  37. package/dist/tools/listAccounts.js.map +1 -0
  38. package/dist/tools/listCertificates.d.ts +3 -0
  39. package/dist/tools/listCertificates.d.ts.map +1 -0
  40. package/dist/tools/listCertificates.js +62 -0
  41. package/dist/tools/listCertificates.js.map +1 -0
  42. package/dist/tools/listDeploymentTargets.js +3 -3
  43. package/dist/tools/listDeployments.js +3 -3
  44. package/dist/tools/listEnvironments.js +3 -3
  45. package/dist/tools/listProjects.js +1 -1
  46. package/dist/tools/listReleases.js +3 -3
  47. package/dist/tools/listReleasesForProject.js +3 -3
  48. package/dist/tools/listSpaces.js +1 -1
  49. package/dist/tools/listTenants.js +3 -3
  50. package/dist/types/accountTypes.d.ts +218 -0
  51. package/dist/types/accountTypes.d.ts.map +1 -0
  52. package/dist/types/accountTypes.js +127 -0
  53. package/dist/types/accountTypes.js.map +1 -0
  54. package/dist/types/certificateTypes.d.ts +74 -0
  55. package/dist/types/certificateTypes.d.ts.map +1 -0
  56. package/dist/types/certificateTypes.js +46 -0
  57. package/dist/types/certificateTypes.js.map +1 -0
  58. package/dist/types/deploymentTargetTypes.d.ts +1 -6
  59. package/dist/types/deploymentTargetTypes.d.ts.map +1 -1
  60. package/dist/types/deploymentTargetTypes.js +1 -5
  61. package/dist/types/deploymentTargetTypes.js.map +1 -1
  62. package/dist/types/toolConfig.d.ts +15 -1
  63. package/dist/types/toolConfig.d.ts.map +1 -1
  64. package/dist/types/toolConfig.js +57 -1
  65. package/dist/types/toolConfig.js.map +1 -1
  66. package/dist/utils/logger.js +1 -1
  67. package/dist/utils/logger.js.map +1 -1
  68. package/package.json +58 -50
  69. package/dist/resources/index.d.ts +0 -3
  70. package/dist/resources/index.d.ts.map +0 -1
  71. package/dist/resources/index.js +0 -4
  72. package/dist/resources/index.js.map +0 -1
  73. package/dist/resources/spacesResource.d.ts +0 -3
  74. package/dist/resources/spacesResource.d.ts.map +0 -1
  75. package/dist/resources/spacesResource.js +0 -54
  76. package/dist/resources/spacesResource.js.map +0 -1
  77. package/dist/tools/getLatestDeployment.d.ts +0 -3
  78. package/dist/tools/getLatestDeployment.d.ts.map +0 -1
  79. package/dist/tools/getLatestDeployment.js +0 -85
  80. package/dist/tools/getLatestDeployment.js.map +0 -1
  81. package/dist/types/resourceCollection.d.ts +0 -9
  82. package/dist/types/resourceCollection.d.ts.map +0 -1
  83. package/dist/types/resourceCollection.js +0 -2
  84. 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":"AAAA,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAA+E,MAAM,2BAA2B,CAAC;AACzJ,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;AAEhE,MAAM,UAAU,mCAAmC,CAAC,MAAiB;IACnE,MAAM,CAAC,IAAI,CACT,4BAA4B,EAC5B;;mKAE+J,EAC/J;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACvD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC/D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAC/F,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;KAChF,EACD;QACE,KAAK,EAAE,gDAAgD;QACvD,YAAY,EAAE,IAAI;KACnB,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,GAAG,KAAK,EAAE,EAAE,EAAE;QAC/E,MAAM,aAAa,GAAG,qCAAqC,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,uBAAuB,GAAG,IAAI,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAE/E,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC,aAAa,CAC5D,SAAS,EACT,aAAa,EACb,QAAQ,EACR,WAAW,CACZ,CAAC;QAEF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,SAAS;wBACT,aAAa;wBACb,QAAQ;wBACR,WAAW,EAAE,WAAW;wBACxB,UAAU,EAAE;4BACV,eAAe,EAAE,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,OAA4C,EAAE,EAAE,CAAC,CAAC;gCAClG,SAAS,EAAE,OAAO,CAAC,SAAS;gCAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;gCACtB,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,QAAsC,EAAE,EAAE,CAAC,CAAC;oCAC7E,IAAI,EAAE,QAAQ,CAAC,IAAI;oCACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;oCAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI;oCACnB,YAAY,EAAE,QAAQ,CAAC,YAAY;oCACnC,UAAU,EAAE,QAAQ,CAAC,UAAU;oCAC/B,SAAS,EAAE,QAAQ,CAAC,SAAS;oCAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oCAC3B,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;oCAC7C,UAAU,EAAE,QAAQ,CAAC,UAAU;iCAChC,CAAC,CAAC;6BACJ,CAAC,CAAC;4BACH,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;gCAC5B,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM;gCACjC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW;6BAC5C,CAAC,CAAC,CAAC,SAAS;yBACd;qBACF,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,sBAAsB,CAAC;IACrB,QAAQ,EAAE,4BAA4B;IACtC,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IACjD,UAAU,EAAE,mCAAmC;CAChD,CAAC,CAAC"}
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
@@ -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, resolveSpaceId, TenantRepository } from "@octopusdeploy/api-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,cAAc,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACrF,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"}
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
@@ -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;AAwB7B,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,GAAE,aAAkB,QAO1E"}
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"}
@@ -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;
@@ -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;AAE7B,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"}
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,3 @@
1
+ import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerListAccountsTool(server: McpServer): void;
3
+ //# sourceMappingURL=listAccounts.d.ts.map
@@ -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,3 @@
1
+ import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerListCertificatesTool(server: McpServer): void;
3
+ //# sourceMappingURL=listCertificates.d.ts.map
@@ -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
@@ -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