@octopusdeploy/mcp-server 1.1.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/README.md +202 -47
  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 +3 -0
  7. package/dist/helpers/errorHandling.d.ts.map +1 -1
  8. package/dist/helpers/errorHandling.js +4 -1
  9. package/dist/helpers/errorHandling.js.map +1 -1
  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 +20 -4
  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/stripLinks.d.ts +15 -0
  39. package/dist/helpers/stripLinks.d.ts.map +1 -0
  40. package/dist/helpers/stripLinks.js +19 -0
  41. package/dist/helpers/stripLinks.js.map +1 -0
  42. package/dist/helpers/userCache.d.ts +14 -0
  43. package/dist/helpers/userCache.d.ts.map +1 -0
  44. package/dist/helpers/userCache.js +16 -0
  45. package/dist/helpers/userCache.js.map +1 -0
  46. package/dist/helpers/validateExecutePath.d.ts +29 -0
  47. package/dist/helpers/validateExecutePath.d.ts.map +1 -0
  48. package/dist/helpers/validateExecutePath.js +62 -0
  49. package/dist/helpers/validateExecutePath.js.map +1 -0
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +58 -9
  52. package/dist/index.js.map +1 -1
  53. package/dist/resources/catalog/capabilities.d.ts +36 -0
  54. package/dist/resources/catalog/capabilities.d.ts.map +1 -0
  55. package/dist/resources/catalog/capabilities.js +89 -0
  56. package/dist/resources/catalog/capabilities.js.map +1 -0
  57. package/dist/resources/catalog/llmsTxt.d.ts +8 -0
  58. package/dist/resources/catalog/llmsTxt.d.ts.map +1 -0
  59. package/dist/resources/catalog/llmsTxt.js +44 -0
  60. package/dist/resources/catalog/llmsTxt.js.map +1 -0
  61. package/dist/resources/dispatch.d.ts +30 -0
  62. package/dist/resources/dispatch.d.ts.map +1 -0
  63. package/dist/resources/dispatch.js +81 -0
  64. package/dist/resources/dispatch.js.map +1 -0
  65. package/dist/resources/featureToggle.d.ts +2 -0
  66. package/dist/resources/featureToggle.d.ts.map +1 -0
  67. package/dist/resources/featureToggle.js +34 -0
  68. package/dist/resources/featureToggle.js.map +1 -0
  69. package/dist/resources/index.d.ts +12 -0
  70. package/dist/resources/index.d.ts.map +1 -0
  71. package/dist/resources/index.js +44 -0
  72. package/dist/resources/index.js.map +1 -0
  73. package/dist/resources/interruption.d.ts +2 -0
  74. package/dist/resources/interruption.d.ts.map +1 -0
  75. package/dist/resources/interruption.js +34 -0
  76. package/dist/resources/interruption.js.map +1 -0
  77. package/dist/resources/release.d.ts +2 -0
  78. package/dist/resources/release.d.ts.map +1 -0
  79. package/dist/resources/release.js +33 -0
  80. package/dist/resources/release.js.map +1 -0
  81. package/dist/resources/rolloutGroup.d.ts +2 -0
  82. package/dist/resources/rolloutGroup.d.ts.map +1 -0
  83. package/dist/resources/rolloutGroup.js +35 -0
  84. package/dist/resources/rolloutGroup.js.map +1 -0
  85. package/dist/resources/runbook.d.ts +2 -0
  86. package/dist/resources/runbook.d.ts.map +1 -0
  87. package/dist/resources/runbook.js +34 -0
  88. package/dist/resources/runbook.js.map +1 -0
  89. package/dist/resources/task.d.ts +2 -0
  90. package/dist/resources/task.d.ts.map +1 -0
  91. package/dist/resources/task.js +68 -0
  92. package/dist/resources/task.js.map +1 -0
  93. package/dist/tools/createRelease.d.ts.map +1 -1
  94. package/dist/tools/createRelease.js +93 -50
  95. package/dist/tools/createRelease.js.map +1 -1
  96. package/dist/tools/deployRelease.d.ts.map +1 -1
  97. package/dist/tools/deployRelease.js +117 -97
  98. package/dist/tools/deployRelease.js.map +1 -1
  99. package/dist/tools/execute.d.ts +3 -0
  100. package/dist/tools/execute.d.ts.map +1 -0
  101. package/dist/tools/execute.js +262 -0
  102. package/dist/tools/execute.js.map +1 -0
  103. package/dist/tools/findAccounts.d.ts.map +1 -1
  104. package/dist/tools/findAccounts.js +15 -12
  105. package/dist/tools/findAccounts.js.map +1 -1
  106. package/dist/tools/findCertificates.d.ts.map +1 -1
  107. package/dist/tools/findCertificates.js +19 -16
  108. package/dist/tools/findCertificates.js.map +1 -1
  109. package/dist/tools/findDeploymentTargets.d.ts.map +1 -1
  110. package/dist/tools/findDeploymentTargets.js +26 -23
  111. package/dist/tools/findDeploymentTargets.js.map +1 -1
  112. package/dist/tools/findFeatureToggles.d.ts +37 -0
  113. package/dist/tools/findFeatureToggles.d.ts.map +1 -0
  114. package/dist/tools/findFeatureToggles.js +139 -0
  115. package/dist/tools/findFeatureToggles.js.map +1 -0
  116. package/dist/tools/findInterruptions.d.ts +79 -0
  117. package/dist/tools/findInterruptions.d.ts.map +1 -0
  118. package/dist/tools/findInterruptions.js +273 -0
  119. package/dist/tools/findInterruptions.js.map +1 -0
  120. package/dist/tools/findReleases.d.ts.map +1 -1
  121. package/dist/tools/findReleases.js +90 -48
  122. package/dist/tools/findReleases.js.map +1 -1
  123. package/dist/tools/findRunbooks.d.ts +3 -0
  124. package/dist/tools/findRunbooks.d.ts.map +1 -0
  125. package/dist/tools/findRunbooks.js +139 -0
  126. package/dist/tools/findRunbooks.js.map +1 -0
  127. package/dist/tools/findTenants.d.ts.map +1 -1
  128. package/dist/tools/findTenants.js +28 -25
  129. package/dist/tools/findTenants.js.map +1 -1
  130. package/dist/tools/getBranches.d.ts.map +1 -1
  131. package/dist/tools/getBranches.js +13 -10
  132. package/dist/tools/getBranches.js.map +1 -1
  133. package/dist/tools/getCurrentUser.d.ts.map +1 -1
  134. package/dist/tools/getCurrentUser.js +7 -4
  135. package/dist/tools/getCurrentUser.js.map +1 -1
  136. package/dist/tools/getDeploymentFromUrl.d.ts +8 -3
  137. package/dist/tools/getDeploymentFromUrl.d.ts.map +1 -1
  138. package/dist/tools/getDeploymentFromUrl.js +46 -18
  139. package/dist/tools/getDeploymentFromUrl.js.map +1 -1
  140. package/dist/tools/getDeploymentProcess.d.ts.map +1 -1
  141. package/dist/tools/getDeploymentProcess.js +26 -23
  142. package/dist/tools/getDeploymentProcess.js.map +1 -1
  143. package/dist/tools/getKubernetesLiveStatus.d.ts.map +1 -1
  144. package/dist/tools/getKubernetesLiveStatus.js +13 -10
  145. package/dist/tools/getKubernetesLiveStatus.js.map +1 -1
  146. package/dist/tools/getMissingTenantVariables.d.ts.map +1 -1
  147. package/dist/tools/getMissingTenantVariables.js +13 -10
  148. package/dist/tools/getMissingTenantVariables.js.map +1 -1
  149. package/dist/tools/getTaskFromUrl.d.ts +2 -3
  150. package/dist/tools/getTaskFromUrl.d.ts.map +1 -1
  151. package/dist/tools/getTaskFromUrl.js +33 -33
  152. package/dist/tools/getTaskFromUrl.js.map +1 -1
  153. package/dist/tools/getTenantVariables.d.ts.map +1 -1
  154. package/dist/tools/getTenantVariables.js +13 -10
  155. package/dist/tools/getTenantVariables.js.map +1 -1
  156. package/dist/tools/getVariables.d.ts.map +1 -1
  157. package/dist/tools/getVariables.js +12 -9
  158. package/dist/tools/getVariables.js.map +1 -1
  159. package/dist/tools/grepLlmsTxt.d.ts +13 -0
  160. package/dist/tools/grepLlmsTxt.d.ts.map +1 -0
  161. package/dist/tools/grepLlmsTxt.js +105 -0
  162. package/dist/tools/grepLlmsTxt.js.map +1 -0
  163. package/dist/tools/grepTaskLog.d.ts +30 -0
  164. package/dist/tools/grepTaskLog.d.ts.map +1 -0
  165. package/dist/tools/grepTaskLog.js +116 -0
  166. package/dist/tools/grepTaskLog.js.map +1 -0
  167. package/dist/tools/index.d.ts +11 -5
  168. package/dist/tools/index.d.ts.map +1 -1
  169. package/dist/tools/index.js +21 -7
  170. package/dist/tools/index.js.map +1 -1
  171. package/dist/tools/listDeployments.d.ts.map +1 -1
  172. package/dist/tools/listDeployments.js +22 -13
  173. package/dist/tools/listDeployments.js.map +1 -1
  174. package/dist/tools/listEnvironments.d.ts.map +1 -1
  175. package/dist/tools/listEnvironments.js +12 -9
  176. package/dist/tools/listEnvironments.js.map +1 -1
  177. package/dist/tools/listProjects.d.ts.map +1 -1
  178. package/dist/tools/listProjects.js +10 -7
  179. package/dist/tools/listProjects.js.map +1 -1
  180. package/dist/tools/listSpaces.d.ts.map +1 -1
  181. package/dist/tools/listSpaces.js +9 -6
  182. package/dist/tools/listSpaces.js.map +1 -1
  183. package/dist/tools/readResource.d.ts +3 -0
  184. package/dist/tools/readResource.d.ts.map +1 -0
  185. package/dist/tools/readResource.js +50 -0
  186. package/dist/tools/readResource.js.map +1 -0
  187. package/dist/tools/runRunbook.d.ts +3 -0
  188. package/dist/tools/runRunbook.d.ts.map +1 -0
  189. package/dist/tools/runRunbook.js +174 -0
  190. package/dist/tools/runRunbook.js.map +1 -0
  191. package/dist/tools/updateFeatureToggle.d.ts +94 -0
  192. package/dist/tools/updateFeatureToggle.d.ts.map +1 -0
  193. package/dist/tools/updateFeatureToggle.js +308 -0
  194. package/dist/tools/updateFeatureToggle.js.map +1 -0
  195. package/dist/types/featureToggleTypes.d.ts +47 -0
  196. package/dist/types/featureToggleTypes.d.ts.map +1 -0
  197. package/dist/types/featureToggleTypes.js +10 -0
  198. package/dist/types/featureToggleTypes.js.map +1 -0
  199. package/dist/types/resourceConfig.d.ts +17 -0
  200. package/dist/types/resourceConfig.d.ts.map +1 -0
  201. package/dist/types/resourceConfig.js +6 -0
  202. package/dist/types/resourceConfig.js.map +1 -0
  203. package/dist/types/toolAnnotations.d.ts +8 -0
  204. package/dist/types/toolAnnotations.d.ts.map +1 -0
  205. package/dist/types/toolAnnotations.js +28 -0
  206. package/dist/types/toolAnnotations.js.map +1 -0
  207. package/dist/types/toolConfig.d.ts +15 -1
  208. package/dist/types/toolConfig.d.ts.map +1 -1
  209. package/dist/types/toolConfig.js +4 -1
  210. package/dist/types/toolConfig.js.map +1 -1
  211. package/dist/utils/parseConfig.d.ts +1 -1
  212. package/dist/utils/parseConfig.d.ts.map +1 -1
  213. package/dist/utils/parseConfig.js +3 -2
  214. package/dist/utils/parseConfig.js.map +1 -1
  215. package/package.json +4 -4
  216. package/dist/tools/getTaskById.d.ts +0 -9
  217. package/dist/tools/getTaskById.d.ts.map +0 -1
  218. package/dist/tools/getTaskById.js +0 -51
  219. package/dist/tools/getTaskById.js.map +0 -1
  220. package/dist/tools/getTaskDetails.d.ts +0 -9
  221. package/dist/tools/getTaskDetails.d.ts.map +0 -1
  222. package/dist/tools/getTaskDetails.js +0 -65
  223. package/dist/tools/getTaskDetails.js.map +0 -1
  224. package/dist/tools/getTaskRaw.d.ts +0 -9
  225. package/dist/tools/getTaskRaw.d.ts.map +0 -1
  226. package/dist/tools/getTaskRaw.js +0 -50
  227. package/dist/tools/getTaskRaw.js.map +0 -1
  228. package/dist/tools/listReleasesForProject.d.ts +0 -3
  229. package/dist/tools/listReleasesForProject.d.ts.map +0 -1
  230. package/dist/tools/listReleasesForProject.js +0 -60
  231. package/dist/tools/listReleasesForProject.js.map +0 -1
