@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
@@ -1,14 +1,10 @@
1
1
  /**
2
2
  * MCP Tool Registrar — Exchange tools
3
- * search_exchange, download_api_spec, compare_environments, get_exchange_asset,
4
- * publish_app_jar, deploy_jar
3
+ * search_exchange, get_exchange_asset, download_api_spec, publish_app_jar
5
4
  */
6
- import * as path from 'path';
7
5
  import { z } from 'zod';
8
6
  import { mcpError, mcpText, dryRunPreview } from './shared.js';
9
- import { validateJarFile } from '../../safety/guards.js';
10
- import { buildCreatePayload, mergeForArtifactUpdate } from '../../safety/deployment.js';
11
- import { errorMessage } from '../../utils/errors.js';
7
+ import { resolveJarArtifact } from '../../workflows/jar-deployment.js';
12
8
  export function registerExchangeTools(server, client) {
13
9
  server.registerTool('search_exchange', {
14
10
  title: 'Search Exchange',
@@ -33,155 +29,75 @@ export function registerExchangeTools(server, client) {
33
29
  type,
34
30
  limit: limit || 20,
35
31
  });
36
- return {
37
- content: [
38
- {
39
- type: 'text',
40
- text: JSON.stringify(assets.map((a) => ({
41
- name: a.name,
42
- assetId: a.assetId,
43
- groupId: a.groupId,
44
- type: a.type,
45
- version: a.version,
46
- description: a.description,
47
- })), null, 2),
48
- },
49
- ],
50
- };
32
+ return mcpText(assets.map((a) => ({
33
+ name: a.name,
34
+ assetId: a.assetId,
35
+ groupId: a.groupId,
36
+ type: a.type,
37
+ version: a.version,
38
+ description: a.description,
39
+ })));
51
40
  }
52
41
  catch (error) {
53
42
  return mcpError(error);
54
43
  }
55
44
  });
