@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.
Files changed (290) hide show
  1. package/README.md +237 -46
  2. package/dist/helpers/activeToolsetConfig.d.ts +4 -0
  3. package/dist/helpers/activeToolsetConfig.d.ts.map +1 -0
  4. package/dist/helpers/activeToolsetConfig.js +18 -0
  5. package/dist/helpers/activeToolsetConfig.js.map +1 -0
  6. package/dist/helpers/errorHandling.d.ts +38 -0
  7. package/dist/helpers/errorHandling.d.ts.map +1 -0
  8. package/dist/helpers/errorHandling.js +75 -0
  9. package/dist/helpers/errorHandling.js.map +1 -0
  10. package/dist/helpers/getClientConfigurationFromEnvironment.d.ts +2 -0
  11. package/dist/helpers/getClientConfigurationFromEnvironment.d.ts.map +1 -1
  12. package/dist/helpers/getClientConfigurationFromEnvironment.js +21 -5
  13. package/dist/helpers/getClientConfigurationFromEnvironment.js.map +1 -1
  14. package/dist/helpers/grepLines.d.ts +38 -0
  15. package/dist/helpers/grepLines.d.ts.map +1 -0
  16. package/dist/helpers/grepLines.js +65 -0
  17. package/dist/helpers/grepLines.js.map +1 -0
  18. package/dist/helpers/methodTier.d.ts +15 -0
  19. package/dist/helpers/methodTier.d.ts.map +1 -0
  20. package/dist/helpers/methodTier.js +25 -0
  21. package/dist/helpers/methodTier.js.map +1 -0
  22. package/dist/helpers/pathAllowlist.d.ts +27 -0
  23. package/dist/helpers/pathAllowlist.d.ts.map +1 -0
  24. package/dist/helpers/pathAllowlist.js +177 -0
  25. package/dist/helpers/pathAllowlist.js.map +1 -0
  26. package/dist/helpers/pathGlob.d.ts +15 -0
  27. package/dist/helpers/pathGlob.d.ts.map +1 -0
  28. package/dist/helpers/pathGlob.js +47 -0
  29. package/dist/helpers/pathGlob.js.map +1 -0
  30. package/dist/helpers/requireConfirmation.d.ts +119 -0
  31. package/dist/helpers/requireConfirmation.d.ts.map +1 -0
  32. package/dist/helpers/requireConfirmation.js +148 -0
  33. package/dist/helpers/requireConfirmation.js.map +1 -0
  34. package/dist/helpers/sensitivePathDenylist.d.ts +32 -0
  35. package/dist/helpers/sensitivePathDenylist.d.ts.map +1 -0
  36. package/dist/helpers/sensitivePathDenylist.js +49 -0
  37. package/dist/helpers/sensitivePathDenylist.js.map +1 -0
  38. package/dist/helpers/spaceResolver.d.ts +4 -0
  39. package/dist/helpers/spaceResolver.d.ts.map +1 -0
  40. package/dist/helpers/spaceResolver.js +18 -0
  41. package/dist/helpers/spaceResolver.js.map +1 -0
  42. package/dist/helpers/stripLinks.d.ts +15 -0
  43. package/dist/helpers/stripLinks.d.ts.map +1 -0
  44. package/dist/helpers/stripLinks.js +19 -0
  45. package/dist/helpers/stripLinks.js.map +1 -0
  46. package/dist/helpers/urlParser.d.ts +16 -0
  47. package/dist/helpers/urlParser.d.ts.map +1 -0
  48. package/dist/helpers/urlParser.js +83 -0
  49. package/dist/helpers/urlParser.js.map +1 -0
  50. package/dist/helpers/userCache.d.ts +14 -0
  51. package/dist/helpers/userCache.d.ts.map +1 -0
  52. package/dist/helpers/userCache.js +16 -0
  53. package/dist/helpers/userCache.js.map +1 -0
  54. package/dist/helpers/validateExecutePath.d.ts +29 -0
  55. package/dist/helpers/validateExecutePath.d.ts.map +1 -0
  56. package/dist/helpers/validateExecutePath.js +62 -0
  57. package/dist/helpers/validateExecutePath.js.map +1 -0
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +64 -15
  60. package/dist/index.js.map +1 -1
  61. package/dist/resources/catalog/capabilities.d.ts +36 -0
  62. package/dist/resources/catalog/capabilities.d.ts.map +1 -0
  63. package/dist/resources/catalog/capabilities.js +90 -0
  64. package/dist/resources/catalog/capabilities.js.map +1 -0
  65. package/dist/resources/catalog/llmsTxt.d.ts +8 -0
  66. package/dist/resources/catalog/llmsTxt.d.ts.map +1 -0
  67. package/dist/resources/catalog/llmsTxt.js +44 -0
  68. package/dist/resources/catalog/llmsTxt.js.map +1 -0
  69. package/dist/resources/dispatch.d.ts +30 -0
  70. package/dist/resources/dispatch.d.ts.map +1 -0
  71. package/dist/resources/dispatch.js +81 -0
  72. package/dist/resources/dispatch.js.map +1 -0
  73. package/dist/resources/featureToggle.d.ts +2 -0
  74. package/dist/resources/featureToggle.d.ts.map +1 -0
  75. package/dist/resources/featureToggle.js +34 -0
  76. package/dist/resources/featureToggle.js.map +1 -0
  77. package/dist/resources/index.d.ts +12 -0
  78. package/dist/resources/index.d.ts.map +1 -0
  79. package/dist/resources/index.js +44 -0
  80. package/dist/resources/index.js.map +1 -0
  81. package/dist/resources/interruption.d.ts +2 -0
  82. package/dist/resources/interruption.d.ts.map +1 -0
  83. package/dist/resources/interruption.js +34 -0
  84. package/dist/resources/interruption.js.map +1 -0
  85. package/dist/resources/release.d.ts +2 -0
  86. package/dist/resources/release.d.ts.map +1 -0
  87. package/dist/resources/release.js +33 -0
  88. package/dist/resources/release.js.map +1 -0
  89. package/dist/resources/rolloutGroup.d.ts +2 -0
  90. package/dist/resources/rolloutGroup.d.ts.map +1 -0
  91. package/dist/resources/rolloutGroup.js +35 -0
  92. package/dist/resources/rolloutGroup.js.map +1 -0
  93. package/dist/resources/runbook.d.ts +2 -0
  94. package/dist/resources/runbook.d.ts.map +1 -0
  95. package/dist/resources/runbook.js +34 -0
  96. package/dist/resources/runbook.js.map +1 -0
  97. package/dist/resources/task.d.ts +2 -0
  98. package/dist/resources/task.d.ts.map +1 -0
  99. package/dist/resources/task.js +68 -0
  100. package/dist/resources/task.js.map +1 -0
  101. package/dist/tools/createRelease.d.ts +3 -0
  102. package/dist/tools/createRelease.d.ts.map +1 -0
  103. package/dist/tools/createRelease.js +151 -0
  104. package/dist/tools/createRelease.js.map +1 -0
  105. package/dist/tools/deployRelease.d.ts +3 -0
  106. package/dist/tools/deployRelease.d.ts.map +1 -0
  107. package/dist/tools/deployRelease.js +227 -0
  108. package/dist/tools/deployRelease.js.map +1 -0
  109. package/dist/tools/execute.d.ts +3 -0
  110. package/dist/tools/execute.d.ts.map +1 -0
  111. package/dist/tools/execute.js +261 -0
  112. package/dist/tools/execute.js.map +1 -0
  113. package/dist/tools/findAccounts.d.ts +3 -0
  114. package/dist/tools/findAccounts.d.ts.map +1 -0
  115. package/dist/tools/findAccounts.js +90 -0
  116. package/dist/tools/findAccounts.js.map +1 -0
  117. package/dist/tools/findCertificates.d.ts +3 -0
  118. package/dist/tools/findCertificates.d.ts.map +1 -0
  119. package/dist/tools/findCertificates.js +98 -0
  120. package/dist/tools/findCertificates.js.map +1 -0
  121. package/dist/tools/findDeploymentTargets.d.ts +3 -0
  122. package/dist/tools/findDeploymentTargets.d.ts.map +1 -0
  123. package/dist/tools/findDeploymentTargets.js +161 -0
  124. package/dist/tools/findDeploymentTargets.js.map +1 -0
  125. package/dist/tools/findFeatureToggles.d.ts +37 -0
  126. package/dist/tools/findFeatureToggles.d.ts.map +1 -0
  127. package/dist/tools/findFeatureToggles.js +139 -0
  128. package/dist/tools/findFeatureToggles.js.map +1 -0
  129. package/dist/tools/findInterruptions.d.ts +79 -0
  130. package/dist/tools/findInterruptions.d.ts.map +1 -0
  131. package/dist/tools/findInterruptions.js +273 -0
  132. package/dist/tools/findInterruptions.js.map +1 -0
  133. package/dist/tools/findReleases.d.ts +3 -0
  134. package/dist/tools/findReleases.d.ts.map +1 -0
  135. package/dist/tools/findReleases.js +138 -0
  136. package/dist/tools/findReleases.js.map +1 -0
  137. package/dist/tools/findRunbooks.d.ts +3 -0
  138. package/dist/tools/findRunbooks.d.ts.map +1 -0
  139. package/dist/tools/findRunbooks.js +139 -0
  140. package/dist/tools/findRunbooks.js.map +1 -0
  141. package/dist/tools/findTenants.d.ts +19 -0
  142. package/dist/tools/findTenants.d.ts.map +1 -0
  143. package/dist/tools/findTenants.js +133 -0
  144. package/dist/tools/findTenants.js.map +1 -0
  145. package/dist/tools/getBranches.d.ts.map +1 -1
  146. package/dist/tools/getBranches.js +51 -33
  147. package/dist/tools/getBranches.js.map +1 -1
  148. package/dist/tools/getCurrentUser.d.ts.map +1 -1
  149. package/dist/tools/getCurrentUser.js +34 -25
  150. package/dist/tools/getCurrentUser.js.map +1 -1
  151. package/dist/tools/getDeploymentFromUrl.d.ts +57 -0
  152. package/dist/tools/getDeploymentFromUrl.d.ts.map +1 -0
  153. package/dist/tools/getDeploymentFromUrl.js +162 -0
  154. package/dist/tools/getDeploymentFromUrl.js.map +1 -0
  155. package/dist/tools/getDeploymentProcess.d.ts.map +1 -1
  156. package/dist/tools/getDeploymentProcess.js +57 -19
  157. package/dist/tools/getDeploymentProcess.js.map +1 -1
  158. package/dist/tools/getKubernetesLiveStatus.d.ts.map +1 -1
  159. package/dist/tools/getKubernetesLiveStatus.js +70 -48
  160. package/dist/tools/getKubernetesLiveStatus.js.map +1 -1
  161. package/dist/tools/getMissingTenantVariables.d.ts.map +1 -1
  162. package/dist/tools/getMissingTenantVariables.js +58 -26
  163. package/dist/tools/getMissingTenantVariables.js.map +1 -1
  164. package/dist/tools/getTaskFromUrl.d.ts +18 -0
  165. package/dist/tools/getTaskFromUrl.d.ts.map +1 -0
  166. package/dist/tools/getTaskFromUrl.js +90 -0
  167. package/dist/tools/getTaskFromUrl.js.map +1 -0
  168. package/dist/tools/getTenantVariables.d.ts.map +1 -1
  169. package/dist/tools/getTenantVariables.js +58 -38
  170. package/dist/tools/getTenantVariables.js.map +1 -1
  171. package/dist/tools/getVariables.d.ts.map +1 -1
  172. package/dist/tools/getVariables.js +12 -9
  173. package/dist/tools/getVariables.js.map +1 -1
  174. package/dist/tools/grepLlmsTxt.d.ts +13 -0
  175. package/dist/tools/grepLlmsTxt.d.ts.map +1 -0
  176. package/dist/tools/grepLlmsTxt.js +105 -0
  177. package/dist/tools/grepLlmsTxt.js.map +1 -0
  178. package/dist/tools/grepTaskLog.d.ts +30 -0
  179. package/dist/tools/grepTaskLog.d.ts.map +1 -0
  180. package/dist/tools/grepTaskLog.js +116 -0
  181. package/dist/tools/grepTaskLog.js.map +1 -0
  182. package/dist/tools/index.d.ts +22 -18
  183. package/dist/tools/index.d.ts.map +1 -1
  184. package/dist/tools/index.js +33 -21
  185. package/dist/tools/index.js.map +1 -1
  186. package/dist/tools/listDeployments.d.ts.map +1 -1
  187. package/dist/tools/listDeployments.js +77 -37
  188. package/dist/tools/listDeployments.js.map +1 -1
  189. package/dist/tools/listEnvironments.d.ts.map +1 -1
  190. package/dist/tools/listEnvironments.js +63 -37
  191. package/dist/tools/listEnvironments.js.map +1 -1
  192. package/dist/tools/listProjects.d.ts.map +1 -1
  193. package/dist/tools/listProjects.js +64 -38
  194. package/dist/tools/listProjects.js.map +1 -1
  195. package/dist/tools/listSpaces.d.ts.map +1 -1
  196. package/dist/tools/listSpaces.js +56 -30
  197. package/dist/tools/listSpaces.js.map +1 -1
  198. package/dist/tools/readResource.d.ts +3 -0
  199. package/dist/tools/readResource.d.ts.map +1 -0
  200. package/dist/tools/readResource.js +50 -0
  201. package/dist/tools/readResource.js.map +1 -0
  202. package/dist/tools/runRunbook.d.ts +3 -0
  203. package/dist/tools/runRunbook.d.ts.map +1 -0
  204. package/dist/tools/runRunbook.js +174 -0
  205. package/dist/tools/runRunbook.js.map +1 -0
  206. package/dist/tools/updateFeatureToggle.d.ts +94 -0
  207. package/dist/tools/updateFeatureToggle.d.ts.map +1 -0
  208. package/dist/tools/updateFeatureToggle.js +308 -0
  209. package/dist/tools/updateFeatureToggle.js.map +1 -0
  210. package/dist/types/featureToggleTypes.d.ts +47 -0
  211. package/dist/types/featureToggleTypes.d.ts.map +1 -0
  212. package/dist/types/featureToggleTypes.js +10 -0
  213. package/dist/types/featureToggleTypes.js.map +1 -0
  214. package/dist/types/resourceConfig.d.ts +17 -0
  215. package/dist/types/resourceConfig.d.ts.map +1 -0
  216. package/dist/types/resourceConfig.js +6 -0
  217. package/dist/types/resourceConfig.js.map +1 -0
  218. package/dist/types/toolAnnotations.d.ts +8 -0
  219. package/dist/types/toolAnnotations.d.ts.map +1 -0
  220. package/dist/types/toolAnnotations.js +28 -0
  221. package/dist/types/toolAnnotations.js.map +1 -0
  222. package/dist/types/toolConfig.d.ts +7 -1
  223. package/dist/types/toolConfig.d.ts.map +1 -1
  224. package/dist/types/toolConfig.js +4 -1
  225. package/dist/types/toolConfig.js.map +1 -1
  226. package/dist/utils/parseConfig.d.ts +1 -1
  227. package/dist/utils/parseConfig.d.ts.map +1 -1
  228. package/dist/utils/parseConfig.js +3 -2
  229. package/dist/utils/parseConfig.js.map +1 -1
  230. package/dist/utils/version.d.ts +2 -0
  231. package/dist/utils/version.d.ts.map +1 -0
  232. package/dist/utils/version.js +3 -0
  233. package/dist/utils/version.js.map +1 -0
  234. package/package.json +9 -3
  235. package/dist/tools/getAccount.d.ts +0 -3
  236. package/dist/tools/getAccount.d.ts.map +0 -1
  237. package/dist/tools/getAccount.js +0 -40
  238. package/dist/tools/getAccount.js.map +0 -1
  239. package/dist/tools/getCertificate.d.ts +0 -3
  240. package/dist/tools/getCertificate.d.ts.map +0 -1
  241. package/dist/tools/getCertificate.js +0 -40
  242. package/dist/tools/getCertificate.js.map +0 -1
  243. package/dist/tools/getDeploymentTarget.d.ts +0 -3
  244. package/dist/tools/getDeploymentTarget.d.ts.map +0 -1
  245. package/dist/tools/getDeploymentTarget.js +0 -66
  246. package/dist/tools/getDeploymentTarget.js.map +0 -1
  247. package/dist/tools/getReleaseById.d.ts +0 -3
  248. package/dist/tools/getReleaseById.d.ts.map +0 -1
  249. package/dist/tools/getReleaseById.js +0 -45
  250. package/dist/tools/getReleaseById.js.map +0 -1
  251. package/dist/tools/getTaskById.d.ts +0 -9
  252. package/dist/tools/getTaskById.d.ts.map +0 -1
  253. package/dist/tools/getTaskById.js +0 -44
  254. package/dist/tools/getTaskById.js.map +0 -1
  255. package/dist/tools/getTaskDetails.d.ts +0 -9
  256. package/dist/tools/getTaskDetails.d.ts.map +0 -1
  257. package/dist/tools/getTaskDetails.js +0 -44
  258. package/dist/tools/getTaskDetails.js.map +0 -1
  259. package/dist/tools/getTaskRaw.d.ts +0 -9
  260. package/dist/tools/getTaskRaw.d.ts.map +0 -1
  261. package/dist/tools/getTaskRaw.js +0 -43
  262. package/dist/tools/getTaskRaw.js.map +0 -1
  263. package/dist/tools/getTenantById.d.ts +0 -3
  264. package/dist/tools/getTenantById.d.ts.map +0 -1
  265. package/dist/tools/getTenantById.js +0 -50
  266. package/dist/tools/getTenantById.js.map +0 -1
  267. package/dist/tools/listAccounts.d.ts +0 -3
  268. package/dist/tools/listAccounts.d.ts.map +0 -1
  269. package/dist/tools/listAccounts.js +0 -54
  270. package/dist/tools/listAccounts.js.map +0 -1
  271. package/dist/tools/listCertificates.d.ts +0 -3
  272. package/dist/tools/listCertificates.d.ts.map +0 -1
  273. package/dist/tools/listCertificates.js +0 -62
  274. package/dist/tools/listCertificates.js.map +0 -1
  275. package/dist/tools/listDeploymentTargets.d.ts +0 -3
  276. package/dist/tools/listDeploymentTargets.d.ts.map +0 -1
  277. package/dist/tools/listDeploymentTargets.js +0 -98
  278. package/dist/tools/listDeploymentTargets.js.map +0 -1
  279. package/dist/tools/listReleases.d.ts +0 -3
  280. package/dist/tools/listReleases.d.ts.map +0 -1
  281. package/dist/tools/listReleases.js +0 -54
  282. package/dist/tools/listReleases.js.map +0 -1
  283. package/dist/tools/listReleasesForProject.d.ts +0 -3
  284. package/dist/tools/listReleasesForProject.d.ts.map +0 -1
  285. package/dist/tools/listReleasesForProject.js +0 -60
  286. package/dist/tools/listReleasesForProject.js.map +0 -1
  287. package/dist/tools/listTenants.d.ts +0 -3
  288. package/dist/tools/listTenants.d.ts.map +0 -1
  289. package/dist/tools/listTenants.js +0 -69
  290. 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;AAKzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,QAmDxD"}
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.tool("get_branches", `Get Git branches for a version-controlled project
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
- readOnlyHint: true,
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
- const configuration = getClientConfigurationFromEnvironment();
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
- const branches = await getProjectBranches(client, spaceId, projectId, options);
29
- return {
30
- content: [
31
- {
32
- type: "text",
33
- text: JSON.stringify({
34
- Items: branches.Items.map(branch => ({
35
- Name: branch.Name,
36
- IsProtected: branch.IsProtected,
37
- CanonicalName: branch.CanonicalName,
38
- })),
39
- TotalResults: branches.TotalResults,
40
- ItemsPerPage: branches.ItemsPerPage,
41
- NumberOfPages: branches.NumberOfPages,
42
- LastPageNumber: branches.LastPageNumber,
43
- ItemType: branches.ItemType,
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;AAErE,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,IAAI,CACT,cAAc,EACd;;yMAEqM,EACrM;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC5B,EACD;QACE,KAAK,EAAE,mDAAmD;QAC1D,YAAY,EAAE,IAAI;KACnB,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QAC3D,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,OAAO,GAAG;YACd,YAAY;YACZ,IAAI;YACJ,IAAI;SACL,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAE/E,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;4BACnC,IAAI,EAAE,MAAM,CAAC,IAAI;4BACjB,WAAW,EAAE,MAAM,CAAC,WAAW;4BAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;yBACpC,CAAC,CAAC;wBACH,YAAY,EAAE,QAAQ,CAAC,YAAY;wBACnC,YAAY,EAAE,QAAQ,CAAC,YAAY;wBACnC,aAAa,EAAE,QAAQ,CAAC,aAAa;wBACrC,cAAc,EAAE,QAAQ,CAAC,cAAc;wBACvC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;qBAC5B,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,sBAAsB,CAAC;IACrB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC9C,UAAU,EAAE,uBAAuB;IACnC,qBAAqB,EAAE,QAAQ;CAChC,CAAC,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;AAezE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,QAsC3D"}
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.tool("get_current_user", `Get information about the current authenticated user
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
- readOnlyHint: true,
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
- const configuration = getClientConfigurationFromEnvironment();
13
- const client = await Client.create(configuration);
14
- const user = await client.get("~/api/users/me");
15
- const currentUser = {
16
- id: user.Id,
17
- username: user.Username,
18
- displayName: user.DisplayName,
19
- isActive: user.IsActive,
20
- isService: user.IsService,
21
- emailAddress: user.EmailAddress,
22
- canPasswordBeEdited: user.CanPasswordBeEdited,
23
- isRequestor: user.IsRequestor,
24
- };
25
- return {
26
- content: [
27
- {
28
- type: "text",
29
- text: JSON.stringify(currentUser),
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;AAa5G,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB;;oGAEgG,EAChG,EAAE,EACF;QACE,KAAK,EAAE,8BAA8B;QACrC,YAAY,EAAE,IAAI;KACnB,EACD,KAAK,IAAI,EAAE;QACT,MAAM,aAAa,GAAG,qCAAqC,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAElD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAc,gBAAgB,CAAC,CAAC;QAE7D,MAAM,WAAW,GAAG;YAClB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;QAEF,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,kBAAkB;IAC5B,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC9C,UAAU,EAAE,0BAA0B;CACvC,CAAC,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":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,SAAS,QAmGjE"}
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"}