@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
@@ -3,51 +3,71 @@ import { z } from "zod";
3
3
  import {} from "@modelcontextprotocol/sdk/server/mcp.js";
4
4
  import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
5
5
  import { registerToolDefinition } from "../types/toolConfig.js";
6
+ import { READ_ONLY_TOOL_ANNOTATIONS } from "../types/toolAnnotations.js";
7
+ import { validateEntityId, handleOctopusApiError, ENTITY_PREFIXES } from "../helpers/errorHandling.js";
6
8
  export function registerGetTenantVariablesTool(server) {
7
- server.tool("get_tenant_variables", `Get tenant variables by type
8
-
9
+ server.registerTool("get_tenant_variables", {
10
+ title: "Get tenant variables from Octopus Deploy",
11
+ description: `Get tenant variables by type
12
+
9
13
  This tool retrieves different types of tenant variables. Use variableType parameter to specify which type:
10
14
  - "all": Get all tenant variables
11
15
  - "common": Get common variables only
12
- - "project": Get project-specific variables only`, {
13
- spaceName: z.string().describe("The space name"),
14
- tenantId: z.string().describe("The ID of the tenant to retrieve variables for"),
15
- variableType: z.enum(["all", "common", "project"]).describe("Type of variables to retrieve"),
16
- includeMissingVariables: z.boolean().optional().describe("Include missing variables in the response (for common/project types)")
17
- }, {
18
- title: "Get tenant variables from Octopus Deploy",
19
- readOnlyHint: true,
16
+ - "project": Get project-specific variables only`,
17
+ inputSchema: {
18
+ spaceName: z.string().describe("The space name"),
19
+ tenantId: z.string().describe("The ID of the tenant to retrieve variables for"),
20
+ variableType: z.enum(["all", "common", "project"]).describe("Type of variables to retrieve"),
21
+ includeMissingVariables: z.boolean().optional().describe("Include missing variables in the response (for common/project types)")
22
+ },
23
+ annotations: READ_ONLY_TOOL_ANNOTATIONS,
20
24
  }, async ({ spaceName, tenantId, variableType, includeMissingVariables = false }) => {
21
- const configuration = getClientConfigurationFromEnvironment();
22
- const client = await Client.create(configuration);
23
- const tenantRepository = new TenantRepository(client, spaceName);
24
- let variables;
25
- switch (variableType) {
26
- case "all": {
27
- const tenant = await tenantRepository.get(tenantId);
28
- variables = await tenantRepository.getVariables(tenant);
29
- break;
25
+ validateEntityId(tenantId, 'tenant', ENTITY_PREFIXES.tenant);
26
+ if (!variableType) {
27
+ throw new Error("Variable type is required. Valid values are: 'all', 'common', or 'project'. " +
28
+ "'all' returns all variables, 'common' returns shared variables, 'project' returns project-specific variables.");
29
+ }
30
+ try {
31
+ const configuration = getClientConfigurationFromEnvironment();
32
+ const client = await Client.create(configuration);
33
+ const tenantRepository = new TenantRepository(client, spaceName);
34
+ let variables;
35
+ switch (variableType) {
36
+ case "all": {
37
+ const tenant = await tenantRepository.get(tenantId);
38
+ variables = await tenantRepository.getVariables(tenant);
39
+ break;
40
+ }
41
+ case "common":
42
+ variables = await tenantRepository.getCommonVariablesById(tenantId, includeMissingVariables);
43
+ break;
44
+ case "project":
45
+ variables = await tenantRepository.getProjectVariablesById(tenantId, includeMissingVariables);
46
+ break;
47
+ default:
48
+ throw new Error(`Invalid variable type '${variableType}'. Valid values are: 'all', 'common', or 'project'.`);
30
49
  }
31
- case "common":
32
- variables = await tenantRepository.getCommonVariablesById(tenantId, includeMissingVariables);
33
- break;
34
- case "project":
35
- variables = await tenantRepository.getProjectVariablesById(tenantId, includeMissingVariables);
36
- break;
50
+ return {
51
+ content: [
52
+ {
53
+ type: "text",
54
+ text: JSON.stringify({
55
+ tenantId,
56
+ variableType,
57
+ includeMissingVariables,
58
+ variables
59
+ }),
60
+ },
61
+ ],
62
+ };
63
+ }
64
+ catch (error) {
65
+ handleOctopusApiError(error, {
66
+ entityType: 'tenant',
67
+ entityId: tenantId,
68
+ spaceName
69
+ });
37
70
  }
38
- return {
39
- content: [
40
- {
41
- type: "text",
42
- text: JSON.stringify({
43
- tenantId,
44
- variableType,
45
- includeMissingVariables,
46
- variables
47
- }),
48
- },
49
- ],
50
- };
51
71
  });
52
72
  }
53
73
  registerToolDefinition({
@@ -1 +1 @@
1
- {"version":3,"file":"getTenantVariables.js","sourceRoot":"","sources":["../../src/tools/getTenantVariables.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;AAEhE,MAAM,UAAU,8BAA8B,CAAC,MAAiB;IAC9D,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB;;;;;mDAK+C,EAC/C;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QAC/E,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC5F,uBAAuB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;KACjI,EACD;QACE,KAAK,EAAE,0CAA0C;QACjD,YAAY,EAAE,IAAI;KACnB,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,uBAAuB,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,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEjE,IAAI,SAAS,CAAC;QAEd,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACpD,SAAS,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACxD,MAAM;YACR,CAAC;YACD,KAAK,QAAQ;gBACX,SAAS,GAAG,MAAM,gBAAgB,CAAC,sBAAsB,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;gBAC7F,MAAM;YACR,KAAK,SAAS;gBACZ,SAAS,GAAG,MAAM,gBAAgB,CAAC,uBAAuB,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;gBAC9F,MAAM;QACV,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,QAAQ;wBACR,YAAY;wBACZ,uBAAuB;wBACvB,SAAS;qBACV,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,sBAAsB,CAAC;IACrB,QAAQ,EAAE,sBAAsB;IAChC,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC9C,UAAU,EAAE,8BAA8B;CAC3C,CAAC,CAAC"}
1
+ {"version":3,"file":"getTenantVariables.js","sourceRoot":"","sources":["../../src/tools/getTenantVariables.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getVariables.d.ts","sourceRoot":"","sources":["../../src/tools/getVariables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getVariables.d.ts","sourceRoot":"","sources":["../../src/tools/getVariables.ts"],"names":[],"mappings":"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"}
@@ -3,18 +3,21 @@ import { z } from "zod";
3
3
  import {} from "@modelcontextprotocol/sdk/server/mcp.js";
4
4
  import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
5
5
  import { registerToolDefinition } from "../types/toolConfig.js";
6
+ import { READ_ONLY_TOOL_ANNOTATIONS } from "../types/toolAnnotations.js";
6
7
  export function registerGetVariablesTool(server) {
7
- server.tool("get_variables", `This tool gets all project and library variable set variables for a given project.
8
- Projects can contain variables (specific to a project), library variable sets (shared collections of variables associated with many projects),
8
+ server.registerTool("get_variables", {
9
+ title: "Get variables for a Project from Octopus Deploy",
10
+ description: `This tool gets all project and library variable set variables for a given project.
11
+ Projects can contain variables (specific to a project), library variable sets (shared collections of variables associated with many projects),
9
12
  and tenant variables (variables related to a tenants connected to the project)
10
13
  If you want to retrieve tenant variables for a tenant connected to the project, use the get_tenant_variables tool.
11
- `, {
12
- spaceName: z.string().describe("The space name"),
13
- projectId: z.string().describe("The ID of the project to retrieve the variables for"),
14
- gitRef: z.string().describe("The gitRef to retrieve the variables from, if the project is a config-as-code project").optional(),
15
- }, {
16
- title: "Get variables for a Project from Octopus Deploy",
17
- readOnlyHint: true,
14
+ `,
15
+ inputSchema: {
16
+ spaceName: z.string().describe("The space name"),
17
+ projectId: z.string().describe("The ID of the project to retrieve the variables for"),
18
+ gitRef: z.string().describe("The gitRef to retrieve the variables from, if the project is a config-as-code project").optional(),
19
+ },
20
+ annotations: READ_ONLY_TOOL_ANNOTATIONS,
18
21
  }, async ({ spaceName, projectId, gitRef }) => {
19
22
  const configuration = getClientConfigurationFromEnvironment();
20
23
  const client = await Client.create(configuration);
@@ -1 +1 @@
1
- {"version":3,"file":"getVariables.js","sourceRoot":"","sources":["../../src/tools/getVariables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getVariables.js","sourceRoot":"","sources":["../../src/tools/getVariables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { type GrepMatch } from "../helpers/grepLines.js";
3
+ export interface GrepLlmsTxtResult {
4
+ pattern: string;
5
+ totalLines: number;
6
+ totalMatches: number;
7
+ returnedMatches: number;
8
+ truncated: boolean;
9
+ matches: GrepMatch[];
10
+ catalogResourceUri: string;
11
+ }
12
+ export declare function registerGrepLlmsTxtTool(server: McpServer): void;
13
+ //# sourceMappingURL=grepLlmsTxt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grepLlmsTxt.d.ts","sourceRoot":"","sources":["../../src/tools/grepLlmsTxt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,yBAAyB,CAAC;AAGjC,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAsDD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,QA0DxD"}
@@ -0,0 +1,105 @@
1
+ import { z } from "zod";
2
+ import {} from "@modelcontextprotocol/sdk/server/mcp.js";
3
+ import { registerToolDefinition } from "../types/toolConfig.js";
4
+ import { READ_ONLY_TOOL_ANNOTATIONS } from "../types/toolAnnotations.js";
5
+ import { grepLines, MAX_CONTEXT, MAX_COUNT_HARD_CAP, } from "../helpers/grepLines.js";
6
+ import { fetchLlmsTxt } from "../resources/catalog/llmsTxt.js";
7
+ const inputSchema = {
8
+ pattern: z
9
+ .string()
10
+ .min(1)
11
+ .describe("Regex (default) or literal substring (when fixedString=true). Tested against each line of llms.txt independently — same model as `grep`."),
12
+ caseInsensitive: z
13
+ .boolean()
14
+ .default(false)
15
+ .describe("Equivalent to grep -i. Default false."),
16
+ invertMatch: z
17
+ .boolean()
18
+ .default(false)
19
+ .describe("Equivalent to grep -v: return lines that do NOT match. Default false."),
20
+ fixedString: z
21
+ .boolean()
22
+ .default(false)
23
+ .describe("Equivalent to grep -F: treat pattern as a literal substring, not a regex. Use this when grepping for text containing regex metacharacters. Default false."),
24
+ beforeContext: z
25
+ .number()
26
+ .int()
27
+ .min(0)
28
+ .max(MAX_CONTEXT)
29
+ .default(0)
30
+ .describe(`Equivalent to grep -B: lines of preceding context to include with each match. Capped at ${MAX_CONTEXT}.`),
31
+ afterContext: z
32
+ .number()
33
+ .int()
34
+ .min(0)
35
+ .max(MAX_CONTEXT)
36
+ .default(0)
37
+ .describe(`Equivalent to grep -A: lines of trailing context to include with each match. Capped at ${MAX_CONTEXT}.`),
38
+ maxCount: z
39
+ .number()
40
+ .int()
41
+ .min(1)
42
+ .max(MAX_COUNT_HARD_CAP)
43
+ .default(100)
44
+ .describe(`Equivalent to grep -m: stop returning matches after this many. totalMatches in the response still reflects the true count across the whole file. Hard cap ${MAX_COUNT_HARD_CAP}.`),
45
+ };
46
+ export function registerGrepLlmsTxtTool(server) {
47
+ server.registerTool("grep_llms_txt", {
48
+ title: "Grep the Octopus API catalog (llms.txt)",
49
+ description: `Search the Octopus API catalog at octopus://api/llms.txt with grep-style semantics. The catalog is large (~300+ KB) — call this rather than reading the resource body directly.
50
+
51
+ llms.txt is structured as:
52
+ - Authentication and Space Selection sections (top of file)
53
+ - Endpoints section: one '### {Category}' heading per resource family (Accounts, ActionTemplates, Channels, Releases, …) and one bullet per endpoint of the form
54
+ \`- \\\`METHOD /path\\\` - description | Prefixes (pick one): /{spaceId}, /spaces/{spaceIdentifier} | ?queryParams → ReturnType\`
55
+ - Steps section: deployment step types (Octopus.* ActionType) and their configurable property keys.
56
+
57
+ Useful patterns:
58
+ - 'POST /releases' — find write endpoints under a resource family
59
+ - 'DELETE ' — enumerate delete endpoints
60
+ - '### Channels' — jump to a section heading
61
+ - 'Body: Create.*Command' — find endpoints that take a Create command body
62
+
63
+ Parameter conventions mirror GNU grep:
64
+ - pattern (regex by default; set fixedString:true for literal text)
65
+ - caseInsensitive (-i)
66
+ - invertMatch (-v)
67
+ - fixedString (-F)
68
+ - beforeContext (-B)
69
+ - afterContext (-A)
70
+ - maxCount (-m)
71
+
72
+ Response: totalMatches (true count across the whole file), totalLines, the matched lines with 1-indexed lineNumber, optional before/after context arrays, and catalogResourceUri for the structured fall-through.`,
73
+ inputSchema,
74
+ annotations: READ_ONLY_TOOL_ANNOTATIONS,
75
+ }, async (args) => {
76
+ const params = args;
77
+ const body = await fetchLlmsTxt();
78
+ const { totalLines, totalMatches, matches } = grepLines(body, params);
79
+ const result = {
80
+ pattern: params.pattern,
81
+ totalLines,
82
+ totalMatches,
83
+ returnedMatches: matches.length,
84
+ truncated: totalMatches > matches.length,
85
+ matches,
86
+ catalogResourceUri: "octopus://api/llms.txt",
87
+ };
88
+ return {
89
+ content: [
90
+ {
91
+ type: "text",
92
+ text: JSON.stringify(result),
93
+ },
94
+ ],
95
+ };
96
+ });
97
+ }
98
+ registerToolDefinition({
99
+ toolName: "grep_llms_txt",
100
+ config: { toolset: "core", readOnly: true },
101
+ registerFn: registerGrepLlmsTxtTool,
102
+ // The /api/experimental/llms.txt endpoint shipped in Octopus 2026.2.3916.
103
+ minimumOctopusVersion: "2026.2.3916",
104
+ });
105
+ //# sourceMappingURL=grepLlmsTxt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grepLlmsTxt.js","sourceRoot":"","sources":["../../src/tools/grepLlmsTxt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { type GrepMatch } from "../helpers/grepLines.js";
3
+ export interface GrepTaskLogParams {
4
+ spaceName: string;
5
+ taskId: string;
6
+ pattern: string;
7
+ caseInsensitive?: boolean;
8
+ invertMatch?: boolean;
9
+ fixedString?: boolean;
10
+ beforeContext?: number;
11
+ afterContext?: number;
12
+ maxCount?: number;
13
+ }
14
+ export interface GrepTaskLogResult {
15
+ spaceName: string;
16
+ taskId: string;
17
+ pattern: string;
18
+ totalLines: number;
19
+ totalMatches: number;
20
+ returnedMatches: number;
21
+ truncated: boolean;
22
+ matches: GrepMatch[];
23
+ /**
24
+ * URI for the structured ActivityLogs tree if the agent needs more than
25
+ * grep can express (e.g. step hierarchy, category filtering, timing).
26
+ */
27
+ taskDetailsResourceUri: string;
28
+ }
29
+ export declare function registerGrepTaskLogTool(server: McpServer): void;
30
+ //# sourceMappingURL=grepTaskLog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grepTaskLog.d.ts","sourceRoot":"","sources":["../../src/tools/grepTaskLog.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB;;;OAGG;IACH,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAkDD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,QAsExD"}
@@ -0,0 +1,116 @@
1
+ import { Client, SpaceServerTaskRepository } 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 { READ_ONLY_TOOL_ANNOTATIONS } from "../types/toolAnnotations.js";
6
+ import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
7
+ import { validateEntityId, handleOctopusApiError, ENTITY_PREFIXES, } from "../helpers/errorHandling.js";
8
+ import { grepLines, MAX_CONTEXT, MAX_COUNT_HARD_CAP, } from "../helpers/grepLines.js";
9
+ const inputSchema = {
10
+ spaceName: z
11
+ .string()
12
+ .describe("Octopus space name. Case-sensitive."),
13
+ taskId: z
14
+ .string()
15
+ .describe("ServerTasks-XXXX ID. Use find_releases or list_deployments to discover task IDs from their parent entities."),
16
+ pattern: z
17
+ .string()
18
+ .min(1)
19
+ .describe("Regex (default) or literal substring (when fixedString=true). Anchors and groups behave as in JavaScript RegExp. Tested against each log line independently — the same model as `grep`."),
20
+ caseInsensitive: z
21
+ .boolean()
22
+ .default(false)
23
+ .describe("Equivalent to grep -i. Default false."),
24
+ invertMatch: z
25
+ .boolean()
26
+ .default(false)
27
+ .describe("Equivalent to grep -v: return lines that do NOT match. Default false."),
28
+ fixedString: z
29
+ .boolean()
30
+ .default(false)
31
+ .describe("Equivalent to grep -F: treat pattern as a literal substring, not a regex. Use this when grepping for text containing regex metacharacters. Default false."),
32
+ beforeContext: z
33
+ .number()
34
+ .int()
35
+ .min(0)
36
+ .max(MAX_CONTEXT)
37
+ .default(0)
38
+ .describe(`Equivalent to grep -B: lines of preceding context to include with each match. Capped at ${MAX_CONTEXT}.`),
39
+ afterContext: z
40
+ .number()
41
+ .int()
42
+ .min(0)
43
+ .max(MAX_CONTEXT)
44
+ .default(0)
45
+ .describe(`Equivalent to grep -A: lines of trailing context to include with each match. Capped at ${MAX_CONTEXT}.`),
46
+ maxCount: z
47
+ .number()
48
+ .int()
49
+ .min(1)
50
+ .max(MAX_COUNT_HARD_CAP)
51
+ .default(100)
52
+ .describe(`Equivalent to grep -m: stop returning matches after this many. totalMatches in the response still reflects the true count across the whole log. Hard cap ${MAX_COUNT_HARD_CAP}.`),
53
+ };
54
+ export function registerGrepTaskLogTool(server) {
55
+ server.registerTool("grep_task_log", {
56
+ title: "Grep an Octopus task activity log",
57
+ description: `Search a server task's activity log with grep-style semantics. Returns only matching lines (with optional symmetric context windows). This is the canonical way to inspect task logs — there is no full-log resource URI, because exposing one would tempt callers to inhale multi-megabyte bodies when grep is almost always the better primitive.
58
+
59
+ Use this when you know what to look for (a specific error string, a step name, a pattern). For structured access to the activity tree (step hierarchy, categories, timing) use the octopus://spaces/{spaceName}/tasks/{taskId}/details resource instead.
60
+
61
+ Parameter conventions mirror GNU grep so the schema is self-explanatory:
62
+ - pattern (regex by default; set fixedString:true for literal text)
63
+ - caseInsensitive (-i)
64
+ - invertMatch (-v)
65
+ - fixedString (-F)
66
+ - beforeContext (-B)
67
+ - afterContext (-A)
68
+ - maxCount (-m)
69
+
70
+ Response includes totalMatches (true count across the whole log), totalLines, the matched lines with 1-indexed lineNumber, optional before/after context arrays, and a taskDetailsResourceUri for the structured fall-through.`,
71
+ inputSchema,
72
+ annotations: READ_ONLY_TOOL_ANNOTATIONS,
73
+ }, async (args) => {
74
+ const params = args;
75
+ const { spaceName, taskId } = params;
76
+ validateEntityId(taskId, "task", ENTITY_PREFIXES.task);
77
+ try {
78
+ const client = await Client.create(getClientConfigurationFromEnvironment());
79
+ const rawLog = await new SpaceServerTaskRepository(client, spaceName).getRaw(taskId);
80
+ const { totalLines, totalMatches, matches } = grepLines(rawLog, params);
81
+ const result = {
82
+ spaceName,
83
+ taskId,
84
+ pattern: params.pattern,
85
+ totalLines,
86
+ totalMatches,
87
+ returnedMatches: matches.length,
88
+ truncated: totalMatches > matches.length,
89
+ matches,
90
+ taskDetailsResourceUri: `octopus://spaces/${encodeURIComponent(spaceName)}/tasks/${encodeURIComponent(taskId)}/details`,
91
+ };
92
+ return {
93
+ content: [
94
+ {
95
+ type: "text",
96
+ text: JSON.stringify(result),
97
+ },
98
+ ],
99
+ };
100
+ }
101
+ catch (error) {
102
+ handleOctopusApiError(error, {
103
+ entityType: "task",
104
+ entityId: taskId,
105
+ spaceName,
106
+ helpText: "Use find_releases or list_deployments to discover task IDs via their parent entity. Use get_task_from_url to resolve a task ID from an Octopus portal URL.",
107
+ });
108
+ }
109
+ });
110
+ }
111
+ registerToolDefinition({
112
+ toolName: "grep_task_log",
113
+ config: { toolset: "tasks", readOnly: true },
114
+ registerFn: registerGrepTaskLogTool,
115
+ });
116
+ //# sourceMappingURL=grepTaskLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grepTaskLog.js","sourceRoot":"","sources":["../../src/tools/grepTaskLog.ts"],"names":[],"mappings":"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"}
@@ -4,26 +4,30 @@ import "./listSpaces.js";
4
4
  import "./listProjects.js";
5
5
  import "./listEnvironments.js";
6
6
  import "./listDeployments.js";
7
- import "./getReleaseById.js";
8
- import "./listReleases.js";
9
- import "./listReleasesForProject.js";
10
- import "./getTaskById.js";
11
- import "./getTaskDetails.js";
12
- import "./getTaskRaw.js";
13
- import "./listTenants.js";
14
- import "./getTenantById.js";
15
7
  import "./getTenantVariables.js";
16
8
  import "./getMissingTenantVariables.js";
17
9
  import "./getKubernetesLiveStatus.js";
18
- import "./listDeploymentTargets.js";
19
- import './getDeploymentTarget.js';
20
- import './getDeploymentProcess.js';
21
- import './getBranches.js';
22
- import './getCurrentUser.js';
23
- import './listCertificates.js';
24
- import './getCertificate.js';
25
- import './listAccounts.js';
26
- import './getAccount.js';
27
- import './getVariables.js';
10
+ import "./getDeploymentProcess.js";
11
+ import "./getBranches.js";
12
+ import "./getCurrentUser.js";
13
+ import "./getVariables.js";
14
+ import "./getTaskFromUrl.js";
15
+ import "./getDeploymentFromUrl.js";
16
+ import "./findReleases.js";
17
+ import "./findRunbooks.js";
18
+ import "./findTenants.js";
19
+ import "./findDeploymentTargets.js";
20
+ import "./findCertificates.js";
21
+ import "./findAccounts.js";
22
+ import "./findInterruptions.js";
23
+ import "./findFeatureToggles.js";
24
+ import "./updateFeatureToggle.js";
25
+ import "./createRelease.js";
26
+ import "./deployRelease.js";
27
+ import "./runRunbook.js";
28
+ import "./grepTaskLog.js";
29
+ import "./grepLlmsTxt.js";
30
+ import "./execute.js";
31
+ import "./readResource.js";
28
32
  export declare function registerTools(server: McpServer, config?: ToolsetConfig): void;
29
33
  //# 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;AAC7B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAwB3B,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,yBAAyB,CAAC;AACjC,OAAO,gCAAgC,CAAC;AACxC,OAAO,8BAA8B,CAAC;AACtC,OAAO,2BAA2B,CAAC;AACnC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,2BAA2B,CAAC;AAGnC,OAAO,mBAAmB,CAAC;AAC3B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,4BAA4B,CAAC;AACpC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,wBAAwB,CAAC;AAGhC,OAAO,yBAAyB,CAAC;AACjC,OAAO,0BAA0B,CAAC;AAGlC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,iBAAiB,CAAC;AAGzB,OAAO,kBAAkB,CAAC;AAG1B,OAAO,kBAAkB,CAAC;AAG1B,OAAO,cAAc,CAAC;AAGtB,OAAO,mBAAmB,CAAC;AA8B3B,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,GAAE,aAAkB,QAO1E"}
@@ -1,31 +1,42 @@
1
1
  import {} from "@modelcontextprotocol/sdk/server/mcp.js";
2
- import { TOOL_REGISTRY, DEFAULT_TOOLSETS } from "../types/toolConfig.js";
2
+ import { TOOL_REGISTRY, DEFAULT_TOOLSETS, } from "../types/toolConfig.js";
3
3
  // Import all tool files to trigger their self-registration
4
4
  import "./listSpaces.js";
5
5
  import "./listProjects.js";
6
6
  import "./listEnvironments.js";
7
7
  import "./listDeployments.js";
8
- import "./getReleaseById.js";
9
- import "./listReleases.js";
10
- import "./listReleasesForProject.js";
11
- import "./getTaskById.js";
12
- import "./getTaskDetails.js";
13
- import "./getTaskRaw.js";
14
- import "./listTenants.js";
15
- import "./getTenantById.js";
16
8
  import "./getTenantVariables.js";
17
9
  import "./getMissingTenantVariables.js";
18
10
  import "./getKubernetesLiveStatus.js";
19
- import "./listDeploymentTargets.js";
20
- import './getDeploymentTarget.js';
21
- import './getDeploymentProcess.js';
22
- import './getBranches.js';
23
- import './getCurrentUser.js';
24
- import './listCertificates.js';
25
- import './getCertificate.js';
26
- import './listAccounts.js';
27
- import './getAccount.js';
28
- import './getVariables.js';
11
+ import "./getDeploymentProcess.js";
12
+ import "./getBranches.js";
13
+ import "./getCurrentUser.js";
14
+ import "./getVariables.js";
15
+ import "./getTaskFromUrl.js";
16
+ import "./getDeploymentFromUrl.js";
17
+ // Unified Find endpoints (replacing separate list/get pairs)
18
+ import "./findReleases.js";
19
+ import "./findRunbooks.js";
20
+ import "./findTenants.js";
21
+ import "./findDeploymentTargets.js";
22
+ import "./findCertificates.js";
23
+ import "./findAccounts.js";
24
+ import "./findInterruptions.js";
25
+ // Feature toggles
26
+ import "./findFeatureToggles.js";
27
+ import "./updateFeatureToggle.js";
28
+ // Write operations
29
+ import "./createRelease.js";
30
+ import "./deployRelease.js";
31
+ import "./runRunbook.js";
32
+ // Task log search
33
+ import "./grepTaskLog.js";
34
+ // API catalog search (llms.txt)
35
+ import "./grepLlmsTxt.js";
36
+ // REST backstop with hard read/write/delete gating
37
+ import "./execute.js";
38
+ // Resource backstop for clients without native MCP resource support
39
+ import "./readResource.js";
29
40
  function isToolEnabled(toolRegistration, config) {
30
41
  if (!toolRegistration) {
31
42
  return false;
@@ -33,8 +44,9 @@ function isToolEnabled(toolRegistration, config) {
33
44
  // Check if toolset is enabled
34
45
  const enabledToolsets = config.enabledToolsets === "all"
35
46
  ? DEFAULT_TOOLSETS
36
- : (config.enabledToolsets || DEFAULT_TOOLSETS);
37
- if (toolRegistration.config.toolset !== "core" && !enabledToolsets.includes(toolRegistration.config.toolset)) {
47
+ : config.enabledToolsets || DEFAULT_TOOLSETS;
48
+ if (toolRegistration.config.toolset !== "core" &&
49
+ !enabledToolsets.includes(toolRegistration.config.toolset)) {
38
50
  return false;
39
51
  }
40
52
  // Check read-only mode
@@ -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;AAC7B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAE3B,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,GAEjB,MAAM,wBAAwB,CAAC;AAEhC,2DAA2D;AAC3D,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,yBAAyB,CAAC;AACjC,OAAO,gCAAgC,CAAC;AACxC,OAAO,8BAA8B,CAAC;AACtC,OAAO,2BAA2B,CAAC;AACnC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,2BAA2B,CAAC;AAEnC,6DAA6D;AAC7D,OAAO,mBAAmB,CAAC;AAC3B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,4BAA4B,CAAC;AACpC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,wBAAwB,CAAC;AAEhC,kBAAkB;AAClB,OAAO,yBAAyB,CAAC;AACjC,OAAO,0BAA0B,CAAC;AAElC,mBAAmB;AACnB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,iBAAiB,CAAC;AAEzB,kBAAkB;AAClB,OAAO,kBAAkB,CAAC;AAE1B,gCAAgC;AAChC,OAAO,kBAAkB,CAAC;AAE1B,mDAAmD;AACnD,OAAO,cAAc,CAAC;AAEtB,oEAAoE;AACpE,OAAO,mBAAmB,CAAC;AAC3B,SAAS,aAAa,CACpB,gBAAkC,EAClC,MAAqB;IAErB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8BAA8B;IAC9B,MAAM,eAAe,GACnB,MAAM,CAAC,eAAe,KAAK,KAAK;QAC9B,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,MAAM,CAAC,eAAe,IAAI,gBAAgB,CAAC;IAEjD,IACE,gBAAgB,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM;QAC1C,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAC1D,CAAC;QACD,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"}