56
- server.registerTool('download_api_spec', {
57
- title: 'Download API Specification',
58
- description: 'Downloads the API specification file (RAML or OAS/Swagger) for an Exchange asset. Returns the raw spec content as text, along with the classifier (e.g. "raml", "oas", "fat-raml") and filename. Use this to inspect API contracts, generate scaffolding, or understand an API\'s endpoints and data models before building an integration.',
45
+ server.registerTool('get_exchange_asset', {
46
+ title: 'Get Exchange Asset Details',
47
+ description: "Returns detailed information about a specific Exchange asset including all published versions, dependencies, API instances, contact information, and file classifiers. Use this to check which versions of an asset are available before deploying, to understand an asset's dependency chain, or to find the groupId needed for deploy_app.",
59
48
  inputSchema: {
60
49
  groupId: z.string().describe('Group ID of the asset (typically the org ID — use whoami to get it)'),
61
50
  assetId: z.string().describe('Asset ID as shown in Exchange (e.g. "order-management-api")'),
62
51
  version: z
63
52
  .string()
64
53
  .optional()
65
- .describe('Specific version (e.g. "1.2.0"). Omit to download the latest published version.'),
54
+ .describe('Specific version to get details for. Omit to get the latest version with all version history.'),
66
55
  },
67
56
  annotations: { readOnlyHint: true },
68
57
  }, async ({ groupId, assetId, version }) => {
69
58
  try {
70
- const spec = await client.exchange.downloadSpec(groupId, assetId, version);
71
- return {
72
- content: [
73
- {
74
- type: 'text',
75
- text: `Classifier: ${spec.classifier}\nFile: ${spec.fileName}\n\n${spec.content}`,
76
- },
77
- ],
78
- };
79
- }
80
- catch (error) {
81
- return mcpError(error);
82
- }
83
- });
84
- server.registerTool('compare_environments', {
85
- title: 'Compare Environments',
86
- 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.',
87
- inputSchema: {
88
- env1: z.string().describe('First environment name (e.g. "Development")'),
89
- env2: z.string().describe('Second environment name (e.g. "Production")'),
90
- },
91
- annotations: { readOnlyHint: true },
92
- }, async ({ env1, env2 }) => {
93
- try {
94
- const orgId = await client.getDefaultOrgId();
95
- const [e1, e2] = await Promise.all([
96
- client.accessManagement.resolveEnvironment(orgId, env1),
97
- client.accessManagement.resolveEnvironment(orgId, env2),
98
- ]);
99
- const [apps1, apps2] = await Promise.all([
100
- client.cloudHub2.getDetailedDeployments(orgId, e1.id),
101
- client.cloudHub2.getDetailedDeployments(orgId, e2.id),
102
- ]);
103
- const allNames = new Set([...apps1.map((a) => a.name), ...apps2.map((a) => a.name)]);
104
- const comparison = Array.from(allNames)
105
- .sort()
106
- .map((name) => {
107
- const a1 = apps1.find((a) => a.name === name);
108
- const a2 = apps2.find((a) => a.name === name);
109
- return {
110
- name,
111
- [e1.name]: a1
112
- ? {
113
- status: a1.status,
114
- version: a1.application?.ref?.version || '-',
115
- replicas: a1.target?.replicas || 0,
116
- }
117
- : 'NOT DEPLOYED',
118
- [e2.name]: a2
119
- ? {
120
- status: a2.status,
121
- version: a2.application?.ref?.version || '-',
122
- replicas: a2.target?.replicas || 0,
123
- }
124
- : 'NOT DEPLOYED',
125
- versionMatch: a1 && a2 ? a1.application?.ref?.version === a2.application?.ref?.version : null,
126
- };
59
+ const detail = await client.exchange.getAsset(groupId, assetId, version);
60
+ return mcpText({
61
+ name: detail.name,
62
+ groupId: detail.groupId,
63
+ assetId: detail.assetId,
64
+ version: detail.version,
65
+ type: detail.type,
66
+ description: detail.description,
67
+ status: detail.status,
68
+ contact: detail.contactName ? { name: detail.contactName, email: detail.contactEmail } : null,
69
+ versions: detail.versions,
70
+ dependencies: detail.dependencies,
71
+ instances: detail.instances,
72
+ files: detail.files?.map((f) => ({
73
+ classifier: f.classifier,
74
+ packaging: f.packaging,
75
+ mainFile: f.mainFile,
76
+ })),
77
+ labels: detail.labels,
78
+ categories: detail.categories,
127
79
  });
128
- return {
129
- content: [
130
- {
131
- type: 'text',
132
- text: JSON.stringify({ comparison }, null, 2),
133
- },
134
- ],
135
- };
136
80
  }
137
81
  catch (error) {
138
82
  return mcpError(error);
139
83
  }
140
84
  });
141
- server.registerTool('get_exchange_asset', {
142
- title: 'Get Exchange Asset Details',
143
- description: "Returns detailed information about a specific Exchange asset including all published versions, dependencies, API instances, contact information, and file classifiers. Use this to check which versions of an asset are available before deploying, to understand an asset's dependency chain, or to find the groupId needed for deploy_app.",
85
+ server.registerTool('download_api_spec', {
86
+ title: 'Download API Specification',
87
+ description: 'Downloads the API specification file (RAML or OAS/Swagger) for an Exchange asset. Returns the raw spec content as text, along with the classifier (e.g. "raml", "oas", "fat-raml") and filename. Use this to inspect API contracts, generate scaffolding, or understand an API\'s endpoints and data models before building an integration.',
144
88
  inputSchema: {
145
89
  groupId: z.string().describe('Group ID of the asset (typically the org ID — use whoami to get it)'),
146
90
  assetId: z.string().describe('Asset ID as shown in Exchange (e.g. "order-management-api")'),
147
91
  version: z
148
92
  .string()
149
93
  .optional()
150
- .describe('Specific version to get details for. Omit to get the latest version with all version history.'),
94
+ .describe('Specific version (e.g. "1.2.0"). Omit to download the latest published version.'),
151
95
  },
152
96
  annotations: { readOnlyHint: true },
153
97
  }, async ({ groupId, assetId, version }) => {
154
98
  try {
155
- const detail = await client.exchange.getAsset(groupId, assetId, version);
156
- return {
157
- content: [
158
- {
159
- type: 'text',
160
- text: JSON.stringify({
161
- name: detail.name,
162
- groupId: detail.groupId,
163
- assetId: detail.assetId,
164
- version: detail.version,
165
- type: detail.type,
166
- description: detail.description,
167
- status: detail.status,
168
- contact: detail.contactName
169
- ? { name: detail.contactName, email: detail.contactEmail }
170
- : null,
171
- versions: detail.versions,
172
- dependencies: detail.dependencies,
173
- instances: detail.instances,
174
- files: detail.files?.map((f) => ({
175
- classifier: f.classifier,
176
- packaging: f.packaging,
177
- mainFile: f.mainFile,
178
- })),
179
- labels: detail.labels,
180
- categories: detail.categories,
181
- }, null, 2),
182
- },
183
- ],
184
- };
99
+ const spec = await client.exchange.downloadSpec(groupId, assetId, version);
100
+ return mcpText(`Classifier: ${spec.classifier}\nFile: ${spec.fileName}\n\n${spec.content}`);
185
101
  }
186
102
  catch (error) {
187
103
  return mcpError(error);
@@ -197,29 +113,43 @@ export function registerExchangeTools(server, client) {
197
113
  assetId: z
198
114
  .string()
199
115
  .optional()
200
- .describe('Exchange asset ID. Default: the jar filename without the .jar extension.'),
201
- assetVersion: z.string().optional().describe('Exchange asset version (default: "1.0.0").'),
116
+ .describe('Exchange asset ID. Defaults to the embedded Maven artifactId; explicit publication mappings are preserved.'),
117
+ assetVersion: z
118
+ .string()
119
+ .optional()
120
+ .describe('Exchange asset version. Defaults to the embedded Maven version.'),
202
121
  groupId: z.string().optional().describe('Exchange group ID (default: the organization ID).'),
122
+ expectedSha256: z
123
+ .string()
124
+ .regex(/^[a-fA-F0-9]{64}$/)
125
+ .optional()
126
+ .describe('SHA-256 returned by the build or publication preview; rejects changed artifact bytes.'),
203
127
  confirm: z
204
128
  .boolean()
205
129
  .optional()
206
130
  .describe('Set true to upload. When omitted/false, returns a dry-run preview and uploads nothing.'),
207
131
  },
208
132
  annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false },
209
- }, async ({ jarPath, assetId, assetVersion, groupId, confirm }) => {
133
+ }, async ({ jarPath, assetId, assetVersion, groupId, expectedSha256, confirm }) => {
210
134
  try {
211
- const check = validateJarFile(jarPath);
212
- if (!check.valid) {
213
- return mcpText(`❌ ${check.error}`);
214
- }
215
135
  const orgId = await client.getDefaultOrgId();
216
- const resolvedGroupId = groupId || orgId;
217
- const resolvedAssetId = assetId || path.basename(jarPath).replace(/\.jar$/, '');
218
- const resolvedVersion = assetVersion || '1.0.0';
136
+ const { artifact, ref } = await resolveJarArtifact({
137
+ jarPath,
138
+ orgId,
139
+ assetId,
140
+ assetVersion,
141
+ groupId,
142
+ expectedSha256,
143
+ });
144
+ const resolvedGroupId = ref.groupId;
145
+ const resolvedAssetId = ref.artifactId;
146
+ const resolvedVersion = ref.version;
219
147
  if (!confirm) {
220
148
  return dryRunPreview({
221
149
  action: 'publish app jar to Exchange',
222
150
  jarPath,
151
+ artifact,
152
+ expectedSha256: artifact.sha256,
223
153
  coordinates: {
224
154
  groupId: resolvedGroupId,
225
155
  assetId: resolvedAssetId,
@@ -228,7 +158,7 @@ export function registerExchangeTools(server, client) {
228
158
  },
229
159
  });
230
160
  }
231
- const result = await client.exchange.publishAppAsset(orgId, resolvedGroupId, resolvedAssetId, resolvedVersion, jarPath);
161
+ const result = await client.exchange.publishAppAsset(orgId, resolvedGroupId, resolvedAssetId, resolvedVersion, jarPath, artifact.sha256);
232
162
  return mcpText({
233
163
  message: `✅ Published "${result.assetId}" v${result.version} to Exchange`,
234
164
  coordinates: {
@@ -244,166 +174,5 @@ export function registerExchangeTools(server, client) {
244
174
  return mcpError(error);
245
175
  }
246
176
  });
247
- server.registerTool('deploy_jar', {
248
- title: 'Deploy JAR (Publish + Deploy)',
249
- description: 'One-call deploy of a locally built Mule application JAR: publishes it to Exchange, then deploys it to CloudHub 2.0 — creating the app if it does not exist, or safely updating just the artifact ref if it does. For an existing app, create-only settings (runtime, region, vcores, replicas, jvmArgs, properties) are rejected, because an update must not restate infrastructure. Pass confirm:true to run; without it you get a dry-run preview and nothing is published or deployed.',
250
- inputSchema: {
251
- jarPath: z
252
- .string()
253
- .describe('Path to the built .jar file (e.g. "target/example-api-1.0.0-mule-application.jar")'),
254
- appName: z.string().describe('CloudHub 2.0 application name'),
255
- environment: z.string().describe('Environment name (e.g. "Sandbox", "Production") or environment ID'),
256
- assetId: z
257
- .string()
258
- .optional()
259
- .describe('Exchange asset ID (also used as the deployment artifactId). Default: jar filename without .jar.'),
260
- assetVersion: z
261
- .string()
262
- .optional()
263
- .describe('Exchange asset version and deployment version (default: "1.0.0").'),
264
- groupId: z.string().optional().describe('Exchange/Maven group ID (default: the organization ID).'),
265
- // create-only settings (rejected when the app already exists)
266
- runtime: z.string().optional().describe('[new app only] Mule runtime version (default: "4.8.0").'),
267
- replicas: z
268
- .number()
269
- .min(1)
270
- .max(8)
271
- .optional()
272
- .describe('[new app only] Number of replicas (default: 1).'),
273
- region: z
274
- .string()
275
- .optional()
276
- .describe('[new app only] CloudHub 2.0 target region (default: "cloudhub-us-east-2").'),
277
- vcores: z.string().optional().describe('[new app only] vCore size (default: "0.1").'),
278
- properties: z.record(z.string()).optional().describe('[new app only] Application properties.'),
279
- secureProperties: z
280
- .record(z.string())
281
- .optional()
282
- .describe('[new app only] Secure application properties.'),
283
- jvmArgs: z.string().optional().describe('[new app only] JVM arguments.'),
284
- wait: z
285
- .boolean()
286
- .optional()
287
- .describe('Wait for the deployment to reach a running state (default: false).'),
288
- confirm: z
289
- .boolean()
290
- .optional()
291
- .describe('Set true to publish and deploy. When omitted/false, returns a dry-run preview only.'),
292
- },
293
- annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false },
294
- }, async ({ jarPath, appName, environment, assetId, assetVersion, groupId, runtime, replicas, region, vcores, properties, secureProperties, jvmArgs, wait, confirm, }) => {
295
- try {
296
- const check = validateJarFile(jarPath);
297
- if (!check.valid) {
298
- return mcpText(`❌ ${check.error}`);
299
- }
300
- const orgId = await client.getDefaultOrgId();
301
- const env = await client.accessManagement.resolveEnvironment(orgId, environment);
302
- const existing = await client.cloudHub2.findDetailByName(orgId, env.id, appName);
303
- const resolvedGroupId = groupId || orgId;
304
- const resolvedAssetId = assetId || path.basename(jarPath).replace(/\.jar$/, '');
305
- const resolvedVersion = assetVersion || '1.0.0';
306
- // An update must not restate infra — reject create-only settings for an existing app.
307
- if (existing) {
308
- const rejected = [
309
- runtime && 'runtime',
310
- region && 'region',
311
- vcores && 'vcores',
312
- replicas && 'replicas',
313
- jvmArgs && 'jvmArgs',
314
- properties && 'properties',
315
- secureProperties && 'secureProperties',
316
- ].filter(Boolean);
317
- if (rejected.length) {
318
- return mcpText(`❌ "${appName}" already exists in ${env.name}; deploy_jar updates only the artifact ref and cannot change infrastructure. ` +
319
- `Remove these settings (${rejected.join(', ')}), or use update_app_settings / a fresh deploy to change them.`);
320
- }
321
- }
322
- const ref = {
323
- groupId: resolvedGroupId,
324
- artifactId: resolvedAssetId,
325
- version: resolvedVersion,
326
- packaging: 'jar',
327
- };
328
- const action = existing ? 'publish + update artifact ref' : 'publish + create deployment';
329
- if (!confirm) {
330
- return dryRunPreview({
331
- action,
332
- app: appName,
333
- environment: env.name,
334
- publish: {
335
- groupId: resolvedGroupId,
336
- assetId: resolvedAssetId,
337
- version: resolvedVersion,
338
- classifier: 'mule-application',
339
- },
340
- deploy: existing
341
- ? {
342
- mode: 'update',
343
- from: existing.application?.ref,
344
- to: ref,
345
- preserved: 'runtime, target/space, replicas, resources, settings',
346
- }
347
- : {
348
- mode: 'create',
349
- ref,
350
- runtime: runtime || '4.8.0',
351
- region: region || 'cloudhub-us-east-2',
352
- vcores: vcores || '0.1',
353
- replicas: replicas || 1,
354
- },
355
- });
356
- }
357
- // 1) Publish the jar to Exchange.
358
- const published = await client.exchange.publishAppAsset(orgId, resolvedGroupId, resolvedAssetId, resolvedVersion, jarPath);
359
- // 2) Deploy: safe ref-only update for an existing app, full create otherwise.
360
- let deployment;
361
- if (existing) {
362
- const merged = mergeForArtifactUpdate(existing, ref);
363
- deployment = await client.cloudHub2.updateArtifactRef(orgId, env.id, existing.id, merged.application.ref);
364
- }
365
- else {
366
- const payload = buildCreatePayload({
367
- appName,
368
- groupId: resolvedGroupId,
369
- artifactId: resolvedAssetId,
370
- version: resolvedVersion,
371
- runtime,
372
- replicas,
373
- region,
374
- vcores,
375
- properties,
376
- secureProperties,
377
- jvmArgs,
378
- });
379
- deployment = await client.cloudHub2.createDeployment(orgId, env.id, payload);
380
- }
381
- let waitResult;
382
- if (wait) {
383
- try {
384
- deployment = await client.cloudHub2.waitForDeployment(orgId, env.id, deployment.id);
385
- waitResult = deployment.status;
386
- }
387
- catch (waitErr) {
388
- waitResult = `did not settle: ${errorMessage(waitErr)}`;
389
- }
390
- }
391
- return mcpText({
392
- message: `✅ Deployed "${appName}" to ${env.name} (${existing ? 'updated' : 'created'})`,
393
- published: {
394
- groupId: published.groupId,
395
- assetId: published.assetId,
396
- version: published.version,
397
- },
398
- deploymentId: deployment.id,
399
- status: deployment.status,
400
- ...(existing ? { previousVersion: existing.application?.ref?.version } : {}),
401
- ...(wait ? { waitResult } : { tip: 'Use get_app_status to monitor progress.' }),
402
- });
403
- }
404
- catch (error) {
405
- return mcpError(error);
406
- }
407
- });
408
177
  }
409
178
  //# sourceMappingURL=exchange.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../../src/mcp/tools/exchange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../../src/mcp/tools/exchange.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MCP Tool Registrar — API Governance tools
3
+ * explain_api_governance_plan, get_api_governance_conformance
4
+ */
5
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
6
+ import type { AnypointClient } from '../../client/AnypointClient.js';
7
+ export declare function registerGovernanceTools(server: McpServer, client: AnypointClient): void;
8
+ //# sourceMappingURL=governance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/governance.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,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QA4DhF"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * MCP Tool Registrar — API Governance tools
3
+ * explain_api_governance_plan, get_api_governance_conformance
4
+ */
5
+ import { z } from 'zod';
6
+ import { mcpError } from './shared.js';
7
+ export function registerGovernanceTools(server, client) {
8
+ server.registerTool('explain_api_governance_plan', {
9
+ title: 'Explain API Governance Plan',
10
+ description: 'Reads the centralized governance rulesets that would apply to planned or published API coordinates.',
11
+ inputSchema: {
12
+ groupId: z.string(),
13
+ assetId: z.string(),
14
+ version: z.string().optional(),
15
+ filter: z.string().optional(),
16
+ },
17
+ annotations: { readOnlyHint: true },
18
+ }, async ({ groupId, assetId, version, filter }) => {
19
+ try {
20
+ const orgId = await client.getDefaultOrgId();
21
+ const ownerId = await client.designCenter.getOwnerId();
22
+ const result = version
23
+ ? await client.governance.explainPublished(orgId, ownerId, { groupId, assetId, version })
24
+ : await client.governance.explainPlanned(orgId, ownerId, { groupId, assetId, filter });
25
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
26
+ }
27
+ catch (error) {
28
+ return mcpError(error);
29
+ }
30
+ });
31
+ server.registerTool('get_api_governance_conformance', {
32
+ title: 'Get API Governance Conformance',
33
+ description: 'Reads centralized governance conformance for exact API asset versions, filtered by the caller permissions.',
34
+ inputSchema: {
35
+ groupId: z.string(),
36
+ assetId: z.string(),
37
+ minorVersion: z.string(),
38
+ versions: z.array(z.string()).min(1),
39
+ },
40
+ annotations: { readOnlyHint: true },
41
+ }, async ({ groupId, assetId, minorVersion, versions }) => {
42
+ try {
43
+ const orgId = await client.getDefaultOrgId();
44
+ const ownerId = await client.designCenter.getOwnerId();
45
+ const result = await client.governance.conformanceStatus(orgId, ownerId, {
46
+ orgId,
47
+ groupId,
48
+ assetId,
49
+ minorVersion,
50
+ versions,
51
+ });
52
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
53
+ }
54
+ catch (error) {
55
+ return mcpError(error);
56
+ }
57
+ });
58
+ }
59
+ //# sourceMappingURL=governance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"governance.js","sourceRoot":"","sources":["../../../src/mcp/tools/governance.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/identity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QA8I9E"}
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/identity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QAmH9E"}
@@ -3,7 +3,7 @@
3
3
  * whoami, list_environments, get_entitlements
4
4
  */
5
5
  import { errorMessage } from '../../utils/errors.js';
6
- import { mcpError } from './shared.js';
6
+ import { mcpError, mcpText } from './shared.js';
7
7
  export function registerIdentityTools(server, client) {
8
8
  server.registerTool('whoami', {
9
9
  title: 'Who Am I',
@@ -12,20 +12,13 @@ export function registerIdentityTools(server, client) {
12
12
  }, async () => {
13
13
  try {
14
14
  const me = await client.whoami();
15
- return {
16
- content: [
17
- {
18
- type: 'text',
19
- text: JSON.stringify({
20
- user: `${me.firstName} ${me.lastName}`,
21
- username: me.username,
22
- email: me.email,
23
- organization: me.organization.name,
24
- orgId: me.organization.id,
25
- }, null, 2),
26
- },
27
- ],
28
- };
15
+ return mcpText({
16
+ user: `${me.firstName} ${me.lastName}`,
17
+ username: me.username,
18
+ email: me.email,
19
+ organization: me.organization.name,
20
+ orgId: me.organization.id,
21
+ });
29
22
  }
30
23
  catch (error) {
31
24
  return {
@@ -47,19 +40,12 @@ export function registerIdentityTools(server, client) {
47
40
  try {
48
41
  const orgId = await client.getDefaultOrgId();
49
42
  const envs = await client.accessManagement.getEnvironments(orgId);
50
- return {
51
- content: [
52
- {
53
- type: 'text',
54
- text: JSON.stringify(envs.map((e) => ({
55
- id: e.id,
56
- name: e.name,
57
- type: e.type,
58
- isProduction: e.isProduction,
59
- })), null, 2),
60
- },
61
- ],
62
- };
43
+ return mcpText(envs.map((e) => ({
44
+ id: e.id,
45
+ name: e.name,
46
+ type: e.type,
47
+ isProduction: e.isProduction,
48
+ })));
63
49
  }
64
50
  catch (error) {
65
51
  return mcpError(error);
@@ -109,14 +95,7 @@ export function registerIdentityTools(server, client) {
109
95
  runtimeFabricCloud: e.runtimeFabricCloud,
110
96
  visualization: e.appViz,
111
97
  };
112
- return {
113
- content: [
114
- {
115
- type: 'text',
116
- text: JSON.stringify(summary, null, 2),
117
- },
118
- ],
119
- };
98
+ return mcpText(summary);
120
99
  }
121
100
  catch (error) {
122
101
  return mcpError(error);