@octopusdeploy/mcp-server 1.0.1 → 2.1.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 +237 -46
- package/dist/helpers/activeToolsetConfig.d.ts +4 -0
- package/dist/helpers/activeToolsetConfig.d.ts.map +1 -0
- package/dist/helpers/activeToolsetConfig.js +18 -0
- package/dist/helpers/activeToolsetConfig.js.map +1 -0
- package/dist/helpers/errorHandling.d.ts +38 -0
- package/dist/helpers/errorHandling.d.ts.map +1 -0
- package/dist/helpers/errorHandling.js +75 -0
- package/dist/helpers/errorHandling.js.map +1 -0
- package/dist/helpers/getClientConfigurationFromEnvironment.d.ts +2 -0
- package/dist/helpers/getClientConfigurationFromEnvironment.d.ts.map +1 -1
- package/dist/helpers/getClientConfigurationFromEnvironment.js +21 -5
- package/dist/helpers/getClientConfigurationFromEnvironment.js.map +1 -1
- package/dist/helpers/grepLines.d.ts +38 -0
- package/dist/helpers/grepLines.d.ts.map +1 -0
- package/dist/helpers/grepLines.js +65 -0
- package/dist/helpers/grepLines.js.map +1 -0
- package/dist/helpers/methodTier.d.ts +15 -0
- package/dist/helpers/methodTier.d.ts.map +1 -0
- package/dist/helpers/methodTier.js +25 -0
- package/dist/helpers/methodTier.js.map +1 -0
- package/dist/helpers/pathAllowlist.d.ts +27 -0
- package/dist/helpers/pathAllowlist.d.ts.map +1 -0
- package/dist/helpers/pathAllowlist.js +177 -0
- package/dist/helpers/pathAllowlist.js.map +1 -0
- package/dist/helpers/pathGlob.d.ts +15 -0
- package/dist/helpers/pathGlob.d.ts.map +1 -0
- package/dist/helpers/pathGlob.js +47 -0
- package/dist/helpers/pathGlob.js.map +1 -0
- package/dist/helpers/requireConfirmation.d.ts +119 -0
- package/dist/helpers/requireConfirmation.d.ts.map +1 -0
- package/dist/helpers/requireConfirmation.js +148 -0
- package/dist/helpers/requireConfirmation.js.map +1 -0
- package/dist/helpers/sensitivePathDenylist.d.ts +32 -0
- package/dist/helpers/sensitivePathDenylist.d.ts.map +1 -0
- package/dist/helpers/sensitivePathDenylist.js +49 -0
- package/dist/helpers/sensitivePathDenylist.js.map +1 -0
- package/dist/helpers/spaceResolver.d.ts +4 -0
- package/dist/helpers/spaceResolver.d.ts.map +1 -0
- package/dist/helpers/spaceResolver.js +18 -0
- package/dist/helpers/spaceResolver.js.map +1 -0
- package/dist/helpers/stripLinks.d.ts +15 -0
- package/dist/helpers/stripLinks.d.ts.map +1 -0
- package/dist/helpers/stripLinks.js +19 -0
- package/dist/helpers/stripLinks.js.map +1 -0
- package/dist/helpers/urlParser.d.ts +16 -0
- package/dist/helpers/urlParser.d.ts.map +1 -0
- package/dist/helpers/urlParser.js +83 -0
- package/dist/helpers/urlParser.js.map +1 -0
- package/dist/helpers/userCache.d.ts +14 -0
- package/dist/helpers/userCache.d.ts.map +1 -0
- package/dist/helpers/userCache.js +16 -0
- package/dist/helpers/userCache.js.map +1 -0
- package/dist/helpers/validateExecutePath.d.ts +29 -0
- package/dist/helpers/validateExecutePath.d.ts.map +1 -0
- package/dist/helpers/validateExecutePath.js +62 -0
- package/dist/helpers/validateExecutePath.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +64 -15
- package/dist/index.js.map +1 -1
- package/dist/resources/catalog/capabilities.d.ts +36 -0
- package/dist/resources/catalog/capabilities.d.ts.map +1 -0
- package/dist/resources/catalog/capabilities.js +90 -0
- package/dist/resources/catalog/capabilities.js.map +1 -0
- package/dist/resources/catalog/llmsTxt.d.ts +8 -0
- package/dist/resources/catalog/llmsTxt.d.ts.map +1 -0
- package/dist/resources/catalog/llmsTxt.js +44 -0
- package/dist/resources/catalog/llmsTxt.js.map +1 -0
- package/dist/resources/dispatch.d.ts +30 -0
- package/dist/resources/dispatch.d.ts.map +1 -0
- package/dist/resources/dispatch.js +81 -0
- package/dist/resources/dispatch.js.map +1 -0
- package/dist/resources/featureToggle.d.ts +2 -0
- package/dist/resources/featureToggle.d.ts.map +1 -0
- package/dist/resources/featureToggle.js +34 -0
- package/dist/resources/featureToggle.js.map +1 -0
- package/dist/resources/index.d.ts +12 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +44 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/interruption.d.ts +2 -0
- package/dist/resources/interruption.d.ts.map +1 -0
- package/dist/resources/interruption.js +34 -0
- package/dist/resources/interruption.js.map +1 -0
- package/dist/resources/release.d.ts +2 -0
- package/dist/resources/release.d.ts.map +1 -0
- package/dist/resources/release.js +33 -0
- package/dist/resources/release.js.map +1 -0
- package/dist/resources/rolloutGroup.d.ts +2 -0
- package/dist/resources/rolloutGroup.d.ts.map +1 -0
- package/dist/resources/rolloutGroup.js +35 -0
- package/dist/resources/rolloutGroup.js.map +1 -0
- package/dist/resources/runbook.d.ts +2 -0
- package/dist/resources/runbook.d.ts.map +1 -0
- package/dist/resources/runbook.js +34 -0
- package/dist/resources/runbook.js.map +1 -0
- package/dist/resources/task.d.ts +2 -0
- package/dist/resources/task.d.ts.map +1 -0
- package/dist/resources/task.js +68 -0
- package/dist/resources/task.js.map +1 -0
- package/dist/tools/createRelease.d.ts +3 -0
- package/dist/tools/createRelease.d.ts.map +1 -0
- package/dist/tools/createRelease.js +151 -0
- package/dist/tools/createRelease.js.map +1 -0
- package/dist/tools/deployRelease.d.ts +3 -0
- package/dist/tools/deployRelease.d.ts.map +1 -0
- package/dist/tools/deployRelease.js +227 -0
- package/dist/tools/deployRelease.js.map +1 -0
- package/dist/tools/execute.d.ts +3 -0
- package/dist/tools/execute.d.ts.map +1 -0
- package/dist/tools/execute.js +261 -0
- package/dist/tools/execute.js.map +1 -0
- package/dist/tools/findAccounts.d.ts +3 -0
- package/dist/tools/findAccounts.d.ts.map +1 -0
- package/dist/tools/findAccounts.js +90 -0
- package/dist/tools/findAccounts.js.map +1 -0
- package/dist/tools/findCertificates.d.ts +3 -0
- package/dist/tools/findCertificates.d.ts.map +1 -0
- package/dist/tools/findCertificates.js +98 -0
- package/dist/tools/findCertificates.js.map +1 -0
- package/dist/tools/findDeploymentTargets.d.ts +3 -0
- package/dist/tools/findDeploymentTargets.d.ts.map +1 -0
- package/dist/tools/findDeploymentTargets.js +161 -0
- package/dist/tools/findDeploymentTargets.js.map +1 -0
- package/dist/tools/findFeatureToggles.d.ts +37 -0
- package/dist/tools/findFeatureToggles.d.ts.map +1 -0
- package/dist/tools/findFeatureToggles.js +139 -0
- package/dist/tools/findFeatureToggles.js.map +1 -0
- package/dist/tools/findInterruptions.d.ts +79 -0
- package/dist/tools/findInterruptions.d.ts.map +1 -0
- package/dist/tools/findInterruptions.js +273 -0
- package/dist/tools/findInterruptions.js.map +1 -0
- package/dist/tools/findReleases.d.ts +3 -0
- package/dist/tools/findReleases.d.ts.map +1 -0
- package/dist/tools/findReleases.js +138 -0
- package/dist/tools/findReleases.js.map +1 -0
- package/dist/tools/findRunbooks.d.ts +3 -0
- package/dist/tools/findRunbooks.d.ts.map +1 -0
- package/dist/tools/findRunbooks.js +139 -0
- package/dist/tools/findRunbooks.js.map +1 -0
- package/dist/tools/findTenants.d.ts +19 -0
- package/dist/tools/findTenants.d.ts.map +1 -0
- package/dist/tools/findTenants.js +133 -0
- package/dist/tools/findTenants.js.map +1 -0
- package/dist/tools/getBranches.d.ts.map +1 -1
- package/dist/tools/getBranches.js +51 -33
- package/dist/tools/getBranches.js.map +1 -1
- package/dist/tools/getCurrentUser.d.ts.map +1 -1
- package/dist/tools/getCurrentUser.js +34 -25
- package/dist/tools/getCurrentUser.js.map +1 -1
- package/dist/tools/getDeploymentFromUrl.d.ts +57 -0
- package/dist/tools/getDeploymentFromUrl.d.ts.map +1 -0
- package/dist/tools/getDeploymentFromUrl.js +162 -0
- package/dist/tools/getDeploymentFromUrl.js.map +1 -0
- package/dist/tools/getDeploymentProcess.d.ts.map +1 -1
- package/dist/tools/getDeploymentProcess.js +57 -19
- package/dist/tools/getDeploymentProcess.js.map +1 -1
- package/dist/tools/getKubernetesLiveStatus.d.ts.map +1 -1
- package/dist/tools/getKubernetesLiveStatus.js +70 -48
- package/dist/tools/getKubernetesLiveStatus.js.map +1 -1
- package/dist/tools/getMissingTenantVariables.d.ts.map +1 -1
- package/dist/tools/getMissingTenantVariables.js +58 -26
- package/dist/tools/getMissingTenantVariables.js.map +1 -1
- package/dist/tools/getTaskFromUrl.d.ts +18 -0
- package/dist/tools/getTaskFromUrl.d.ts.map +1 -0
- package/dist/tools/getTaskFromUrl.js +90 -0
- package/dist/tools/getTaskFromUrl.js.map +1 -0
- package/dist/tools/getTenantVariables.d.ts.map +1 -1
- package/dist/tools/getTenantVariables.js +58 -38
- package/dist/tools/getTenantVariables.js.map +1 -1
- package/dist/tools/getVariables.d.ts.map +1 -1
- package/dist/tools/getVariables.js +12 -9
- package/dist/tools/getVariables.js.map +1 -1
- package/dist/tools/grepLlmsTxt.d.ts +13 -0
- package/dist/tools/grepLlmsTxt.d.ts.map +1 -0
- package/dist/tools/grepLlmsTxt.js +105 -0
- package/dist/tools/grepLlmsTxt.js.map +1 -0
- package/dist/tools/grepTaskLog.d.ts +30 -0
- package/dist/tools/grepTaskLog.d.ts.map +1 -0
- package/dist/tools/grepTaskLog.js +116 -0
- package/dist/tools/grepTaskLog.js.map +1 -0
- package/dist/tools/index.d.ts +22 -18
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +33 -21
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/listDeployments.d.ts.map +1 -1
- package/dist/tools/listDeployments.js +77 -37
- package/dist/tools/listDeployments.js.map +1 -1
- package/dist/tools/listEnvironments.d.ts.map +1 -1
- package/dist/tools/listEnvironments.js +63 -37
- package/dist/tools/listEnvironments.js.map +1 -1
- package/dist/tools/listProjects.d.ts.map +1 -1
- package/dist/tools/listProjects.js +64 -38
- package/dist/tools/listProjects.js.map +1 -1
- package/dist/tools/listSpaces.d.ts.map +1 -1
- package/dist/tools/listSpaces.js +56 -30
- package/dist/tools/listSpaces.js.map +1 -1
- package/dist/tools/readResource.d.ts +3 -0
- package/dist/tools/readResource.d.ts.map +1 -0
- package/dist/tools/readResource.js +50 -0
- package/dist/tools/readResource.js.map +1 -0
- package/dist/tools/runRunbook.d.ts +3 -0
- package/dist/tools/runRunbook.d.ts.map +1 -0
- package/dist/tools/runRunbook.js +174 -0
- package/dist/tools/runRunbook.js.map +1 -0
- package/dist/tools/updateFeatureToggle.d.ts +94 -0
- package/dist/tools/updateFeatureToggle.d.ts.map +1 -0
- package/dist/tools/updateFeatureToggle.js +308 -0
- package/dist/tools/updateFeatureToggle.js.map +1 -0
- package/dist/types/featureToggleTypes.d.ts +47 -0
- package/dist/types/featureToggleTypes.d.ts.map +1 -0
- package/dist/types/featureToggleTypes.js +10 -0
- package/dist/types/featureToggleTypes.js.map +1 -0
- package/dist/types/resourceConfig.d.ts +17 -0
- package/dist/types/resourceConfig.d.ts.map +1 -0
- package/dist/types/resourceConfig.js +6 -0
- package/dist/types/resourceConfig.js.map +1 -0
- package/dist/types/toolAnnotations.d.ts +8 -0
- package/dist/types/toolAnnotations.d.ts.map +1 -0
- package/dist/types/toolAnnotations.js +28 -0
- package/dist/types/toolAnnotations.js.map +1 -0
- package/dist/types/toolConfig.d.ts +7 -1
- package/dist/types/toolConfig.d.ts.map +1 -1
- package/dist/types/toolConfig.js +4 -1
- package/dist/types/toolConfig.js.map +1 -1
- package/dist/utils/parseConfig.d.ts +1 -1
- package/dist/utils/parseConfig.d.ts.map +1 -1
- package/dist/utils/parseConfig.js +3 -2
- package/dist/utils/parseConfig.js.map +1 -1
- package/dist/utils/version.d.ts +2 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +3 -0
- package/dist/utils/version.js.map +1 -0
- package/package.json +9 -3
- package/dist/tools/getAccount.d.ts +0 -3
- package/dist/tools/getAccount.d.ts.map +0 -1
- package/dist/tools/getAccount.js +0 -40
- package/dist/tools/getAccount.js.map +0 -1
- package/dist/tools/getCertificate.d.ts +0 -3
- package/dist/tools/getCertificate.d.ts.map +0 -1
- package/dist/tools/getCertificate.js +0 -40
- package/dist/tools/getCertificate.js.map +0 -1
- package/dist/tools/getDeploymentTarget.d.ts +0 -3
- package/dist/tools/getDeploymentTarget.d.ts.map +0 -1
- package/dist/tools/getDeploymentTarget.js +0 -66
- package/dist/tools/getDeploymentTarget.js.map +0 -1
- package/dist/tools/getReleaseById.d.ts +0 -3
- package/dist/tools/getReleaseById.d.ts.map +0 -1
- package/dist/tools/getReleaseById.js +0 -45
- package/dist/tools/getReleaseById.js.map +0 -1
- package/dist/tools/getTaskById.d.ts +0 -9
- package/dist/tools/getTaskById.d.ts.map +0 -1
- package/dist/tools/getTaskById.js +0 -44
- package/dist/tools/getTaskById.js.map +0 -1
- package/dist/tools/getTaskDetails.d.ts +0 -9
- package/dist/tools/getTaskDetails.d.ts.map +0 -1
- package/dist/tools/getTaskDetails.js +0 -44
- package/dist/tools/getTaskDetails.js.map +0 -1
- package/dist/tools/getTaskRaw.d.ts +0 -9
- package/dist/tools/getTaskRaw.d.ts.map +0 -1
- package/dist/tools/getTaskRaw.js +0 -43
- package/dist/tools/getTaskRaw.js.map +0 -1
- package/dist/tools/getTenantById.d.ts +0 -3
- package/dist/tools/getTenantById.d.ts.map +0 -1
- package/dist/tools/getTenantById.js +0 -50
- package/dist/tools/getTenantById.js.map +0 -1
- package/dist/tools/listAccounts.d.ts +0 -3
- package/dist/tools/listAccounts.d.ts.map +0 -1
- package/dist/tools/listAccounts.js +0 -54
- package/dist/tools/listAccounts.js.map +0 -1
- package/dist/tools/listCertificates.d.ts +0 -3
- package/dist/tools/listCertificates.d.ts.map +0 -1
- package/dist/tools/listCertificates.js +0 -62
- package/dist/tools/listCertificates.js.map +0 -1
- package/dist/tools/listDeploymentTargets.d.ts +0 -3
- package/dist/tools/listDeploymentTargets.d.ts.map +0 -1
- package/dist/tools/listDeploymentTargets.js +0 -98
- package/dist/tools/listDeploymentTargets.js.map +0 -1
- package/dist/tools/listReleases.d.ts +0 -3
- package/dist/tools/listReleases.d.ts.map +0 -1
- package/dist/tools/listReleases.js +0 -54
- package/dist/tools/listReleases.js.map +0 -1
- package/dist/tools/listReleasesForProject.d.ts +0 -3
- package/dist/tools/listReleasesForProject.d.ts.map +0 -1
- package/dist/tools/listReleasesForProject.js +0 -60
- package/dist/tools/listReleasesForProject.js.map +0 -1
- package/dist/tools/listTenants.d.ts +0 -3
- package/dist/tools/listTenants.d.ts.map +0 -1
- package/dist/tools/listTenants.js +0 -69
- package/dist/tools/listTenants.js.map +0 -1
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { Client, resolveSpaceId, } from "@octopusdeploy/api-client";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
|
+
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
5
|
+
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
6
|
+
import { READ_ONLY_TOOL_ANNOTATIONS } from "../types/toolAnnotations.js";
|
|
7
|
+
import { getPublicUrl } from "../helpers/getPublicUrl.js";
|
|
8
|
+
import { tenantsDescription } from "../types/tenantsTypes.js";
|
|
9
|
+
import { validateEntityId, handleOctopusApiError, ENTITY_PREFIXES, } from "../helpers/errorHandling.js";
|
|
10
|
+
export async function findTenantsHandler(params) {
|
|
11
|
+
const { spaceName, tenantId, skip, take, projectId, tags, ids, partialName } = params;
|
|
12
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
13
|
+
const client = await Client.create(configuration);
|
|
14
|
+
const spaceId = await resolveSpaceId(client, spaceName);
|
|
15
|
+
// If tenantId is provided, get a single tenant
|
|
16
|
+
if (tenantId) {
|
|
17
|
+
validateEntityId(tenantId, "tenant", ENTITY_PREFIXES.tenant);
|
|
18
|
+
try {
|
|
19
|
+
const tenant = await client.get("~/api/{spaceId}/tenant/{tenantId}", { spaceId, tenantId });
|
|
20
|
+
return {
|
|
21
|
+
content: [
|
|
22
|
+
{
|
|
23
|
+
type: "text",
|
|
24
|
+
text: JSON.stringify({
|
|
25
|
+
id: tenant.Id,
|
|
26
|
+
name: tenant.Name,
|
|
27
|
+
slug: tenant.Slug,
|
|
28
|
+
description: tenant.Description,
|
|
29
|
+
isDisabled: tenant.IsDisabled,
|
|
30
|
+
projectEnvironments: tenant.ProjectEnvironments,
|
|
31
|
+
tenantTags: tenant.TenantTags,
|
|
32
|
+
clonedFromTenantId: tenant.ClonedFromTenantId,
|
|
33
|
+
spaceId: tenant.SpaceId,
|
|
34
|
+
publicUrl: getPublicUrl(`${configuration.instanceURL}/app#/{spaceId}/tenants/{tenantId}/overview`, {
|
|
35
|
+
spaceId: tenant.SpaceId,
|
|
36
|
+
tenantId: tenant.Id,
|
|
37
|
+
}),
|
|
38
|
+
publicUrlInstruction: `You can view more details about this tenant in the Octopus Deploy web portal at the provided publicUrl.`,
|
|
39
|
+
}),
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
handleOctopusApiError(error, {
|
|
46
|
+
entityType: "tenant",
|
|
47
|
+
entityId: tenantId,
|
|
48
|
+
spaceName,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Otherwise, list tenants
|
|
53
|
+
const tenantsResponse = await client.get("~/api/{spaceId}/tenants{?skip,take,projectId,tags,ids,partialName}", {
|
|
54
|
+
spaceId,
|
|
55
|
+
skip,
|
|
56
|
+
take,
|
|
57
|
+
projectId,
|
|
58
|
+
tags,
|
|
59
|
+
ids,
|
|
60
|
+
partialName,
|
|
61
|
+
});
|
|
62
|
+
return {
|
|
63
|
+
content: [
|
|
64
|
+
{
|
|
65
|
+
type: "text",
|
|
66
|
+
text: JSON.stringify({
|
|
67
|
+
totalResults: tenantsResponse.TotalResults,
|
|
68
|
+
itemsPerPage: tenantsResponse.ItemsPerPage,
|
|
69
|
+
numberOfPages: tenantsResponse.NumberOfPages,
|
|
70
|
+
lastPageNumber: tenantsResponse.LastPageNumber,
|
|
71
|
+
items: tenantsResponse.Items.map((tenant) => ({
|
|
72
|
+
id: tenant.Id,
|
|
73
|
+
name: tenant.Name,
|
|
74
|
+
slug: tenant.Slug,
|
|
75
|
+
description: tenant.Description,
|
|
76
|
+
isDisabled: tenant.IsDisabled ?? false,
|
|
77
|
+
tenantTags: tenant.TenantTags,
|
|
78
|
+
clonedFromTenantId: tenant.ClonedFromTenantId,
|
|
79
|
+
spaceId: tenant.SpaceId,
|
|
80
|
+
publicUrl: getPublicUrl(`${configuration.instanceURL}/app#/{spaceId}/tenants/{tenantId}/overview`, {
|
|
81
|
+
spaceId: tenant.SpaceId,
|
|
82
|
+
tenantId: tenant.Id,
|
|
83
|
+
}),
|
|
84
|
+
publicUrlInstruction: `You can view more details about this tenant in the Octopus Deploy web portal at the provided publicUrl.`,
|
|
85
|
+
})),
|
|
86
|
+
}),
|
|
87
|
+
},
|
|
88
|
+
],
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export function registerFindTenantsTool(server) {
|
|
92
|
+
server.registerTool("find_tenants", {
|
|
93
|
+
title: "Find tenants in an Octopus Deploy space",
|
|
94
|
+
description: `Find tenants in a space - can retrieve a single tenant by ID or list all tenants
|
|
95
|
+
|
|
96
|
+
This unified tool can either:
|
|
97
|
+
- Get details for a specific tenant when tenantId is provided, including the projects and environments the tenant is associated with
|
|
98
|
+
- List all tenants in a space when tenantId is omitted
|
|
99
|
+
|
|
100
|
+
${tenantsDescription}
|
|
101
|
+
|
|
102
|
+
Optionally provide filtering and pagination parameters when listing.`,
|
|
103
|
+
inputSchema: {
|
|
104
|
+
spaceName: z.string().describe("The space name"),
|
|
105
|
+
tenantId: z.string().optional().describe("The ID of a specific tenant to retrieve. If omitted, lists all tenants."),
|
|
106
|
+
skip: z.number().optional().describe("Number of tenants to skip for pagination (only used when listing)"),
|
|
107
|
+
take: z.number().optional().describe("Number of tenants to take for pagination (only used when listing)"),
|
|
108
|
+
projectId: z
|
|
109
|
+
.string()
|
|
110
|
+
.optional()
|
|
111
|
+
.describe("Filter by specific project ID (only used when listing)"),
|
|
112
|
+
tags: z
|
|
113
|
+
.string()
|
|
114
|
+
.optional()
|
|
115
|
+
.describe("Filter by tenant tags (comma-separated list, only used when listing)"),
|
|
116
|
+
ids: z
|
|
117
|
+
.array(z.string())
|
|
118
|
+
.optional()
|
|
119
|
+
.describe("Filter by specific tenant IDs (only used when listing)"),
|
|
120
|
+
partialName: z
|
|
121
|
+
.string()
|
|
122
|
+
.optional()
|
|
123
|
+
.describe("Filter by partial tenant name match (only used when listing)"),
|
|
124
|
+
},
|
|
125
|
+
annotations: READ_ONLY_TOOL_ANNOTATIONS,
|
|
126
|
+
}, findTenantsHandler);
|
|
127
|
+
}
|
|
128
|
+
registerToolDefinition({
|
|
129
|
+
toolName: "find_tenants",
|
|
130
|
+
config: { toolset: "tenants", readOnly: true },
|
|
131
|
+
registerFn: registerFindTenantsTool,
|
|
132
|
+
});
|
|
133
|
+
//# sourceMappingURL=findTenants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findTenants.js","sourceRoot":"","sources":["../../src/tools/findTenants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBranches.d.ts","sourceRoot":"","sources":["../../src/tools/getBranches.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"getBranches.d.ts","sourceRoot":"","sources":["../../src/tools/getBranches.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,QAoExD"}
|
|
@@ -2,49 +2,67 @@ import { Client, resolveSpaceId } from "@octopusdeploy/api-client";
|
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
4
|
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
5
|
+
import { READ_ONLY_TOOL_ANNOTATIONS } from "../types/toolAnnotations.js";
|
|
5
6
|
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
6
7
|
import { getProjectBranches } from "../helpers/vcsProjectHelpers.js";
|
|
8
|
+
import { validateEntityId, handleOctopusApiError, ENTITY_PREFIXES } from "../helpers/errorHandling.js";
|
|
7
9
|
export function registerGetBranchesTool(server) {
|
|
8
|
-
server.
|
|
9
|
-
|
|
10
|
-
This tool retrieves Git branches for a specific project in a space. The space name and project ID are required. Optionally provide searchByName, skip, and take parameters for filtering and pagination.`, {
|
|
11
|
-
spaceName: z.string(),
|
|
12
|
-
projectId: z.string(),
|
|
13
|
-
searchByName: z.string().optional(),
|
|
14
|
-
skip: z.number().optional(),
|
|
15
|
-
take: z.number().optional(),
|
|
16
|
-
}, {
|
|
10
|
+
server.registerTool("get_branches", {
|
|
17
11
|
title: "Get Git branches for a version-controlled project",
|
|
18
|
-
|
|
12
|
+
description: `Get Git branches for a version-controlled project
|
|
13
|
+
|
|
14
|
+
This tool retrieves Git branches for a specific project in a space. The space name and project ID are required. Optionally provide searchByName, skip, and take parameters for filtering and pagination.`,
|
|
15
|
+
inputSchema: {
|
|
16
|
+
spaceName: z.string(),
|
|
17
|
+
projectId: z.string(),
|
|
18
|
+
searchByName: z.string().optional(),
|
|
19
|
+
skip: z.number().optional(),
|
|
20
|
+
take: z.number().optional(),
|
|
21
|
+
},
|
|
22
|
+
annotations: READ_ONLY_TOOL_ANNOTATIONS,
|
|
19
23
|
}, async ({ spaceName, projectId, searchByName, skip, take }) => {
|
|
20
|
-
|
|
21
|
-
const client = await Client.create(configuration);
|
|
22
|
-
const spaceId = await resolveSpaceId(client, spaceName);
|
|
24
|
+
validateEntityId(projectId, 'project', ENTITY_PREFIXES.project);
|
|
23
25
|
const options = {
|
|
24
26
|
searchByName,
|
|
25
27
|
skip,
|
|
26
28
|
take,
|
|
27
29
|
};
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
30
|
+
try {
|
|
31
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
32
|
+
const client = await Client.create(configuration);
|
|
33
|
+
const spaceId = await resolveSpaceId(client, spaceName);
|
|
34
|
+
const branches = await getProjectBranches(client, spaceId, projectId, options);
|
|
35
|
+
if (branches.Items.length === 0 && !searchByName) {
|
|
36
|
+
throw new Error(`No branches found for project '${projectId}'. This may indicate that the project is not version controlled or ` +
|
|
37
|
+
"uses database storage instead of Git. Only version controlled projects have branches.");
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
content: [
|
|
41
|
+
{
|
|
42
|
+
type: "text",
|
|
43
|
+
text: JSON.stringify({
|
|
44
|
+
Items: branches.Items.map(branch => ({
|
|
45
|
+
Name: branch.Name,
|
|
46
|
+
IsProtected: branch.IsProtected,
|
|
47
|
+
CanonicalName: branch.CanonicalName,
|
|
48
|
+
})),
|
|
49
|
+
TotalResults: branches.TotalResults,
|
|
50
|
+
ItemsPerPage: branches.ItemsPerPage,
|
|
51
|
+
NumberOfPages: branches.NumberOfPages,
|
|
52
|
+
LastPageNumber: branches.LastPageNumber,
|
|
53
|
+
ItemType: branches.ItemType,
|
|
54
|
+
}),
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
handleOctopusApiError(error, {
|
|
61
|
+
entityType: 'project',
|
|
62
|
+
entityId: projectId,
|
|
63
|
+
spaceName
|
|
64
|
+
});
|
|
65
|
+
}
|
|
48
66
|
});
|
|
49
67
|
}
|
|
50
68
|
registerToolDefinition({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBranches.js","sourceRoot":"","sources":["../../src/tools/getBranches.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,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"getBranches.js","sourceRoot":"","sources":["../../src/tools/getBranches.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCurrentUser.d.ts","sourceRoot":"","sources":["../../src/tools/getCurrentUser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"getCurrentUser.d.ts","sourceRoot":"","sources":["../../src/tools/getCurrentUser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiBzE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,QA0C3D"}
|
|
@@ -1,35 +1,44 @@
|
|
|
1
1
|
import { Client } from "@octopusdeploy/api-client";
|
|
2
2
|
import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
3
|
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
4
|
+
import { READ_ONLY_TOOL_ANNOTATIONS } from "../types/toolAnnotations.js";
|
|
4
5
|
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
6
|
+
import { handleOctopusApiError } from "../helpers/errorHandling.js";
|
|
5
7
|
export function registerGetCurrentUserTool(server) {
|
|
6
|
-
server.
|
|
7
|
-
|
|
8
|
-
This tool retrieves information about the currently authenticated user from the Octopus Deploy API.`, {}, {
|
|
8
|
+
server.registerTool("get_current_user", {
|
|
9
9
|
title: "Get current user information",
|
|
10
|
-
|
|
10
|
+
description: `Get information about the current authenticated user
|
|
11
|
+
|
|
12
|
+
This tool retrieves information about the currently authenticated user from the Octopus Deploy API.`,
|
|
13
|
+
inputSchema: {},
|
|
14
|
+
annotations: READ_ONLY_TOOL_ANNOTATIONS,
|
|
11
15
|
}, async () => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
16
|
+
try {
|
|
17
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
18
|
+
const client = await Client.create(configuration);
|
|
19
|
+
const user = await client.get("~/api/users/me");
|
|
20
|
+
const currentUser = {
|
|
21
|
+
id: user.Id,
|
|
22
|
+
username: user.Username,
|
|
23
|
+
displayName: user.DisplayName,
|
|
24
|
+
isActive: user.IsActive,
|
|
25
|
+
isService: user.IsService,
|
|
26
|
+
emailAddress: user.EmailAddress,
|
|
27
|
+
canPasswordBeEdited: user.CanPasswordBeEdited,
|
|
28
|
+
isRequestor: user.IsRequestor,
|
|
29
|
+
};
|
|
30
|
+
return {
|
|
31
|
+
content: [
|
|
32
|
+
{
|
|
33
|
+
type: "text",
|
|
34
|
+
text: JSON.stringify(currentUser),
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
handleOctopusApiError(error, {});
|
|
41
|
+
}
|
|
33
42
|
});
|
|
34
43
|
}
|
|
35
44
|
registerToolDefinition({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCurrentUser.js","sourceRoot":"","sources":["../../src/tools/getCurrentUser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qCAAqC,EAAE,MAAM,qDAAqD,CAAC;
|
|
1
|
+
{"version":3,"file":"getCurrentUser.js","sourceRoot":"","sources":["../../src/tools/getCurrentUser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,qCAAqC,EAAE,MAAM,qDAAqD,CAAC;AAC5G,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAapE,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE;;oGAEiF;QAC9F,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,0BAA0B;KACxC,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,qCAAqC,EAAE,CAAC;YAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAElD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAc,gBAAgB,CAAC,CAAC;YAE7D,MAAM,WAAW,GAAG;gBAClB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;gBAC7C,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;qBAClC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qBAAqB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,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,0BAA0B;CACvC,CAAC,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Client } from '@octopusdeploy/api-client';
|
|
2
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
export interface GetDeploymentFromUrlParams {
|
|
4
|
+
url: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function getDeploymentFromUrl(client: Client, params: GetDeploymentFromUrlParams): Promise<{
|
|
7
|
+
deployment: {
|
|
8
|
+
spaceId: string;
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
releaseId: string;
|
|
12
|
+
releaseVersion: string | undefined;
|
|
13
|
+
versionControlReference: {
|
|
14
|
+
GitRef?: string;
|
|
15
|
+
GitCommit?: string;
|
|
16
|
+
} | undefined;
|
|
17
|
+
environmentId: string;
|
|
18
|
+
tenantId: string | undefined;
|
|
19
|
+
projectId: string;
|
|
20
|
+
channelId: string;
|
|
21
|
+
created: string;
|
|
22
|
+
taskId: string;
|
|
23
|
+
deploymentProcessId: string;
|
|
24
|
+
comments: string;
|
|
25
|
+
formValues: Record<string, unknown>;
|
|
26
|
+
queueTime: Date | undefined;
|
|
27
|
+
queueTimeExpiry: Date | undefined;
|
|
28
|
+
useGuidedFailure: boolean;
|
|
29
|
+
specificMachineIds: string[];
|
|
30
|
+
excludedMachineIds: string[];
|
|
31
|
+
skipActions: string[];
|
|
32
|
+
forcePackageDownload: boolean;
|
|
33
|
+
forcePackageRedeployment: boolean;
|
|
34
|
+
publicUrl: string | undefined;
|
|
35
|
+
};
|
|
36
|
+
resolvedSpaceName: string;
|
|
37
|
+
resolvedDeploymentId: string;
|
|
38
|
+
taskIdForLogs: string;
|
|
39
|
+
urlInfo: {
|
|
40
|
+
originalUrl: string;
|
|
41
|
+
extractedSpaceId: string;
|
|
42
|
+
extractedDeploymentId: string;
|
|
43
|
+
resourceType: "project" | "tenant" | "deployment" | "release" | "task" | "unknown" | undefined;
|
|
44
|
+
};
|
|
45
|
+
nextSteps: {
|
|
46
|
+
description: string;
|
|
47
|
+
useTaskId: string;
|
|
48
|
+
taskResourceUri: string;
|
|
49
|
+
grepTaskLogHint: {
|
|
50
|
+
tool: string;
|
|
51
|
+
spaceName: string;
|
|
52
|
+
taskId: string;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
}>;
|
|
56
|
+
export declare function registerGetDeploymentFromUrlTool(server: McpServer): void;
|
|
57
|
+
//# sourceMappingURL=getDeploymentFromUrl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDeploymentFromUrl.d.ts","sourceRoot":"","sources":["../../src/tools/getDeploymentFromUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA4D,MAAM,2BAA2B,CAAC;AAG7G,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQpE,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,0BAA0B;;;;;;;;qBAyCnD,MAAM;wBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEnE;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,SAAS,QAoDjE"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { Client, DeploymentRepository, ReleaseRepository } from '@octopusdeploy/api-client';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getClientConfigurationFromEnvironment } from '../helpers/getClientConfigurationFromEnvironment.js';
|
|
4
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import { registerToolDefinition } from '../types/toolConfig.js';
|
|
6
|
+
import { READ_ONLY_TOOL_ANNOTATIONS } from '../types/toolAnnotations.js';
|
|
7
|
+
import { parseOctopusUrl, extractDeploymentId } from '../helpers/urlParser.js';
|
|
8
|
+
import { resolveSpaceNameFromId } from '../helpers/spaceResolver.js';
|
|
9
|
+
import { getPublicUrl } from '../helpers/getPublicUrl.js';
|
|
10
|
+
import { validateEntityId, handleOctopusApiError, ENTITY_PREFIXES } from '../helpers/errorHandling.js';
|
|
11
|
+
export async function getDeploymentFromUrl(client, params) {
|
|
12
|
+
const { url } = params;
|
|
13
|
+
if (!url) {
|
|
14
|
+
throw new Error("URL is required");
|
|
15
|
+
}
|
|
16
|
+
const urlParts = parseOctopusUrl(url);
|
|
17
|
+
if (!urlParts.spaceId) {
|
|
18
|
+
throw new Error("Could not extract space ID from URL. URL must contain a space identifier like 'Spaces-1234'");
|
|
19
|
+
}
|
|
20
|
+
const spaceName = await resolveSpaceNameFromId(client, urlParts.spaceId);
|
|
21
|
+
const deploymentId = extractDeploymentId(url);
|
|
22
|
+
if (!deploymentId) {
|
|
23
|
+
throw new Error(`Could not extract deployment ID from URL. ` +
|
|
24
|
+
`URL must contain a deployment identifier (Deployments-XXXXX). ` +
|
|
25
|
+
`The provided URL appears to be: ${urlParts.resourceType || 'unknown type'}`);
|
|
26
|
+
}
|
|
27
|
+
validateEntityId(deploymentId, 'deployment', ENTITY_PREFIXES.deployment);
|
|
28
|
+
const deploymentRepository = new DeploymentRepository(client, spaceName);
|
|
29
|
+
let deployment;
|
|
30
|
+
try {
|
|
31
|
+
deployment = await deploymentRepository.get(deploymentId);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
handleOctopusApiError(error, {
|
|
35
|
+
entityType: 'deployment',
|
|
36
|
+
entityId: deploymentId,
|
|
37
|
+
spaceName,
|
|
38
|
+
helpText: 'The deployment may have been deleted or you may not have permission to view it. Use list_deployments to find valid deployment IDs.'
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
let releaseVersion;
|
|
42
|
+
let versionControlReference;
|
|
43
|
+
if (deployment.ReleaseId) {
|
|
44
|
+
const releaseRepository = new ReleaseRepository(client, spaceName);
|
|
45
|
+
try {
|
|
46
|
+
const release = await releaseRepository.get(deployment.ReleaseId);
|
|
47
|
+
releaseVersion = release.Version;
|
|
48
|
+
versionControlReference = release.VersionControlReference;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
releaseVersion = undefined;
|
|
52
|
+
versionControlReference = undefined;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
56
|
+
const publicUrl = releaseVersion
|
|
57
|
+
? getPublicUrl(`${configuration.instanceURL}/app#/{spaceId}/projects/{projectId}/deployments/releases/{releaseVersion}/deployments/{deploymentId}`, {
|
|
58
|
+
spaceId: deployment.SpaceId,
|
|
59
|
+
projectId: deployment.ProjectId,
|
|
60
|
+
releaseVersion,
|
|
61
|
+
deploymentId: deployment.Id,
|
|
62
|
+
})
|
|
63
|
+
: undefined;
|
|
64
|
+
return {
|
|
65
|
+
deployment: {
|
|
66
|
+
spaceId: deployment.SpaceId,
|
|
67
|
+
id: deployment.Id,
|
|
68
|
+
name: deployment.Name,
|
|
69
|
+
releaseId: deployment.ReleaseId,
|
|
70
|
+
releaseVersion,
|
|
71
|
+
versionControlReference,
|
|
72
|
+
environmentId: deployment.EnvironmentId,
|
|
73
|
+
tenantId: deployment.TenantId,
|
|
74
|
+
projectId: deployment.ProjectId,
|
|
75
|
+
channelId: deployment.ChannelId,
|
|
76
|
+
created: deployment.Created,
|
|
77
|
+
taskId: deployment.TaskId,
|
|
78
|
+
deploymentProcessId: deployment.DeploymentProcessId,
|
|
79
|
+
comments: deployment.Comments,
|
|
80
|
+
formValues: deployment.FormValues,
|
|
81
|
+
queueTime: deployment.QueueTime,
|
|
82
|
+
queueTimeExpiry: deployment.QueueTimeExpiry,
|
|
83
|
+
useGuidedFailure: deployment.UseGuidedFailure,
|
|
84
|
+
specificMachineIds: deployment.SpecificMachineIds,
|
|
85
|
+
excludedMachineIds: deployment.ExcludedMachineIds,
|
|
86
|
+
skipActions: deployment.SkipActions,
|
|
87
|
+
forcePackageDownload: deployment.ForcePackageDownload,
|
|
88
|
+
forcePackageRedeployment: deployment.ForcePackageRedeployment,
|
|
89
|
+
publicUrl,
|
|
90
|
+
},
|
|
91
|
+
resolvedSpaceName: spaceName,
|
|
92
|
+
resolvedDeploymentId: deploymentId,
|
|
93
|
+
taskIdForLogs: deployment.TaskId,
|
|
94
|
+
urlInfo: {
|
|
95
|
+
originalUrl: url,
|
|
96
|
+
extractedSpaceId: urlParts.spaceId,
|
|
97
|
+
extractedDeploymentId: deploymentId,
|
|
98
|
+
resourceType: urlParts.resourceType,
|
|
99
|
+
},
|
|
100
|
+
nextSteps: {
|
|
101
|
+
description: "To inspect this deployment's task: fetch the taskResourceUri for the structured activity tree (steps, timings, embedded log entries), or call grep_task_log with this taskId to search the raw log without inhaling the full body.",
|
|
102
|
+
useTaskId: deployment.TaskId,
|
|
103
|
+
taskResourceUri: `octopus://spaces/${encodeURIComponent(spaceName)}/tasks/${encodeURIComponent(deployment.TaskId)}/details`,
|
|
104
|
+
grepTaskLogHint: {
|
|
105
|
+
tool: "grep_task_log",
|
|
106
|
+
spaceName,
|
|
107
|
+
taskId: deployment.TaskId,
|
|
108
|
+
},
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
export function registerGetDeploymentFromUrlTool(server) {
|
|
113
|
+
server.registerTool('get_deployment_from_url', {
|
|
114
|
+
title: 'Get deployment details from an Octopus Deploy URL',
|
|
115
|
+
description: `Get deployment details from an Octopus Deploy deployment URL. Returns comprehensive deployment information including the task ID needed to view execution logs.
|
|
116
|
+
|
|
117
|
+
Accepts deployment URLs like:
|
|
118
|
+
https://your-octopus.com/app#/Spaces-1/projects/my-app/deployments/releases/1.0.0/deployments/Deployments-123
|
|
119
|
+
|
|
120
|
+
Returns:
|
|
121
|
+
- Full deployment details (environment, release, project, created time)
|
|
122
|
+
- taskIdForLogs: the ServerTasks- ID for this deployment
|
|
123
|
+
- taskResourceUri: octopus:// URI for the structured activity tree (resources/read or read_resource)
|
|
124
|
+
- grepTaskLogHint: pre-filled arguments for the grep_task_log tool — call it with a pattern to search the raw log without fetching the whole thing
|
|
125
|
+
- Public URL for web portal access
|
|
126
|
+
|
|
127
|
+
Recommended workflow for investigating deployment issues:
|
|
128
|
+
1. Call get_deployment_from_url with the deployment URL
|
|
129
|
+
2. Review deployment context (environment, release version, etc.)
|
|
130
|
+
3a. Fetch the taskResourceUri for the structured activity tree (step timings, embedded log entries by category), OR
|
|
131
|
+
3b. Call grep_task_log with the taskId to search the raw log for a specific error / pattern
|
|
132
|
+
|
|
133
|
+
Handles space ID to space name resolution automatically.`,
|
|
134
|
+
inputSchema: {
|
|
135
|
+
url: z.string()
|
|
136
|
+
.describe("Full Octopus Deploy deployment URL (e.g., https://your-octopus.com/app#/Spaces-1/projects/my-app/deployments/releases/1.0.0/deployments/Deployments-123)")
|
|
137
|
+
},
|
|
138
|
+
annotations: READ_ONLY_TOOL_ANNOTATIONS,
|
|
139
|
+
}, async (args) => {
|
|
140
|
+
const { url } = args;
|
|
141
|
+
if (!url) {
|
|
142
|
+
throw new Error("URL is required");
|
|
143
|
+
}
|
|
144
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
145
|
+
const client = await Client.create(configuration);
|
|
146
|
+
const result = await getDeploymentFromUrl(client, { url });
|
|
147
|
+
return {
|
|
148
|
+
content: [
|
|
149
|
+
{
|
|
150
|
+
type: "text",
|
|
151
|
+
text: JSON.stringify(result, null, 2),
|
|
152
|
+
},
|
|
153
|
+
],
|
|
154
|
+
};
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
registerToolDefinition({
|
|
158
|
+
toolName: "get_deployment_from_url",
|
|
159
|
+
config: { toolset: "deployments", readOnly: true },
|
|
160
|
+
registerFn: registerGetDeploymentFromUrlTool,
|
|
161
|
+
});
|
|
162
|
+
//# sourceMappingURL=getDeploymentFromUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDeploymentFromUrl.js","sourceRoot":"","sources":["../../src/tools/getDeploymentFromUrl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDeploymentProcess.d.ts","sourceRoot":"","sources":["../../src/tools/getDeploymentProcess.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getDeploymentProcess.d.ts","sourceRoot":"","sources":["../../src/tools/getDeploymentProcess.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,SAAS,QA6JjE"}
|