@sfdxy/anypoint-connect 0.13.0 → 0.15.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 (176) hide show
  1. package/README.md +15 -10
  2. package/dist/analysis/LogAnalyzer.d.ts +1 -1
  3. package/dist/analysis/LogAnalyzer.d.ts.map +1 -1
  4. package/dist/analysis/LogAnalyzer.js +2 -2
  5. package/dist/analysis/LogAnalyzer.js.map +1 -1
  6. package/dist/analysis/error-grouper.js +1 -1
  7. package/dist/analysis/error-grouper.js.map +1 -1
  8. package/dist/analysis/{utils.d.ts → normalize.d.ts} +1 -1
  9. package/dist/analysis/normalize.d.ts.map +1 -0
  10. package/dist/analysis/{utils.js → normalize.js} +2 -2
  11. package/dist/analysis/normalize.js.map +1 -0
  12. package/dist/analysis/parser.js +14 -3
  13. package/dist/analysis/parser.js.map +1 -1
  14. package/dist/analysis/pattern-detector.js +1 -1
  15. package/dist/analysis/pattern-detector.js.map +1 -1
  16. package/dist/analysis/stats.js +1 -1
  17. package/dist/analysis/stats.js.map +1 -1
  18. package/dist/api/DesignCenterApi.d.ts +0 -20
  19. package/dist/api/DesignCenterApi.d.ts.map +1 -1
  20. package/dist/api/DesignCenterApi.js +0 -22
  21. package/dist/api/DesignCenterApi.js.map +1 -1
  22. package/dist/api/ExchangeApi.d.ts +1 -1
  23. package/dist/api/ExchangeApi.d.ts.map +1 -1
  24. package/dist/api/ExchangeApi.js +3 -1
  25. package/dist/api/ExchangeApi.js.map +1 -1
  26. package/dist/api/MonitoringApi.d.ts +137 -93
  27. package/dist/api/MonitoringApi.d.ts.map +1 -1
  28. package/dist/api/MonitoringApi.js +471 -204
  29. package/dist/api/MonitoringApi.js.map +1 -1
  30. package/dist/auth/FileStore.js +1 -1
  31. package/dist/auth/FileStore.js.map +1 -1
  32. package/dist/cli.js +2 -2
  33. package/dist/cli.js.map +1 -1
  34. package/dist/client/AnypointClient.d.ts +1 -1
  35. package/dist/client/AnypointClient.d.ts.map +1 -1
  36. package/dist/client/AnypointClient.js +2 -2
  37. package/dist/client/AnypointClient.js.map +1 -1
  38. package/dist/commands/api.d.ts.map +1 -1
  39. package/dist/commands/api.js +36 -28
  40. package/dist/commands/api.js.map +1 -1
  41. package/dist/commands/apps.js +2 -2
  42. package/dist/commands/apps.js.map +1 -1
  43. package/dist/commands/auth.js +1 -1
  44. package/dist/commands/auth.js.map +1 -1
  45. package/dist/commands/config.js +1 -1
  46. package/dist/commands/config.js.map +1 -1
  47. package/dist/commands/deploy.d.ts +5 -1
  48. package/dist/commands/deploy.d.ts.map +1 -1
  49. package/dist/commands/deploy.js +53 -81
  50. package/dist/commands/deploy.js.map +1 -1
  51. package/dist/commands/design-center.d.ts +1 -1
  52. package/dist/commands/design-center.d.ts.map +1 -1
  53. package/dist/commands/design-center.js +36 -25
  54. package/dist/commands/design-center.js.map +1 -1
  55. package/dist/commands/monitor.d.ts +5 -6
  56. package/dist/commands/monitor.d.ts.map +1 -1
  57. package/dist/commands/monitor.js +210 -230
  58. package/dist/commands/monitor.js.map +1 -1
  59. package/dist/commands/shared.d.ts +2 -0
  60. package/dist/commands/shared.d.ts.map +1 -1
  61. package/dist/commands/shared.js +16 -1
  62. package/dist/commands/shared.js.map +1 -1
  63. package/dist/{utils/config.d.ts → config/profiles.d.ts} +1 -1
  64. package/dist/config/profiles.d.ts.map +1 -0
  65. package/dist/{utils/config.js → config/profiles.js} +1 -1
  66. package/dist/config/profiles.js.map +1 -0
  67. package/dist/index.d.ts +3 -2
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +3 -2
  70. package/dist/index.js.map +1 -1
  71. package/dist/mcp/prompts.js +7 -7
  72. package/dist/mcp/prompts.js.map +1 -1
  73. package/dist/mcp/server.d.ts +14 -0
  74. package/dist/mcp/server.d.ts.map +1 -0
  75. package/dist/mcp/server.js +60 -0
  76. package/dist/mcp/server.js.map +1 -0
  77. package/dist/mcp/tools/analysis.d.ts.map +1 -1
  78. package/dist/mcp/tools/analysis.js +8 -24
  79. package/dist/mcp/tools/analysis.js.map +1 -1
  80. package/dist/mcp/tools/anypoint-mq.d.ts.map +1 -1
  81. package/dist/mcp/tools/anypoint-mq.js +20 -52
  82. package/dist/mcp/tools/anypoint-mq.js.map +1 -1
  83. package/dist/mcp/tools/api-manager.d.ts.map +1 -1
  84. package/dist/mcp/tools/api-manager.js +29 -53
  85. package/dist/mcp/tools/api-manager.js.map +1 -1
  86. package/dist/mcp/tools/apps-deploy.d.ts +8 -0
  87. package/dist/mcp/tools/apps-deploy.d.ts.map +1 -0
  88. package/dist/mcp/tools/apps-deploy.js +386 -0
  89. package/dist/mcp/tools/apps-deploy.js.map +1 -0
  90. package/dist/mcp/tools/apps-lifecycle.d.ts +8 -0
  91. package/dist/mcp/tools/apps-lifecycle.d.ts.map +1 -0
  92. package/dist/mcp/tools/apps-lifecycle.js +275 -0
  93. package/dist/mcp/tools/apps-lifecycle.js.map +1 -0
  94. package/dist/mcp/tools/apps-read.d.ts +8 -0
  95. package/dist/mcp/tools/apps-read.d.ts.map +1 -0
  96. package/dist/mcp/tools/apps-read.js +251 -0
  97. package/dist/mcp/tools/apps-read.js.map +1 -0
  98. package/dist/mcp/tools/audit.d.ts.map +1 -1
  99. package/dist/mcp/tools/audit.js +9 -17
  100. package/dist/mcp/tools/audit.js.map +1 -1
  101. package/dist/mcp/tools/design-center.d.ts +2 -3
  102. package/dist/mcp/tools/design-center.d.ts.map +1 -1
  103. package/dist/mcp/tools/design-center.js +41 -185
  104. package/dist/mcp/tools/design-center.js.map +1 -1
  105. package/dist/mcp/tools/exchange.d.ts +1 -2
  106. package/dist/mcp/tools/exchange.d.ts.map +1 -1
  107. package/dist/mcp/tools/exchange.js +65 -296
  108. package/dist/mcp/tools/exchange.js.map +1 -1
  109. package/dist/mcp/tools/governance.d.ts +8 -0
  110. package/dist/mcp/tools/governance.d.ts.map +1 -0
  111. package/dist/mcp/tools/governance.js +59 -0
  112. package/dist/mcp/tools/governance.js.map +1 -0
  113. package/dist/mcp/tools/identity.d.ts.map +1 -1
  114. package/dist/mcp/tools/identity.js +15 -36
  115. package/dist/mcp/tools/identity.js.map +1 -1
  116. package/dist/mcp/tools/index.d.ts +4 -1
  117. package/dist/mcp/tools/index.d.ts.map +1 -1
  118. package/dist/mcp/tools/index.js +4 -1
  119. package/dist/mcp/tools/index.js.map +1 -1
  120. package/dist/mcp/tools/logs.d.ts.map +1 -1
  121. package/dist/mcp/tools/logs.js +6 -23
  122. package/dist/mcp/tools/logs.js.map +1 -1
  123. package/dist/mcp/tools/monitoring.d.ts +1 -2
  124. package/dist/mcp/tools/monitoring.d.ts.map +1 -1
  125. package/dist/mcp/tools/monitoring.js +78 -285
  126. package/dist/mcp/tools/monitoring.js.map +1 -1
  127. package/dist/mcp/tools/object-store.d.ts +1 -1
  128. package/dist/mcp/tools/object-store.d.ts.map +1 -1
  129. package/dist/mcp/tools/object-store.js +19 -59
  130. package/dist/mcp/tools/object-store.js.map +1 -1
  131. package/dist/mcp/tools/profile.d.ts.map +1 -1
  132. package/dist/mcp/tools/profile.js +15 -35
  133. package/dist/mcp/tools/profile.js.map +1 -1
  134. package/dist/mcp/tools/shared.d.ts +16 -0
  135. package/dist/mcp/tools/shared.d.ts.map +1 -1
  136. package/dist/mcp/tools/shared.js +12 -0
  137. package/dist/mcp/tools/shared.js.map +1 -1
  138. package/dist/mcp.d.ts +3 -11
  139. package/dist/mcp.d.ts.map +1 -1
  140. package/dist/mcp.js +4 -56
  141. package/dist/mcp.js.map +1 -1
  142. package/dist/safety/artifact.d.ts +13 -0
  143. package/dist/safety/artifact.d.ts.map +1 -0
  144. package/dist/safety/artifact.js +58 -0
  145. package/dist/safety/artifact.js.map +1 -0
  146. package/dist/safety/guards.d.ts +2 -2
  147. package/dist/safety/guards.d.ts.map +1 -1
  148. package/dist/safety/guards.js +4 -4
  149. package/dist/safety/guards.js.map +1 -1
  150. package/dist/utils/errors.d.ts +12 -0
  151. package/dist/utils/errors.d.ts.map +1 -1
  152. package/dist/utils/errors.js +26 -0
  153. package/dist/utils/errors.js.map +1 -1
  154. package/dist/{api/DesignCenterWorkflow.d.ts → workflows/design-center.d.ts} +4 -4
  155. package/dist/workflows/design-center.d.ts.map +1 -0
  156. package/dist/{api/DesignCenterWorkflow.js → workflows/design-center.js} +1 -1
  157. package/dist/workflows/design-center.js.map +1 -0
  158. package/dist/workflows/jar-deployment.d.ts +119 -0
  159. package/dist/workflows/jar-deployment.d.ts.map +1 -0
  160. package/dist/workflows/jar-deployment.js +117 -0
  161. package/dist/workflows/jar-deployment.js.map +1 -0
  162. package/package.json +11 -2
  163. package/dist/analysis/utils.d.ts.map +0 -1
  164. package/dist/analysis/utils.js.map +0 -1
  165. package/dist/api/DesignCenterWorkflow.d.ts.map +0 -1
  166. package/dist/api/DesignCenterWorkflow.js.map +0 -1
  167. package/dist/api/index.d.ts +0 -13
  168. package/dist/api/index.d.ts.map +0 -1
  169. package/dist/api/index.js +0 -13
  170. package/dist/api/index.js.map +0 -1
  171. package/dist/mcp/tools/applications.d.ts +0 -4
  172. package/dist/mcp/tools/applications.d.ts.map +0 -1
  173. package/dist/mcp/tools/applications.js +0 -815
  174. package/dist/mcp/tools/applications.js.map +0 -1
  175. package/dist/utils/config.d.ts.map +0 -1
  176. package/dist/utils/config.js.map +0 -1