@@ -3,16 +3,19 @@ import { z } from "zod";
3
3
  import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
4
4
  import {} from "@modelcontextprotocol/sdk/server/mcp.js";
5
5
  import { registerToolDefinition } from "../types/toolConfig.js";
6
+ import { READ_ONLY_TOOL_ANNOTATIONS } from "../types/toolAnnotations.js";
6
7
  import { spacesDescription } from "../types/spaceTypes.js";
7
8
  import { handleOctopusApiError } from "../helpers/errorHandling.js";
8
9
  export function registerListSpacesTool(server) {
9
- server.tool("list_spaces", `List all spaces in the Octopus Deploy instance. ${spacesDescription} Always use this tool first to check that the requested space exists.`, {
10
- partialName: z.string().optional(),
11
- skip: z.number().optional(),
12
- take: z.number().optional(),
13
- }, {
10
+ server.registerTool("list_spaces", {
14
11
  title: "List all spaces in an Octopus Deploy instance",
15
- readOnlyHint: true,
12
+ description: `List all spaces in the Octopus Deploy instance. ${spacesDescription} Always use this tool first to check that the requested space exists.`,
13
+ inputSchema: {
14
+ partialName: z.string().optional(),
15
+ skip: z.number().optional(),
16
+ take: z.number().optional(),
17
+ },
18
+ annotations: READ_ONLY_TOOL_ANNOTATIONS,
16
19
  }, async ({ partialName, skip, take }) => {
17
20
  try {
18
21
  const configuration = getClientConfigurationFromEnvironment();
@@ -1 +1 @@
1
- {"version":3,"file":"listSpaces.js","sourceRoot":"","sources":["../../src/tools/listSpaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qCAAqC,EAAE,MAAM,qDAAqD,CAAC;AAC5G,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,IAAI,CACT,aAAa,EACb,mDAAmD,iBAAiB,uEAAuE,EAC3I;QACE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC5B,EACD;QACE,KAAK,EAAE,+CAA+C;QACtD,YAAY,EAAE,IAAI;KACnB,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QACpC,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,qCAAqC,EAAE,CAAC;YAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAClD,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;YAEpD,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC;gBAChD,WAAW;gBACX,IAAI;gBACJ,IAAI;aACL,CAAC,CAAC;YAEH,IAAI,cAAc,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,WAAW;oBACzB,CAAC,CAAC,6BAA6B,WAAW,oCAAoC;oBAC9E,CAAC,CAAC,yEAAyE,CAAC;gBAE9E,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,OAAO;yBACd;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,YAAY,EAAE,cAAc,CAAC,YAAY;4BACzC,YAAY,EAAE,cAAc,CAAC,YAAY;4BACzC,aAAa,EAAE,cAAc,CAAC,aAAa;4BAC3C,cAAc,EAAE,cAAc,CAAC,cAAc;4BAC7C,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gCAC1C,EAAE,EAAE,KAAK,CAAC,EAAE;gCACZ,IAAI,EAAE,KAAK,CAAC,IAAI;gCAChB,WAAW,EAAE,KAAK,CAAC,WAAW;gCAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;gCAC1B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;6BACzC,CAAC,CAAC;yBACJ,CAAC;qBACH;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,aAAa;IACvB,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,UAAU,EAAE,sBAAsB;CACnC,CAAC,CAAC"}
1
+ {"version":3,"file":"listSpaces.js","sourceRoot":"","sources":["../../src/tools/listSpaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerReadResourceTool(server: McpServer): void;
3
+ //# sourceMappingURL=readResource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readResource.d.ts","sourceRoot":"","sources":["../../src/tools/readResource.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,QA8CzD"}
@@ -0,0 +1,50 @@
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 { dispatchOctopusUri } from "../resources/dispatch.js";
6
+ export function registerReadResourceTool(server) {
7
+ server.registerTool("read_resource", {
8
+ title: "Read an Octopus resource by URI",
9
+ description: `Universal fetch for any 'octopus://' URI returned by any other tool. Use this whenever you see fields like 'resourceUri' or 'taskResourceUri' in a response and need the full body.
10
+
11
+ How to use:
12
+ - Pass the URI string verbatim. Examples: 'octopus://spaces/Default/releases/Releases-42', 'octopus://spaces/Default/tasks/ServerTasks-7', 'octopus://spaces/Default/tasks/ServerTasks-7/details'.
13
+ - The response 'mimeType' tells you how to interpret 'text': 'application/json' → parse as JSON.
14
+
15
+ This tool is the backstop for clients that do not natively implement the MCP 'resources/read' primitive. Clients that DO support resources/read (Claude Code, MCP Inspector) can call it directly and skip this tool. Either path returns byte-identical bodies.
16
+
17
+ Tools that return resource URIs include: find_releases, get_deployment_from_url, get_task_from_url, and others. When in doubt, call read_resource on any 'octopus://' string you encounter.
18
+
19
+ Note: there is intentionally no octopus://...tasks/{id}/log resource. Call the grep_task_log tool to search task logs without inhaling the full body.`,
20
+ inputSchema: {
21
+ uri: z
22
+ .string()
23
+ .describe("Any 'octopus://...' URI returned by another tool (e.g. in the resourceUri or taskResourceUri field)."),
24
+ },
25
+ annotations: READ_ONLY_TOOL_ANNOTATIONS,
26
+ }, async ({ uri }) => {
27
+ const payload = await dispatchOctopusUri(uri);
28
+ if (payload === null) {
29
+ throw new Error(`Unrecognised resource URI '${uri}'.`);
30
+ }
31
+ return {
32
+ content: [
33
+ {
34
+ type: "text",
35
+ text: JSON.stringify({
36
+ uri,
37
+ mimeType: payload.mimeType,
38
+ text: payload.text,
39
+ }),
40
+ },
41
+ ],
42
+ };
43
+ });
44
+ }
45
+ registerToolDefinition({
46
+ toolName: "read_resource",
47
+ config: { toolset: "core", readOnly: true },
48
+ registerFn: registerReadResourceTool,
49
+ });
50
+ //# sourceMappingURL=readResource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readResource.js","sourceRoot":"","sources":["../../src/tools/readResource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,iCAAiC;QACxC,WAAW,EAAE;;;;;;;;;;sJAUmI;QAChJ,WAAW,EAAE;YACX,GAAG,EAAE,CAAC;iBACH,MAAM,EAAE;iBACR,QAAQ,CACP,sGAAsG,CACvG;SACJ;QACD,WAAW,EAAE,0BAA0B;KACxC,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QAChB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAE9C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,IAAI,CAAC,CAAC;QACzD,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,GAAG;wBACH,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;qBACnB,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,sBAAsB,CAAC;IACrB,QAAQ,EAAE,eAAe;IACzB,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,UAAU,EAAE,wBAAwB;CACrC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerRunRunbookTool(server: McpServer): void;
3
+ //# sourceMappingURL=runRunbook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runRunbook.d.ts","sourceRoot":"","sources":["../../src/tools/runRunbook.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,QA+MvD"}
@@ -0,0 +1,174 @@
1
+ import { Client, RunbookRunRepository } 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 { DESTRUCTIVE_WRITE_TOOL_ANNOTATIONS } from "../types/toolAnnotations.js";
7
+ import { handleOctopusApiError } from "../helpers/errorHandling.js";
8
+ import { requireConfirmation, unconfirmedResponse, } from "../helpers/requireConfirmation.js";
9
+ export function registerRunRunbookTool(server) {
10
+ server.registerTool("run_runbook", {
11
+ title: "Run a runbook in Octopus Deploy",
12
+ description: `Run a runbook against one or more environments in Octopus Deploy
13
+
14
+ Runbooks execute operational processes (DB backups, smoke tests, environment refresh, etc.) against the specified environments. By default the published snapshot is used; pass runbookSnapshotId to run a specific snapshot. For tenanted runs, supply tenants and/or tenantTags.`,
15
+ inputSchema: {
16
+ spaceName: z.string().describe("The space name"),
17
+ projectName: z.string().describe("The project name"),
18
+ runbookName: z
19
+ .string()
20
+ .describe("The runbook name (within the project)"),
21
+ environmentNames: z
22
+ .array(z.string())
23
+ .min(1)
24
+ .describe("Array of environment names. At least one environment must be provided."),
25
+ tenants: z
26
+ .array(z.string())
27
+ .optional()
28
+ .describe("Array of tenant names for tenanted runs (optional)"),
29
+ tenantTags: z
30
+ .array(z.string())
31
+ .optional()
32
+ .describe("Array of tenant tags for tenanted runs (e.g., ['Region/US-West', 'Tier/Production'])"),
33
+ runbookSnapshotId: z
34
+ .string()
35
+ .optional()
36
+ .describe("Specific snapshot ID. Defaults to the runbook's published snapshot if omitted."),
37
+ promptedVariableValues: z
38
+ .record(z.string())
39
+ .optional()
40
+ .describe("Prompted variable values as key-value pairs"),
41
+ useGuidedFailure: z
42
+ .boolean()
43
+ .optional()
44
+ .describe("Use guided failure mode"),
45
+ forcePackageDownload: z
46
+ .boolean()
47
+ .optional()
48
+ .describe("Force package download"),
49
+ specificMachineNames: z
50
+ .array(z.string())
51
+ .optional()
52
+ .describe("Run on specific machines only"),
53
+ excludedMachineNames: z
54
+ .array(z.string())
55
+ .optional()
56
+ .describe("Exclude specific machines from the run"),
57
+ skipStepNames: z
58
+ .array(z.string())
59
+ .optional()
60
+ .describe("Skip specific runbook steps"),
61
+ runAt: z
62
+ .string()
63
+ .optional()
64
+ .describe("Schedule run for later (ISO 8601 date string)"),
65
+ noRunAfter: z
66
+ .string()
67
+ .optional()
68
+ .describe("Don't run after this time (ISO 8601 date string)"),
69
+ confirm: z
70
+ .boolean()
71
+ .optional()
72
+ .describe("Required only when the MCP client does not support elicitation. Set to true to confirm the run; otherwise the tool aborts."),
73
+ },
74
+ annotations: DESTRUCTIVE_WRITE_TOOL_ANNOTATIONS,
75
+ }, async ({ spaceName, projectName, runbookName, environmentNames, tenants, tenantTags, runbookSnapshotId, promptedVariableValues, useGuidedFailure, forcePackageDownload, specificMachineNames, excludedMachineNames, skipStepNames, runAt, noRunAfter, confirm, }) => {
76
+ try {
77
+ const isTenanted = (tenants && tenants.length > 0) ||
78
+ (tenantTags && tenantTags.length > 0);
79
+ const tenantSummary = isTenanted
80
+ ? ` for tenants [${(tenants ?? []).join(", ")}${tenantTags?.length ? `; tags: ${tenantTags.join(", ")}` : ""}]`
81
+ : "";
82
+ const confirmMessage = `Run runbook ${runbookName} of ${projectName} in ` +
83
+ `[${environmentNames.join(", ")}]${tenantSummary} in space ${spaceName}?`;
84
+ const command = {
85
+ spaceName: spaceName,
86
+ ProjectName: projectName,
87
+ RunbookName: runbookName,
88
+ EnvironmentNames: environmentNames,
89
+ ...(tenants && { Tenants: tenants }),
90
+ ...(tenantTags && { TenantTags: tenantTags }),
91
+ ...(runbookSnapshotId && { Snapshot: runbookSnapshotId }),
92
+ ...(promptedVariableValues && { Variables: promptedVariableValues }),
93
+ ...(useGuidedFailure !== undefined && {
94
+ UseGuidedFailure: useGuidedFailure,
95
+ }),
96
+ ...(forcePackageDownload !== undefined && {
97
+ ForcePackageDownload: forcePackageDownload,
98
+ }),
99
+ ...(specificMachineNames && {
100
+ SpecificMachineNames: specificMachineNames,
101
+ }),
102
+ ...(excludedMachineNames && {
103
+ ExcludedMachineNames: excludedMachineNames,
104
+ }),
105
+ ...(skipStepNames && { SkipStepNames: skipStepNames }),
106
+ ...(runAt && { RunAt: new Date(runAt) }),
107
+ ...(noRunAfter && { NoRunAfter: new Date(noRunAfter) }),
108
+ };
109
+ const confirmation = await requireConfirmation(server, {
110
+ message: confirmMessage,
111
+ fallbackConfirm: confirm,
112
+ change: { source: {}, target: command },
113
+ });
114
+ if (!confirmation.confirmed) {
115
+ return unconfirmedResponse(confirmation, { action: "runbook run" });
116
+ }
117
+ const configuration = getClientConfigurationFromEnvironment();
118
+ const client = await Client.create(configuration);
119
+ const runbookRunRepository = new RunbookRunRepository(client, spaceName);
120
+ const response = await runbookRunRepository.create(command);
121
+ const tasks = response.RunbookRunServerTasks || [];
122
+ const encodedSpace = encodeURIComponent(spaceName);
123
+ return {
124
+ content: [
125
+ {
126
+ type: "text",
127
+ text: JSON.stringify({
128
+ success: true,
129
+ runsCreated: tasks.length,
130
+ runbookRunTasks: tasks.map((task) => ({
131
+ taskId: task.ServerTaskId,
132
+ runbookRunId: task.RunbookRunId,
133
+ resourceUri: `octopus://spaces/${encodedSpace}/tasks/${encodeURIComponent(task.ServerTaskId)}`,
134
+ })),
135
+ message: `Successfully started ${tasks.length} runbook run(s) for ${runbookName}`,
136
+ helpText: `Fetch octopus://spaces/{spaceName}/tasks/{taskId} (or /details for the structured activity tree) via resources/read or read_resource to monitor run progress. To search the raw log for a specific error or step, call grep_task_log with the taskId.`,
137
+ }, null, 2),
138
+ },
139
+ ],
140
+ };
141
+ }
142
+ catch (error) {
143
+ if (error instanceof Error && !error.message.includes("octopus")) {
144
+ return {
145
+ content: [
146
+ {
147
+ type: "text",
148
+ text: JSON.stringify({
149
+ success: false,
150
+ error: error.message,
151
+ }, null, 2),
152
+ },
153
+ ],
154
+ isError: true,
155
+ };
156
+ }
157
+ handleOctopusApiError(error, {
158
+ entityType: "runbook run",
159
+ spaceName,
160
+ helpText: "Use list_projects to find valid project names, list_environments for environment names, find_tenants for tenant information. Ensure the runbook has a published snapshot (or pass an explicit runbookSnapshotId) and you have permissions to run it.",
161
+ });
162
+ }
163
+ });
164
+ }
165
+ registerToolDefinition({
166
+ toolName: "run_runbook",
167
+ config: { toolset: "runbooks", readOnly: false },
168
+ registerFn: registerRunRunbookTool,
169
+ // The api-client's RunbookRunRepository.create throws at runtime if the
170
+ // server is older than 2022.3.5512 (the Executions API minimum). Surface
171
+ // that here so --list-tools-by-version reports it accurately.
172
+ minimumOctopusVersion: "2022.3.5512",
173
+ });
174
+ //# sourceMappingURL=runRunbook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runRunbook.js","sourceRoot":"","sources":["../../src/tools/runRunbook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,qCAAqC,EAAE,MAAM,qDAAqD,CAAC;AAC5G,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,kCAAkC,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAE3C,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,iCAAiC;QACxC,WAAW,EAAE;;mRAEgQ;QAC7Q,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAChD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACpD,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,CAAC,uCAAuC,CAAC;YACpD,gBAAgB,EAAE,CAAC;iBAChB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CACP,wEAAwE,CACzE;YACH,OAAO,EAAE,CAAC;iBACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,oDAAoD,CAAC;YACjE,UAAU,EAAE,CAAC;iBACV,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CACP,sFAAsF,CACvF;YACH,iBAAiB,EAAE,CAAC;iBACjB,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,gFAAgF,CACjF;YACH,sBAAsB,EAAE,CAAC;iBACtB,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBAClB,QAAQ,EAAE;iBACV,QAAQ,CAAC,6CAA6C,CAAC;YAC1D,gBAAgB,EAAE,CAAC;iBAChB,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,yBAAyB,CAAC;YACtC,oBAAoB,EAAE,CAAC;iBACpB,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,wBAAwB,CAAC;YACrC,oBAAoB,EAAE,CAAC;iBACpB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,+BAA+B,CAAC;YAC5C,oBAAoB,EAAE,CAAC;iBACpB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,wCAAwC,CAAC;YACrD,aAAa,EAAE,CAAC;iBACb,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,6BAA6B,CAAC;YAC1C,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,+CAA+C,CAAC;YAC5D,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,kDAAkD,CAAC;YAC/D,OAAO,EAAE,CAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CACP,4HAA4H,CAC7H;SACJ;QACD,WAAW,EAAE,kCAAkC;KAChD,EACD,KAAK,EAAE,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,KAAK,EACL,UAAU,EACV,OAAO,GACR,EAAE,EAAE;QACH,IAAI,CAAC;YACH,MAAM,UAAU,GACd,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC/B,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAExC,MAAM,aAAa,GAAG,UAAU;gBAC9B,CAAC,CAAC,iBAAiB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GACzC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAC5D,GAAG;gBACL,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,cAAc,GAClB,eAAe,WAAW,OAAO,WAAW,MAAM;gBAClD,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,aAAa,SAAS,GAAG,CAAC;YAE5E,MAAM,OAAO,GAAG;gBACd,SAAS,EAAE,SAAS;gBACpB,WAAW,EAAE,WAAW;gBACxB,WAAW,EAAE,WAAW;gBACxB,gBAAgB,EAAE,gBAAgB;gBAClC,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;gBACpC,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;gBAC7C,GAAG,CAAC,iBAAiB,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;gBACzD,GAAG,CAAC,sBAAsB,IAAI,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC;gBACpE,GAAG,CAAC,gBAAgB,KAAK,SAAS,IAAI;oBACpC,gBAAgB,EAAE,gBAAgB;iBACnC,CAAC;gBACF,GAAG,CAAC,oBAAoB,KAAK,SAAS,IAAI;oBACxC,oBAAoB,EAAE,oBAAoB;iBAC3C,CAAC;gBACF,GAAG,CAAC,oBAAoB,IAAI;oBAC1B,oBAAoB,EAAE,oBAAoB;iBAC3C,CAAC;gBACF,GAAG,CAAC,oBAAoB,IAAI;oBAC1B,oBAAoB,EAAE,oBAAoB;iBAC3C,CAAC;gBACF,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;gBACtD,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxC,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;aACxD,CAAC;YAEF,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE;gBACrD,OAAO,EAAE,cAAc;gBACvB,eAAe,EAAE,OAAO;gBACxB,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;aACxC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;gBAC5B,OAAO,mBAAmB,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,aAAa,GAAG,qCAAqC,EAAE,CAAC;YAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAClD,MAAM,oBAAoB,GAAG,IAAI,oBAAoB,CACnD,MAAM,EACN,SAAS,CACV,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAE5D,MAAM,KAAK,GAAG,QAAQ,CAAC,qBAAqB,IAAI,EAAE,CAAC;YACnD,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAEnD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;4BACE,OAAO,EAAE,IAAI;4BACb,WAAW,EAAE,KAAK,CAAC,MAAM;4BACzB,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gCACpC,MAAM,EAAE,IAAI,CAAC,YAAY;gCACzB,YAAY,EAAE,IAAI,CAAC,YAAY;gCAC/B,WAAW,EAAE,oBAAoB,YAAY,UAAU,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;6BAC/F,CAAC,CAAC;4BACH,OAAO,EAAE,wBAAwB,KAAK,CAAC,MAAM,uBAAuB,WAAW,EAAE;4BACjF,QAAQ,EAAE,uPAAuP;yBAClQ,EACD,IAAI,EACJ,CAAC,CACF;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;gCACE,OAAO,EAAE,KAAK;gCACd,KAAK,EAAE,KAAK,CAAC,OAAO;6BACrB,EACD,IAAI,EACJ,CAAC,CACF;yBACF;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,qBAAqB,CAAC,KAAK,EAAE;gBAC3B,UAAU,EAAE,aAAa;gBACzB,SAAS;gBACT,QAAQ,EACN,sPAAsP;aACzP,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,sBAAsB,CAAC;IACrB,QAAQ,EAAE,aAAa;IACvB,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE;IAChD,UAAU,EAAE,sBAAsB;IAClC,wEAAwE;IACxE,yEAAyE;IACzE,8DAA8D;IAC9D,qBAAqB,EAAE,aAAa;CACrC,CAAC,CAAC"}
@@ -0,0 +1,94 @@
1
+ import { z } from "zod";
2
+ import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
+ export declare const updateFeatureToggleSchema: z.ZodEffects<z.ZodObject<{
4
+ spaceName: z.ZodString;
5
+ projectId: z.ZodString;
6
+ slug: z.ZodString;
7
+ defaultIsEnabled: z.ZodOptional<z.ZodBoolean>;
8
+ description: z.ZodOptional<z.ZodString>;
9
+ environments: z.ZodOptional<z.ZodArray<z.ZodObject<{
10
+ deploymentEnvironmentId: z.ZodString;
11
+ isEnabled: z.ZodOptional<z.ZodBoolean>;
12
+ rolloutPercentage: z.ZodOptional<z.ZodNumber>;
13
+ clientRolloutPercentage: z.ZodOptional<z.ZodNumber>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ deploymentEnvironmentId: string;
16
+ isEnabled?: boolean | undefined;
17
+ rolloutPercentage?: number | undefined;
18
+ clientRolloutPercentage?: number | undefined;
19
+ }, {
20
+ deploymentEnvironmentId: string;
21
+ isEnabled?: boolean | undefined;
22
+ rolloutPercentage?: number | undefined;
23
+ clientRolloutPercentage?: number | undefined;
24
+ }>, "many">>;
25
+ confirm: z.ZodOptional<z.ZodBoolean>;
26
+ }, "strip", z.ZodTypeAny, {
27
+ spaceName: string;
28
+ projectId: string;
29
+ slug: string;
30
+ description?: string | undefined;
31
+ environments?: {
32
+ deploymentEnvironmentId: string;
33
+ isEnabled?: boolean | undefined;
34
+ rolloutPercentage?: number | undefined;
35
+ clientRolloutPercentage?: number | undefined;
36
+ }[] | undefined;
37
+ defaultIsEnabled?: boolean | undefined;
38
+ confirm?: boolean | undefined;
39
+ }, {
40
+ spaceName: string;
41
+ projectId: string;
42
+ slug: string;
43
+ description?: string | undefined;
44
+ environments?: {
45
+ deploymentEnvironmentId: string;
46
+ isEnabled?: boolean | undefined;
47
+ rolloutPercentage?: number | undefined;
48
+ clientRolloutPercentage?: number | undefined;
49
+ }[] | undefined;
50
+ defaultIsEnabled?: boolean | undefined;
51
+ confirm?: boolean | undefined;
52
+ }>, {
53
+ spaceName: string;
54
+ projectId: string;
55
+ slug: string;
56
+ description?: string | undefined;
57
+ environments?: {
58
+ deploymentEnvironmentId: string;
59
+ isEnabled?: boolean | undefined;
60
+ rolloutPercentage?: number | undefined;
61
+ clientRolloutPercentage?: number | undefined;
62
+ }[] | undefined;
63
+ defaultIsEnabled?: boolean | undefined;
64
+ confirm?: boolean | undefined;
65
+ }, {
66
+ spaceName: string;
67
+ projectId: string;
68
+ slug: string;
69
+ description?: string | undefined;
70
+ environments?: {
71
+ deploymentEnvironmentId: string;
72
+ isEnabled?: boolean | undefined;
73
+ rolloutPercentage?: number | undefined;
74
+ clientRolloutPercentage?: number | undefined;
75
+ }[] | undefined;
76
+ defaultIsEnabled?: boolean | undefined;
77
+ confirm?: boolean | undefined;
78
+ }>;
79
+ export type UpdateFeatureToggleParams = z.infer<typeof updateFeatureToggleSchema>;
80
+ export declare function updateFeatureToggleHandler(server: McpServer, params: UpdateFeatureToggleParams): Promise<{
81
+ content: {
82
+ type: "text";
83
+ text: string;
84
+ }[];
85
+ isError: boolean;
86
+ } | {
87
+ content: {
88
+ type: "text";
89
+ text: string;
90
+ }[];
91
+ isError?: undefined;
92
+ }>;
93
+ export declare function registerUpdateFeatureToggleTool(server: McpServer): void;
94
+ //# sourceMappingURL=updateFeatureToggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateFeatureToggle.d.ts","sourceRoot":"","sources":["../../src/tools/updateFeatureToggle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwCzE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDlC,CAAC;AAEL,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAoFlF,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,yBAAyB;;;;;;;;;;;;GAkMlC;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,QAiBhE"}