@@ -0,0 +1,275 @@
1
+ /**
2
+ * MCP Tool Registrar — Application lifecycle tools (production-guarded)
3
+ * restart_app, scale_app, stop_app, start_app, update_app_settings, delete_app
4
+ */
5
+ import { z } from 'zod';
6
+ import { mcpError, mcpText, dryRunPreview, resolveEnvironment } from './shared.js';
7
+ import { mergeApplicationProperties } from '../../safety/deployment.js';
8
+ import { buildApplicationDeletionPreview, deploymentIdMatches } from '../../safety/deletion.js';
9
+ export function registerAppLifecycleTools(server, client) {
10
+ server.registerTool('restart_app', {
11
+ title: 'Restart Application',
12
+ description: "Initiates a rolling restart of a deployed Mule application by re-applying its desired state. This causes new replicas to spin up before old ones are terminated, avoiding downtime. Use when an app is behaving unexpectedly (e.g. memory issues, stale connections) but you don't need to redeploy a new version.",
13
+ inputSchema: {
14
+ appName: z.string().describe('Application name exactly as deployed'),
15
+ environment: z.string().describe('Environment name or ID'),
16
+ },
17
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true },
18
+ }, async ({ appName, environment }) => {
19
+ try {
20
+ const { orgId, env } = await resolveEnvironment(client, environment);
21
+ const deployment = await client.cloudHub2.findByName(orgId, env.id, appName);
22
+ if (!deployment) {
23
+ return {
24
+ content: [{ type: 'text', text: `Application "${appName}" not found in ${env.name}` }],
25
+ isError: true,
26
+ };
27
+ }
28
+ await client.cloudHub2.restartApp(orgId, env.id, deployment.id);
29
+ return mcpText(`✅ Rolling restart initiated for "${appName}" in ${env.name}. Use get_app_status to monitor progress.`);
30
+ }
31
+ catch (error) {
32
+ return mcpError(error);
33
+ }
34
+ });
35
+ server.registerTool('scale_app', {
36
+ title: 'Scale Application',
37
+ description: 'Changes the number of running replicas for a CloudHub 2.0 application. Scaling up adds more replicas for higher throughput and availability; scaling down reduces cost. Each replica runs as an isolated Mule runtime instance. The change takes effect immediately and new replicas will begin receiving traffic once their health checks pass.',
38
+ inputSchema: {
39
+ appName: z.string().describe('Application name exactly as deployed'),
40
+ environment: z.string().describe('Environment name or ID'),
41
+ replicas: z.number().min(1).max(8).describe('Desired number of replicas (1–8)'),
42
+ },
43
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true },
44
+ }, async ({ appName, environment, replicas }) => {
45
+ try {
46
+ const { orgId, env } = await resolveEnvironment(client, environment);
47
+ const deployment = await client.cloudHub2.findByName(orgId, env.id, appName);
48
+ if (!deployment) {
49
+ return {
50
+ content: [{ type: 'text', text: `Application "${appName}" not found in ${env.name}` }],
51
+ isError: true,
52
+ };
53
+ }
54
+ await client.cloudHub2.scaleApp(orgId, env.id, deployment.id, replicas);
55
+ return mcpText(`✅ Scaled "${appName}" to ${replicas} replica(s) in ${env.name}. Use get_app_status to monitor.`);
56
+ }
57
+ catch (error) {
58
+ return mcpError(error);
59
+ }
60
+ });
61
+ // ── New tools ─────────────────────────────────────────
62
+ server.registerTool('stop_app', {
63
+ title: 'Stop Application',
64
+ description: "Stops a running Mule application in CloudHub 2.0 without deleting the deployment. The application's replicas are terminated but the deployment configuration is preserved. Use this to temporarily take an app offline for maintenance, cost savings, or to prevent traffic during investigations. Use start_app to bring it back online.",
65
+ inputSchema: {
66
+ appName: z.string().describe('Application name exactly as deployed'),
67
+ environment: z.string().describe('Environment name or ID'),
68
+ },
69
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true },
70
+ }, async ({ appName, environment }) => {
71
+ try {
72
+ const { orgId, env } = await resolveEnvironment(client, environment);
73
+ const deployment = await client.cloudHub2.findByName(orgId, env.id, appName);
74
+ if (!deployment) {
75
+ return {
76
+ content: [{ type: 'text', text: `Application "${appName}" not found in ${env.name}` }],
77
+ isError: true,
78
+ };
79
+ }
80
+ await client.cloudHub2.setDesiredState(orgId, env.id, deployment.id, 'STOPPED');
81
+ return mcpText(`✅ Stop initiated for "${appName}" in ${env.name}. Replicas will be terminated. Use get_app_status to monitor, and start_app to bring it back online.`);
82
+ }
83
+ catch (error) {
84
+ return mcpError(error);
85
+ }
86
+ });
87
+ server.registerTool('start_app', {
88
+ title: 'Start Application',
89
+ description: 'Starts a stopped Mule application in CloudHub 2.0. Brings the application back online by requesting the desired state to STARTED. Use this after stop_app to resume processing, or to recover an app that was manually stopped.',
90
+ inputSchema: {
91
+ appName: z.string().describe('Application name exactly as deployed'),
92
+ environment: z.string().describe('Environment name or ID'),
93
+ },
94
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true },
95
+ }, async ({ appName, environment }) => {
96
+ try {
97
+ const { orgId, env } = await resolveEnvironment(client, environment);
98
+ const deployment = await client.cloudHub2.findByName(orgId, env.id, appName);
99
+ if (!deployment) {
100
+ return {
101
+ content: [{ type: 'text', text: `Application "${appName}" not found in ${env.name}` }],
102
+ isError: true,
103
+ };
104
+ }
105
+ await client.cloudHub2.setDesiredState(orgId, env.id, deployment.id, 'STARTED');
106
+ return mcpText(`✅ Start initiated for "${appName}" in ${env.name}. Use get_app_status to monitor replica startup.`);
107
+ }
108
+ catch (error) {
109
+ return mcpError(error);
110
+ }
111
+ });
112
+ server.registerTool('update_app_settings', {
113
+ title: 'Update Application Settings',
114
+ description: 'Updates application properties for a deployed Mule application in CloudHub 2.0. Merges the provided properties with existing ones (does not remove properties not specified). Triggers a rolling restart to apply the new configuration. Use this to change environment-specific config like database URLs, API keys, or feature flags without redeploying a new JAR.',
115
+ inputSchema: {
116
+ appName: z.string().describe('Application name exactly as deployed (case-insensitive match)'),
117
+ environment: z.string().describe('Environment name or ID'),
118
+ properties: z
119
+ .record(z.string())
120
+ .optional()
121
+ .describe('Plain-text application properties to set or update (merged with existing)'),
122
+ secureProperties: z
123
+ .record(z.string())
124
+ .optional()
125
+ .describe('Secure (encrypted) properties to set or update (merged with existing)'),
126
+ },
127
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true },
128
+ }, async ({ appName, environment, properties, secureProperties }) => {
129
+ try {
130
+ if (Object.keys(properties ?? {}).length + Object.keys(secureProperties ?? {}).length === 0) {
131
+ return {
132
+ content: [
133
+ {
134
+ type: 'text',
135
+ text: 'At least one of "properties" or "secureProperties" must be provided.',
136
+ },
137
+ ],
138
+ isError: true,
139
+ };
140
+ }
141
+ const { orgId, env } = await resolveEnvironment(client, environment);
142
+ const detail = await client.cloudHub2.findDetailByName(orgId, env.id, appName);
143
+ if (!detail) {
144
+ return {
145
+ content: [{ type: 'text', text: `Application "${appName}" not found in ${env.name}` }],
146
+ isError: true,
147
+ };
148
+ }
149
+ const merged = mergeApplicationProperties(detail, properties, secureProperties);
150
+ await client.cloudHub2.updateApplicationConfiguration(orgId, env.id, detail.id, merged);
151
+ return mcpText({
152
+ message: `✅ Updated settings for "${appName}" in ${env.name}. Rolling restart triggered.`,
153
+ propertiesUpdated: properties ? Object.keys(properties) : [],
154
+ securePropertiesUpdated: secureProperties ? Object.keys(secureProperties) : [],
155
+ tip: 'Use get_app_status to monitor the restart, and get_app_settings to verify.',
156
+ });
157
+ }
158
+ catch (error) {
159
+ return mcpError(error);
160
+ }
161
+ });
162
+ server.registerTool('delete_app', {
163
+ title: 'Delete Application Deployment',
164
+ description: 'Permanently deletes a CloudHub 2.0 application deployment while leaving its Exchange artifact and other Anypoint resources untouched. This is a bound two-step operation: call without confirm for a preview, then re-call with confirm:true and the exact expectedDeploymentId from that preview. Production also requires confirmProduction:true. Use stop_app instead when the deployment configuration should be preserved.',
165
+ inputSchema: {
166
+ appName: z.string().describe('Application name exactly as deployed (case-insensitive match)'),
167
+ environment: z.string().describe('Environment name or ID'),
168
+ confirm: z.boolean().optional().describe('Set true only after reviewing the dry-run preview.'),
169
+ expectedDeploymentId: z
170
+ .string()
171
+ .optional()
172
+ .describe('Exact deployment ID returned by the dry-run preview; binds confirmation to one deployment.'),
173
+ confirmProduction: z
174
+ .boolean()
175
+ .optional()
176
+ .describe('Required in addition to confirm:true when the resolved environment is production.'),
177
+ },
178
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true },
179
+ }, async ({ appName, environment, confirm, expectedDeploymentId, confirmProduction }) => {
180
+ try {
181
+ const { orgId, env } = await resolveEnvironment(client, environment);
182
+ const deployment = await client.cloudHub2.findDetailByName(orgId, env.id, appName);
183
+ if (!deployment) {
184
+ if (confirm && expectedDeploymentId) {
185
+ return mcpText({
186
+ deleted: false,
187
+ alreadyAbsent: true,
188
+ verifiedAbsent: true,
189
+ app: appName,
190
+ environment: env.name,
191
+ expectedDeploymentId,
192
+ });
193
+ }
194
+ return {
195
+ ...mcpText({ message: `Application "${appName}" not found in ${env.name}` }),
196
+ isError: true,
197
+ };
198
+ }
199
+ const preview = buildApplicationDeletionPreview(deployment, env);
200
+ if (!confirm) {
201
+ return dryRunPreview({
202
+ ...preview,
203
+ confirmation: {
204
+ confirm: true,
205
+ expectedDeploymentId: deployment.id,
206
+ ...(preview.production ? { confirmProduction: true } : {}),
207
+ },
208
+ });
209
+ }
210
+ if (!deploymentIdMatches(expectedDeploymentId, deployment.id)) {
211
+ return {
212
+ ...mcpText({
213
+ message: 'Deletion refused: expectedDeploymentId is missing or does not match the current deployment.',
214
+ expectedDeploymentId: expectedDeploymentId ?? null,
215
+ currentDeploymentId: deployment.id,
216
+ app: deployment.name,
217
+ environment: env.name,
218
+ }),
219
+ isError: true,
220
+ };
221
+ }
222
+ if (preview.production && !confirmProduction) {
223
+ return {
224
+ ...mcpText({
225
+ message: 'Deletion refused: production requires confirmProduction:true.',
226
+ app: deployment.name,
227
+ environment: env.name,
228
+ deploymentId: deployment.id,
229
+ }),
230
+ isError: true,
231
+ };
232
+ }
233
+ await client.cloudHub2.deleteDeployment(orgId, env.id, deployment.id);
234
+ const verification = await client.cloudHub2.waitForDeploymentDeletion(orgId, env.id, deployment.name, deployment.id);
235
+ if (verification.replacementDeploymentId) {
236
+ return {
237
+ ...mcpText({
238
+ deletionAccepted: true,
239
+ verifiedAbsent: false,
240
+ replacementDetected: true,
241
+ deletedDeploymentId: deployment.id,
242
+ replacementDeploymentId: verification.replacementDeploymentId,
243
+ message: 'The original deployment was deleted, but a new deployment now uses the same name.',
244
+ }),
245
+ isError: true,
246
+ };
247
+ }
248
+ if (!verification.verifiedAbsent) {
249
+ return mcpText({
250
+ deletionAccepted: true,
251
+ verifiedAbsent: false,
252
+ ...(verification.deletionState ? { deletionState: verification.deletionState } : {}),
253
+ deploymentId: deployment.id,
254
+ app: deployment.name,
255
+ environment: env.name,
256
+ message: verification.deletionState
257
+ ? 'CloudHub marks the deployment as DELETED, but its tombstone remains visible in the list.'
258
+ : 'CloudHub accepted deletion, but absence was not verified within 60 seconds.',
259
+ });
260
+ }
261
+ return mcpText({
262
+ deleted: true,
263
+ verifiedAbsent: true,
264
+ deploymentId: deployment.id,
265
+ app: deployment.name,
266
+ environment: env.name,
267
+ preserved: preview.preserved,
268
+ });
269
+ }
270
+ catch (error) {
271
+ return mcpError(error);
272
+ }
273
+ });
274
+ }
275
+ //# sourceMappingURL=apps-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apps-lifecycle.js","sourceRoot":"","sources":["../../../src/mcp/tools/apps-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MCP Tool Registrar — Application read tools
3
+ * list_apps, get_app_status, get_deployment_spec, get_app_resources, get_app_settings, compare_app_deployments
4
+ */
5
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
6
+ import type { AnypointClient } from '../../client/AnypointClient.js';
7
+ export declare function registerAppReadTools(server: McpServer, client: AnypointClient): void;
8
+ //# sourceMappingURL=apps-read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apps-read.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/apps-read.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGrE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QAoS7E"}
@@ -0,0 +1,251 @@
1
+ /**
2
+ * MCP Tool Registrar — Application read tools
3
+ * list_apps, get_app_status, get_deployment_spec, get_app_resources, get_app_settings, compare_app_deployments
4
+ */
5
+ import { z } from 'zod';
6
+ import { mcpError, mcpText, resolveEnvironment } from './shared.js';
7
+ export function registerAppReadTools(server, client) {
8
+ server.registerTool('list_apps', {
9
+ title: 'List Applications',
10
+ description: 'Lists all Mule applications deployed in a CloudHub 2.0 environment. Returns each app\'s name, deployment status (APPLIED, STARTED, FAILED), artifact version, Mule runtime version, vCores, and replica count. Accepts environment name (e.g. "Development") or environment ID.',
11
+ inputSchema: {
12
+ environment: z
13
+ .string()
14
+ .describe('Environment name (e.g. "Development", "Production") or environment ID'),
15
+ },
16
+ annotations: { readOnlyHint: true },
17
+ }, async ({ environment }) => {
18
+ try {
19
+ const { orgId, env } = await resolveEnvironment(client, environment);
20
+ const deployments = await client.cloudHub2.getDetailedDeployments(orgId, env.id);
21
+ return mcpText(deployments.map((d) => ({
22
+ name: d.name,
23
+ status: d.status,
24
+ version: d.application?.ref?.version,
25
+ runtime: d.target?.deploymentSettings?.runtime?.version,
26
+ vCores: d.application?.vCores,
27
+ replicas: d.target?.replicas,
28
+ id: d.id,
29
+ })));
30
+ }
31
+ catch (error) {
32
+ return mcpError(error);
33
+ }
34
+ });
35
+ server.registerTool('get_app_status', {
36
+ title: 'Get Application Status',
37
+ description: "Returns detailed deployment information for a specific Mule application: status, artifact version (groupId:artifactId:version), Mule runtime version, resource allocation (CPU, memory, vCores), autoscaling config, JVM args, clustering, each replica's state and deployment location, the public URL, and last update timestamp. Use this to check if an app is healthy, review resource allocation, or verify a deployment.",
38
+ inputSchema: {
39
+ appName: z.string().describe('Application name exactly as deployed (case-insensitive match)'),
40
+ environment: z.string().describe('Environment name (e.g. "Production") or environment ID'),
41
+ },
42
+ annotations: { readOnlyHint: true },
43
+ }, async ({ appName, environment }) => {
44
+ try {
45
+ const { orgId, env } = await resolveEnvironment(client, environment);
46
+ const deployment = await client.cloudHub2.findDetailByName(orgId, env.id, appName);
47
+ if (!deployment) {
48
+ return mcpText(`Application "${appName}" not found in ${env.name}`);
49
+ }
50
+ return mcpText({
51
+ name: deployment.name,
52
+ status: deployment.status,
53
+ version: deployment.application?.ref?.version,
54
+ groupId: deployment.application?.ref?.groupId,
55
+ artifactId: deployment.application?.ref?.artifactId,
56
+ runtime: deployment.target?.deploymentSettings?.runtime?.version,
57
+ resources: {
58
+ cpu: deployment.target?.deploymentSettings?.resources?.cpu,
59
+ memory: deployment.target?.deploymentSettings?.resources?.memory,
60
+ vCores: deployment.application?.vCores,
61
+ },
62
+ autoscaling: deployment.target?.deploymentSettings?.autoscaling,
63
+ jvm: deployment.target?.deploymentSettings?.jvm,
64
+ clustered: deployment.target?.deploymentSettings?.clustered,
65
+ updateStrategy: deployment.target?.deploymentSettings?.updateStrategy,
66
+ replicas: deployment.replicas?.map((r) => ({
67
+ id: r.id,
68
+ state: r.state,
69
+ location: r.deploymentLocation,
70
+ })),
71
+ publicUrl: deployment.target?.deploymentSettings?.http?.inbound?.publicUrl,
72
+ updatedAt: deployment.lastModifiedDate
73
+ ? new Date(deployment.lastModifiedDate).toISOString()
74
+ : undefined,
75
+ });
76
+ }
77
+ catch (error) {
78
+ return mcpError(error);
79
+ }
80
+ });
81
+ server.registerTool('get_deployment_spec', {
82
+ title: 'Get Deployment Spec',
83
+ description: 'Returns the full current deployment spec for a CloudHub 2.0 application — the "look before you leap" view used before a redeploy or rollback. Includes the exact artifact reference (groupId:artifactId:version:packaging), Mule runtime version, deployment target (a private space ID vs a shared cloudhub-* region), vCores, replica count with per-replica state and location, update strategy, clustering, JVM args, public URL, desired vs last-successful version, and timestamps. Unlike get_app_status this always fetches full deployment detail. Use it to confirm exactly what is running before changing an artifact, and to capture the current ref so you can roll back.',
84
+ inputSchema: {
85
+ appName: z.string().describe('Application name exactly as deployed (case-insensitive match)'),
86
+ environment: z.string().describe('Environment name (e.g. "Production") or environment ID'),
87
+ },
88
+ annotations: { readOnlyHint: true },
89
+ }, async ({ appName, environment }) => {
90
+ try {
91
+ const { orgId, env } = await resolveEnvironment(client, environment);
92
+ const d = await client.cloudHub2.findDetailByName(orgId, env.id, appName);
93
+ if (!d) {
94
+ return mcpText(`Application "${appName}" not found in ${env.name}`);
95
+ }
96
+ const settings = d.target?.deploymentSettings;
97
+ const targetId = d.target?.targetId || '';
98
+ const isPrivateSpace = !targetId.startsWith('cloudhub-');
99
+ return mcpText({
100
+ name: d.name,
101
+ deploymentId: d.id,
102
+ status: d.status,
103
+ ref: d.application?.ref,
104
+ runtime: settings?.runtime?.version,
105
+ target: {
106
+ provider: d.target?.provider,
107
+ targetId,
108
+ kind: isPrivateSpace ? 'private-space' : 'shared-region',
109
+ },
110
+ vCores: d.application?.vCores,
111
+ resources: settings?.resources,
112
+ replicas: {
113
+ count: d.target?.replicas ?? 0,
114
+ states: d.replicas?.map((r) => ({
115
+ id: r.id,
116
+ state: r.state,
117
+ location: r.deploymentLocation,
118
+ version: r.currentDeploymentVersion,
119
+ })),
120
+ },
121
+ updateStrategy: settings?.updateStrategy,
122
+ clustered: settings?.clustered,
123
+ autoscaling: settings?.autoscaling,
124
+ jvm: settings?.jvm,
125
+ publicUrl: settings?.http?.inbound?.publicUrl,
126
+ desiredVersion: d.desiredVersion,
127
+ lastSuccessfulVersion: d.lastSuccessfulVersion,
128
+ createdAt: d.creationDate ? new Date(d.creationDate).toISOString() : undefined,
129
+ updatedAt: d.lastModifiedDate ? new Date(d.lastModifiedDate).toISOString() : undefined,
130
+ });
131
+ }
132
+ catch (error) {
133
+ return mcpError(error);
134
+ }
135
+ });
136
+ server.registerTool('get_app_resources', {
137
+ title: 'Get Application Resources',
138
+ description: 'Returns resource allocation for all apps in an environment: CPU/memory limits and reservations, vCores, replica count, autoscaling config, and JVM args. Use this to identify over-provisioned or under-provisioned applications, compare resource distribution, and optimize costs.',
139
+ inputSchema: {
140
+ environment: z.string().describe('Environment name (e.g. "Production") or environment ID'),
141
+ },
142
+ annotations: { readOnlyHint: true },
143
+ }, async ({ environment }) => {
144
+ try {
145
+ const { orgId, env } = await resolveEnvironment(client, environment);
146
+ const deployments = await client.cloudHub2.getDetailedDeployments(orgId, env.id);
147
+ const resources = deployments.map((d) => ({
148
+ name: d.name,
149
+ status: d.status,
150
+ vCores: d.application?.vCores,
151
+ cpu: d.target?.deploymentSettings?.resources?.cpu,
152
+ memory: d.target?.deploymentSettings?.resources?.memory,
153
+ replicas: d.target?.replicas ?? 0,
154
+ autoscaling: d.target?.deploymentSettings?.autoscaling,
155
+ jvm: d.target?.deploymentSettings?.jvm,
156
+ clustered: d.target?.deploymentSettings?.clustered,
157
+ updateStrategy: d.target?.deploymentSettings?.updateStrategy,
158
+ }));
159
+ return mcpText({
160
+ environment: env.name,
161
+ apps: resources,
162
+ });
163
+ }
164
+ catch (error) {
165
+ return mcpError(error);
166
+ }
167
+ });
168
+ server.registerTool('get_app_settings', {
169
+ title: 'Get Application Settings',
170
+ description: 'Reads the application properties (configuration settings) for a deployed Mule application in CloudHub 2.0. Returns both plain-text properties as key-value pairs and the names of secure (encrypted) properties. Use this to verify configuration after a deploy, compare settings between environments, or check for missing properties.',
171
+ inputSchema: {
172
+ appName: z.string().describe('Application name exactly as deployed (case-insensitive match)'),
173
+ environment: z.string().describe('Environment name (e.g. "Production") or environment ID'),
174
+ },
175
+ annotations: { readOnlyHint: true },
176
+ }, async ({ appName, environment }) => {
177
+ try {
178
+ const { orgId, env } = await resolveEnvironment(client, environment);
179
+ const detail = await client.cloudHub2.findDetailByName(orgId, env.id, appName);
180
+ if (!detail) {
181
+ return mcpText(`Application "${appName}" not found in ${env.name}`);
182
+ }
183
+ const config = (detail.application?.configuration ?? {});
184
+ const propertiesService = config['mule.agent.application.properties.service'];
185
+ const properties = (propertiesService?.properties ?? {});
186
+ const secureProperties = propertiesService?.secureProperties;
187
+ const securePropertyKeys = secureProperties ? Object.keys(secureProperties) : [];
188
+ return mcpText({
189
+ appName: detail.name,
190
+ environment: env.name,
191
+ properties,
192
+ securePropertyKeys,
193
+ rawConfiguration: config,
194
+ });
195
+ }
196
+ catch (error) {
197
+ return mcpError(error);
198
+ }
199
+ });
200
+ server.registerTool('compare_app_deployments', {
201
+ title: 'Compare Environments',
202
+ description: 'Produces a side-by-side comparison of all application deployments across two environments. For each app, shows deployment status, artifact version, and replica count in both environments, plus whether versions match. Use this to detect environment drift before a production promotion, verify that a release was applied consistently, or audit differences between Development and Production.',
203
+ inputSchema: {
204
+ env1: z.string().describe('First environment name (e.g. "Development")'),
205
+ env2: z.string().describe('Second environment name (e.g. "Production")'),
206
+ },
207
+ annotations: { readOnlyHint: true },
208
+ }, async ({ env1, env2 }) => {
209
+ try {
210
+ const orgId = await client.getDefaultOrgId();
211
+ const [e1, e2] = await Promise.all([
212
+ client.accessManagement.resolveEnvironment(orgId, env1),
213
+ client.accessManagement.resolveEnvironment(orgId, env2),
214
+ ]);
215
+ const [apps1, apps2] = await Promise.all([
216
+ client.cloudHub2.getDetailedDeployments(orgId, e1.id),
217
+ client.cloudHub2.getDetailedDeployments(orgId, e2.id),
218
+ ]);
219
+ const allNames = new Set([...apps1.map((a) => a.name), ...apps2.map((a) => a.name)]);
220
+ const comparison = Array.from(allNames)
221
+ .sort()
222
+ .map((name) => {
223
+ const a1 = apps1.find((a) => a.name === name);
224
+ const a2 = apps2.find((a) => a.name === name);
225
+ return {
226
+ name,
227
+ [e1.name]: a1
228
+ ? {
229
+ status: a1.status,
230
+ version: a1.application?.ref?.version || '-',
231
+ replicas: a1.target?.replicas || 0,
232
+ }
233
+ : 'NOT DEPLOYED',
234
+ [e2.name]: a2
235
+ ? {
236
+ status: a2.status,
237
+ version: a2.application?.ref?.version || '-',
238
+ replicas: a2.target?.replicas || 0,
239
+ }
240
+ : 'NOT DEPLOYED',
241
+ versionMatch: a1 && a2 ? a1.application?.ref?.version === a2.application?.ref?.version : null,
242
+ };
243
+ });
244
+ return mcpText({ comparison });
245
+ }
246
+ catch (error) {
247
+ return mcpError(error);
248
+ }
249
+ });
250
+ }
251
+ //# sourceMappingURL=apps-read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apps-read.js","sourceRoot":"","sources":["../../../src/mcp/tools/apps-read.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/audit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGrE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QA6D3E"}
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/audit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGrE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QAiD3E"}
@@ -3,7 +3,7 @@
3
3
  * get_audit_log
4
4
  */
5
5
  import { z } from 'zod';
6
- import { mcpError } from './shared.js';
6
+ import { mcpError, mcpText, timeWindow } from './shared.js';
7
7
  export function registerAuditTools(server, client) {
8
8
  server.registerTool('get_audit_log', {
9
9
  title: 'Get Platform Audit Log',
@@ -24,27 +24,19 @@ export function registerAuditTools(server, client) {
24
24
  }, async ({ hoursBack, actions, objectTypes, limit }) => {
25
25
  try {
26
26
  const orgId = await client.getDefaultOrgId();
27
- const endDate = new Date().toISOString();
28
- const startDate = new Date(Date.now() - (hoursBack || 24) * 60 * 60 * 1000).toISOString();
27
+ const { period } = timeWindow(hoursBack || 24);
29
28
  const result = await client.auditLog.query(orgId, {
30
- startDate,
31
- endDate,
29
+ startDate: period.from,
30
+ endDate: period.to,
32
31
  actions,
33
32
  objectTypes,
34
33
  limit: limit || 100,
35
34
  });
36
- return {
37
- content: [
38
- {
39
- type: 'text',
40
- text: JSON.stringify({
41
- total: result.total,
42
- period: { from: startDate, to: endDate },
43
- entries: result.data,
44
- }, null, 2),
45
- },
46
- ],
47
- };
35
+ return mcpText({
36
+ total: result.total,
37
+ period,
38
+ entries: result.data,
39
+ });
48
40
  }
49
41
  catch (error) {
50
42
  return mcpError(error);
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/mcp/tools/audit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAsB;IACxE,MAAM,CAAC,YAAY,CACf,eAAe,EACf;QACI,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACP,0RAA0R;QAC9R,WAAW,EAAE;YACT,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;YACtG,OAAO,EAAE,CAAC;iBACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CACL,6FAA6F,CAChG;YACL,WAAW,EAAE,CAAC;iBACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CACL,4FAA4F,CAC/F;YACL,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;SACpF;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACtC,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE;QACjD,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;YAE7C,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAE1F,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;gBAC9C,SAAS;gBACT,OAAO;gBACP,OAAO;gBACP,WAAW;gBACX,KAAK,EAAE,KAAK,IAAI,GAAG;aACtB,CAAC,CAAC;YAEH,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAChB;4BACI,KAAK,EAAE,MAAM,CAAC,KAAK;4BACnB,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE;4BACxC,OAAO,EAAE,MAAM,CAAC,IAAI;yBACvB,EACD,IAAI,EACJ,CAAC,CACJ;qBACJ;iBACJ;aACJ,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC,CACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/mcp/tools/audit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE5D,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAsB;IACxE,MAAM,CAAC,YAAY,CACf,eAAe,EACf;QACI,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACP,0RAA0R;QAC9R,WAAW,EAAE;YACT,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;YACtG,OAAO,EAAE,CAAC;iBACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CACL,6FAA6F,CAChG;YACL,WAAW,EAAE,CAAC;iBACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CACL,4FAA4F,CAC/F;YACL,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;SACpF;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACtC,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE;QACjD,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;YAE7C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;YAE/C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;gBAC9C,SAAS,EAAE,MAAM,CAAC,IAAI;gBACtB,OAAO,EAAE,MAAM,CAAC,EAAE;gBAClB,OAAO;gBACP,WAAW;gBACX,KAAK,EAAE,KAAK,IAAI,GAAG;aACtB,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC;gBACX,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM;gBACN,OAAO,EAAE,MAAM,CAAC,IAAI;aACvB,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC,CACJ,CAAC;AACN,CAAC"}