@sfdxy/anypoint-connect 0.14.0 → 0.16.2
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.
- package/README.md +39 -16
- package/dist/analysis/LogAnalyzer.d.ts +10 -4
- package/dist/analysis/LogAnalyzer.d.ts.map +1 -1
- package/dist/analysis/LogAnalyzer.js +29 -18
- package/dist/analysis/LogAnalyzer.js.map +1 -1
- package/dist/analysis/error-context.d.ts +2 -0
- package/dist/analysis/error-context.d.ts.map +1 -1
- package/dist/analysis/error-context.js +2 -1
- package/dist/analysis/error-context.js.map +1 -1
- package/dist/analysis/error-grouper.js +1 -1
- package/dist/analysis/error-grouper.js.map +1 -1
- package/dist/analysis/filter.d.ts +54 -0
- package/dist/analysis/filter.d.ts.map +1 -0
- package/dist/analysis/filter.js +100 -0
- package/dist/analysis/filter.js.map +1 -0
- package/dist/analysis/{utils.d.ts → normalize.d.ts} +1 -1
- package/dist/analysis/normalize.d.ts.map +1 -0
- package/dist/analysis/{utils.js → normalize.js} +2 -2
- package/dist/analysis/normalize.js.map +1 -0
- package/dist/analysis/parser.d.ts.map +1 -1
- package/dist/analysis/parser.js +45 -17
- package/dist/analysis/parser.js.map +1 -1
- package/dist/analysis/pattern-detector.js +1 -1
- package/dist/analysis/pattern-detector.js.map +1 -1
- package/dist/analysis/stats.d.ts +25 -0
- package/dist/analysis/stats.d.ts.map +1 -1
- package/dist/analysis/stats.js +35 -1
- package/dist/analysis/stats.js.map +1 -1
- package/dist/analysis/summary.d.ts +51 -0
- package/dist/analysis/summary.d.ts.map +1 -0
- package/dist/analysis/summary.js +47 -0
- package/dist/analysis/summary.js.map +1 -0
- package/dist/analysis/types.d.ts +14 -0
- package/dist/analysis/types.d.ts.map +1 -1
- package/dist/api/ApiManagerApi.d.ts +53 -0
- package/dist/api/ApiManagerApi.d.ts.map +1 -1
- package/dist/api/ApiManagerApi.js +53 -2
- package/dist/api/ApiManagerApi.js.map +1 -1
- package/dist/api/CloudHub2Api.d.ts +24 -4
- package/dist/api/CloudHub2Api.d.ts.map +1 -1
- package/dist/api/CloudHub2Api.js +10 -22
- package/dist/api/CloudHub2Api.js.map +1 -1
- package/dist/api/DesignCenterApi.d.ts +0 -20
- package/dist/api/DesignCenterApi.d.ts.map +1 -1
- package/dist/api/DesignCenterApi.js +0 -22
- package/dist/api/DesignCenterApi.js.map +1 -1
- package/dist/api/ExchangeApi.d.ts +15 -0
- package/dist/api/ExchangeApi.d.ts.map +1 -1
- package/dist/api/ExchangeApi.js +51 -0
- package/dist/api/ExchangeApi.js.map +1 -1
- package/dist/api/LogsApi.d.ts +50 -18
- package/dist/api/LogsApi.d.ts.map +1 -1
- package/dist/api/LogsApi.js +69 -98
- package/dist/api/LogsApi.js.map +1 -1
- package/dist/api/MonitoringApi.d.ts +137 -93
- package/dist/api/MonitoringApi.d.ts.map +1 -1
- package/dist/api/MonitoringApi.js +471 -204
- package/dist/api/MonitoringApi.js.map +1 -1
- package/dist/api/RuntimesApi.d.ts +56 -0
- package/dist/api/RuntimesApi.d.ts.map +1 -0
- package/dist/api/RuntimesApi.js +58 -0
- package/dist/api/RuntimesApi.js.map +1 -0
- package/dist/auth/FileStore.js +1 -1
- package/dist/auth/FileStore.js.map +1 -1
- package/dist/cli.js +4 -2
- package/dist/cli.js.map +1 -1
- package/dist/client/AnypointClient.d.ts +3 -1
- package/dist/client/AnypointClient.d.ts.map +1 -1
- package/dist/client/AnypointClient.js +5 -2
- package/dist/client/AnypointClient.js.map +1 -1
- package/dist/client/smoke-test.d.ts +111 -0
- package/dist/client/smoke-test.d.ts.map +1 -0
- package/dist/client/smoke-test.js +275 -0
- package/dist/client/smoke-test.js.map +1 -0
- package/dist/commands/api.d.ts +1 -1
- package/dist/commands/api.d.ts.map +1 -1
- package/dist/commands/api.js +175 -30
- package/dist/commands/api.js.map +1 -1
- package/dist/commands/app-change-cli.d.ts +52 -0
- package/dist/commands/app-change-cli.d.ts.map +1 -0
- package/dist/commands/app-change-cli.js +149 -0
- package/dist/commands/app-change-cli.js.map +1 -0
- package/dist/commands/apps.d.ts +1 -1
- package/dist/commands/apps.d.ts.map +1 -1
- package/dist/commands/apps.js +199 -18
- package/dist/commands/apps.js.map +1 -1
- package/dist/commands/auth.js +1 -1
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/compare.d.ts +8 -0
- package/dist/commands/compare.d.ts.map +1 -0
- package/dist/commands/compare.js +104 -0
- package/dist/commands/compare.js.map +1 -0
- package/dist/commands/config.js +1 -1
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/deploy.d.ts +6 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +89 -91
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/design-center.d.ts +1 -1
- package/dist/commands/design-center.d.ts.map +1 -1
- package/dist/commands/design-center.js +36 -25
- package/dist/commands/design-center.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/logs.d.ts +3 -2
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +142 -17
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/monitor.d.ts +5 -6
- package/dist/commands/monitor.d.ts.map +1 -1
- package/dist/commands/monitor.js +210 -230
- package/dist/commands/monitor.js.map +1 -1
- package/dist/commands/runtimes.d.ts +7 -0
- package/dist/commands/runtimes.d.ts.map +1 -0
- package/dist/commands/runtimes.js +66 -0
- package/dist/commands/runtimes.js.map +1 -0
- package/dist/commands/shared.d.ts +2 -0
- package/dist/commands/shared.d.ts.map +1 -1
- package/dist/commands/shared.js +16 -1
- package/dist/commands/shared.js.map +1 -1
- package/dist/{utils/config.d.ts → config/profiles.d.ts} +9 -1
- package/dist/config/profiles.d.ts.map +1 -0
- package/dist/{utils/config.js → config/profiles.js} +1 -1
- package/dist/config/profiles.js.map +1 -0
- package/dist/index.d.ts +12 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp/prompts.js +7 -7
- package/dist/mcp/prompts.js.map +1 -1
- package/dist/mcp/server.d.ts +14 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +61 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/analysis.d.ts.map +1 -1
- package/dist/mcp/tools/analysis.js +74 -46
- package/dist/mcp/tools/analysis.js.map +1 -1
- package/dist/mcp/tools/anypoint-mq.d.ts.map +1 -1
- package/dist/mcp/tools/anypoint-mq.js +25 -54
- package/dist/mcp/tools/anypoint-mq.js.map +1 -1
- package/dist/mcp/tools/api-manager.d.ts +2 -1
- package/dist/mcp/tools/api-manager.d.ts.map +1 -1
- package/dist/mcp/tools/api-manager.js +154 -89
- package/dist/mcp/tools/api-manager.js.map +1 -1
- package/dist/mcp/tools/app-inputs.d.ts +92 -0
- package/dist/mcp/tools/app-inputs.d.ts.map +1 -0
- package/dist/mcp/tools/app-inputs.js +142 -0
- package/dist/mcp/tools/app-inputs.js.map +1 -0
- package/dist/mcp/tools/apps-deploy.d.ts +13 -0
- package/dist/mcp/tools/apps-deploy.d.ts.map +1 -0
- package/dist/mcp/tools/apps-deploy.js +358 -0
- package/dist/mcp/tools/apps-deploy.js.map +1 -0
- package/dist/mcp/tools/apps-lifecycle.d.ts +11 -0
- package/dist/mcp/tools/apps-lifecycle.d.ts.map +1 -0
- package/dist/mcp/tools/apps-lifecycle.js +244 -0
- package/dist/mcp/tools/apps-lifecycle.js.map +1 -0
- package/dist/mcp/tools/apps-read.d.ts +9 -0
- package/dist/mcp/tools/apps-read.d.ts.map +1 -0
- package/dist/mcp/tools/apps-read.js +414 -0
- package/dist/mcp/tools/apps-read.js.map +1 -0
- package/dist/mcp/tools/artifacts.d.ts +8 -0
- package/dist/mcp/tools/artifacts.d.ts.map +1 -0
- package/dist/mcp/tools/artifacts.js +81 -0
- package/dist/mcp/tools/artifacts.js.map +1 -0
- package/dist/mcp/tools/audit.d.ts.map +1 -1
- package/dist/mcp/tools/audit.js +9 -17
- package/dist/mcp/tools/audit.js.map +1 -1
- package/dist/mcp/tools/design-center.d.ts +2 -3
- package/dist/mcp/tools/design-center.d.ts.map +1 -1
- package/dist/mcp/tools/design-center.js +41 -185
- package/dist/mcp/tools/design-center.js.map +1 -1
- package/dist/mcp/tools/exchange.d.ts +1 -2
- package/dist/mcp/tools/exchange.d.ts.map +1 -1
- package/dist/mcp/tools/exchange.js +51 -312
- package/dist/mcp/tools/exchange.js.map +1 -1
- package/dist/mcp/tools/governance.d.ts +8 -0
- package/dist/mcp/tools/governance.d.ts.map +1 -0
- package/dist/mcp/tools/governance.js +59 -0
- package/dist/mcp/tools/governance.js.map +1 -0
- package/dist/mcp/tools/identity.d.ts.map +1 -1
- package/dist/mcp/tools/identity.js +15 -36
- package/dist/mcp/tools/identity.js.map +1 -1
- package/dist/mcp/tools/index.d.ts +5 -1
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +5 -1
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/logs.d.ts +48 -2
- package/dist/mcp/tools/logs.d.ts.map +1 -1
- package/dist/mcp/tools/logs.js +204 -54
- package/dist/mcp/tools/logs.js.map +1 -1
- package/dist/mcp/tools/monitoring.d.ts +1 -2
- package/dist/mcp/tools/monitoring.d.ts.map +1 -1
- package/dist/mcp/tools/monitoring.js +78 -285
- package/dist/mcp/tools/monitoring.js.map +1 -1
- package/dist/mcp/tools/object-store.d.ts +1 -1
- package/dist/mcp/tools/object-store.d.ts.map +1 -1
- package/dist/mcp/tools/object-store.js +19 -59
- package/dist/mcp/tools/object-store.js.map +1 -1
- package/dist/mcp/tools/profile.d.ts.map +1 -1
- package/dist/mcp/tools/profile.js +15 -35
- package/dist/mcp/tools/profile.js.map +1 -1
- package/dist/mcp/tools/shared.d.ts +43 -0
- package/dist/mcp/tools/shared.d.ts.map +1 -1
- package/dist/mcp/tools/shared.js +54 -0
- package/dist/mcp/tools/shared.js.map +1 -1
- package/dist/mcp.d.ts +3 -11
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +4 -56
- package/dist/mcp.js.map +1 -1
- package/dist/safety/deployment.d.ts +47 -2
- package/dist/safety/deployment.d.ts.map +1 -1
- package/dist/safety/deployment.js +139 -6
- package/dist/safety/deployment.js.map +1 -1
- package/dist/safety/guards.d.ts +2 -2
- package/dist/safety/guards.d.ts.map +1 -1
- package/dist/safety/guards.js +4 -4
- package/dist/safety/guards.js.map +1 -1
- package/dist/safety/paths.d.ts +29 -0
- package/dist/safety/paths.d.ts.map +1 -0
- package/dist/safety/paths.js +76 -0
- package/dist/safety/paths.js.map +1 -0
- package/dist/safety/runtime.d.ts +24 -0
- package/dist/safety/runtime.d.ts.map +1 -0
- package/dist/safety/runtime.js +59 -0
- package/dist/safety/runtime.js.map +1 -0
- package/dist/safety/secret-sources.d.ts +51 -0
- package/dist/safety/secret-sources.d.ts.map +1 -0
- package/dist/safety/secret-sources.js +124 -0
- package/dist/safety/secret-sources.js.map +1 -0
- package/dist/safety/secrets.d.ts +32 -0
- package/dist/safety/secrets.d.ts.map +1 -0
- package/dist/safety/secrets.js +91 -0
- package/dist/safety/secrets.js.map +1 -0
- package/dist/utils/errors.d.ts +14 -1
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +31 -3
- package/dist/utils/errors.js.map +1 -1
- package/dist/workflows/app-change.d.ts +124 -0
- package/dist/workflows/app-change.d.ts.map +1 -0
- package/dist/workflows/app-change.js +305 -0
- package/dist/workflows/app-change.js.map +1 -0
- package/dist/workflows/app-state.d.ts +60 -0
- package/dist/workflows/app-state.d.ts.map +1 -0
- package/dist/workflows/app-state.js +95 -0
- package/dist/workflows/app-state.js.map +1 -0
- package/dist/workflows/artifact-compare.d.ts +134 -0
- package/dist/workflows/artifact-compare.d.ts.map +1 -0
- package/dist/workflows/artifact-compare.js +419 -0
- package/dist/workflows/artifact-compare.js.map +1 -0
- package/dist/workflows/asset-naming.d.ts +72 -0
- package/dist/workflows/asset-naming.d.ts.map +1 -0
- package/dist/workflows/asset-naming.js +116 -0
- package/dist/workflows/asset-naming.js.map +1 -0
- package/dist/{api/DesignCenterWorkflow.d.ts → workflows/design-center.d.ts} +4 -4
- package/dist/workflows/design-center.d.ts.map +1 -0
- package/dist/{api/DesignCenterWorkflow.js → workflows/design-center.js} +1 -1
- package/dist/workflows/design-center.js.map +1 -0
- package/dist/workflows/jar-deployment.d.ts +156 -0
- package/dist/workflows/jar-deployment.d.ts.map +1 -0
- package/dist/workflows/jar-deployment.js +178 -0
- package/dist/workflows/jar-deployment.js.map +1 -0
- package/package.json +12 -4
- package/dist/analysis/utils.d.ts.map +0 -1
- package/dist/analysis/utils.js.map +0 -1
- package/dist/api/DesignCenterWorkflow.d.ts.map +0 -1
- package/dist/api/DesignCenterWorkflow.js.map +0 -1
- package/dist/api/index.d.ts +0 -13
- package/dist/api/index.d.ts.map +0 -1
- package/dist/api/index.js +0 -13
- package/dist/api/index.js.map +0 -1
- package/dist/mcp/tools/applications.d.ts +0 -4
- package/dist/mcp/tools/applications.d.ts.map +0 -1
- package/dist/mcp/tools/applications.js +0 -815
- package/dist/mcp/tools/applications.js.map +0 -1
- package/dist/utils/config.d.ts.map +0 -1
- package/dist/utils/config.js.map +0 -1
|
@@ -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,9 @@
|
|
|
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
|
+
* list_runtime_versions, suggest_asset_name
|
|
5
|
+
*/
|
|
6
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
7
|
+
import type { AnypointClient } from '../../client/AnypointClient.js';
|
|
8
|
+
export declare function registerAppReadTools(server: McpServer, client: AnypointClient): void;
|
|
9
|
+
//# 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;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAWrE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QAwc7E"}
|
|
@@ -0,0 +1,414 @@
|
|
|
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
|
+
* list_runtime_versions, suggest_asset_name
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { mcpError, mcpText, resolveEnvironment } from './shared.js';
|
|
8
|
+
import { currentSettings } from '../../safety/deployment.js';
|
|
9
|
+
import { looksSecret, redactDeep, redactRecord } from '../../safety/secrets.js';
|
|
10
|
+
import { parseRuntimeString, resolveRuntime, suggestRuntimes, compareVersions } from '../../safety/runtime.js';
|
|
11
|
+
import { deploymentPhase, waitForAppPhase } from '../../workflows/app-state.js';
|
|
12
|
+
import { resolveJarArtifact } from '../../workflows/jar-deployment.js';
|
|
13
|
+
import { inferConvention, suggestAssetCoordinates } from '../../workflows/asset-naming.js';
|
|
14
|
+
import { discoverProjectConfig } from '../../config/profiles.js';
|
|
15
|
+
import { errorMessage } from '../../utils/errors.js';
|
|
16
|
+
export function registerAppReadTools(server, client) {
|
|
17
|
+
server.registerTool('list_apps', {
|
|
18
|
+
title: 'List Applications',
|
|
19
|
+
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.',
|
|
20
|
+
inputSchema: {
|
|
21
|
+
environment: z
|
|
22
|
+
.string()
|
|
23
|
+
.describe('Environment name (e.g. "Development", "Production") or environment ID'),
|
|
24
|
+
},
|
|
25
|
+
annotations: { readOnlyHint: true },
|
|
26
|
+
}, async ({ environment }) => {
|
|
27
|
+
try {
|
|
28
|
+
const { orgId, env } = await resolveEnvironment(client, environment);
|
|
29
|
+
const deployments = await client.cloudHub2.getDetailedDeployments(orgId, env.id);
|
|
30
|
+
return mcpText(deployments.map((d) => ({
|
|
31
|
+
name: d.name,
|
|
32
|
+
status: d.status,
|
|
33
|
+
version: d.application?.ref?.version,
|
|
34
|
+
runtime: d.target?.deploymentSettings?.runtime?.version,
|
|
35
|
+
vCores: d.application?.vCores,
|
|
36
|
+
replicas: d.target?.replicas,
|
|
37
|
+
id: d.id,
|
|
38
|
+
})));
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
return mcpError(error);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
server.registerTool('get_app_status', {
|
|
45
|
+
title: 'Get Application Status',
|
|
46
|
+
description: "Returns detailed deployment information for a specific Mule application: a phase (RUNNING, STARTING, UPDATING, DEGRADED, FAILED, STOPPING, STOPPED) with settled and reason, the raw platform status, artifact version, Mule runtime, resources, autoscaling, JVM args, clustering, each replica's state, the public URL and last update. " +
|
|
47
|
+
'The phase hides the brief FAILED the platform reports while a stopped app starts; FAILED is only reported once it persists past the start-up grace window. ' +
|
|
48
|
+
'Pass wait: true to poll until the app settles or fails.',
|
|
49
|
+
inputSchema: {
|
|
50
|
+
appName: z.string().describe('Application name exactly as deployed (case-insensitive match)'),
|
|
51
|
+
environment: z.string().describe('Environment name (e.g. "Production") or environment ID'),
|
|
52
|
+
wait: z
|
|
53
|
+
.boolean()
|
|
54
|
+
.optional()
|
|
55
|
+
.describe('Poll until the app is settled, failed or degraded (default: false)'),
|
|
56
|
+
waitSeconds: z.number().min(10).max(1800).optional().describe('Wait limit in seconds (default 300)'),
|
|
57
|
+
},
|
|
58
|
+
annotations: { readOnlyHint: true },
|
|
59
|
+
}, async ({ appName, environment, wait, waitSeconds }) => {
|
|
60
|
+
try {
|
|
61
|
+
const { orgId, env } = await resolveEnvironment(client, environment);
|
|
62
|
+
let deployment = await client.cloudHub2.findDetailByName(orgId, env.id, appName);
|
|
63
|
+
if (!deployment) {
|
|
64
|
+
return mcpText(`Application "${appName}" not found in ${env.name}`);
|
|
65
|
+
}
|
|
66
|
+
let snapshot = deploymentPhase(deployment);
|
|
67
|
+
let timedOut = false;
|
|
68
|
+
if (wait && !snapshot.terminal) {
|
|
69
|
+
const result = await waitForAppPhase(client.cloudHub2, orgId, env.id, deployment.id, {
|
|
70
|
+
sinceChange: deployment.lastModifiedDate,
|
|
71
|
+
timeoutMs: waitSeconds ? waitSeconds * 1000 : undefined,
|
|
72
|
+
});
|
|
73
|
+
deployment = result.deployment;
|
|
74
|
+
snapshot = result.snapshot;
|
|
75
|
+
timedOut = result.timedOut;
|
|
76
|
+
}
|
|
77
|
+
return mcpText({
|
|
78
|
+
name: deployment.name,
|
|
79
|
+
phase: snapshot.phase,
|
|
80
|
+
settled: snapshot.settled,
|
|
81
|
+
...(snapshot.reason ? { reason: snapshot.reason } : {}),
|
|
82
|
+
...(timedOut ? { timedOut: true } : {}),
|
|
83
|
+
desiredState: deployment.application?.desiredState,
|
|
84
|
+
status: deployment.status,
|
|
85
|
+
version: deployment.application?.ref?.version,
|
|
86
|
+
groupId: deployment.application?.ref?.groupId,
|
|
87
|
+
artifactId: deployment.application?.ref?.artifactId,
|
|
88
|
+
runtime: deployment.target?.deploymentSettings?.runtime?.version,
|
|
89
|
+
resources: {
|
|
90
|
+
cpu: deployment.target?.deploymentSettings?.resources?.cpu,
|
|
91
|
+
memory: deployment.target?.deploymentSettings?.resources?.memory,
|
|
92
|
+
vCores: deployment.application?.vCores,
|
|
93
|
+
},
|
|
94
|
+
autoscaling: deployment.target?.deploymentSettings?.autoscaling,
|
|
95
|
+
jvm: deployment.target?.deploymentSettings?.jvm,
|
|
96
|
+
clustered: deployment.target?.deploymentSettings?.clustered,
|
|
97
|
+
updateStrategy: deployment.target?.deploymentSettings?.updateStrategy,
|
|
98
|
+
replicas: deployment.replicas?.map((r) => ({
|
|
99
|
+
id: r.id,
|
|
100
|
+
state: r.state,
|
|
101
|
+
location: r.deploymentLocation,
|
|
102
|
+
onCurrentSpec: !deployment?.desiredVersion || r.currentDeploymentVersion === deployment.desiredVersion,
|
|
103
|
+
...(r.reason ? { reason: r.reason } : {}),
|
|
104
|
+
})),
|
|
105
|
+
publicUrl: deployment.target?.deploymentSettings?.http?.inbound?.publicUrl,
|
|
106
|
+
updatedAt: deployment.lastModifiedDate
|
|
107
|
+
? new Date(deployment.lastModifiedDate).toISOString()
|
|
108
|
+
: undefined,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
return mcpError(error);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
server.registerTool('get_deployment_spec', {
|
|
116
|
+
title: 'Get Deployment Spec',
|
|
117
|
+
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.',
|
|
118
|
+
inputSchema: {
|
|
119
|
+
appName: z.string().describe('Application name exactly as deployed (case-insensitive match)'),
|
|
120
|
+
environment: z.string().describe('Environment name (e.g. "Production") or environment ID'),
|
|
121
|
+
},
|
|
122
|
+
annotations: { readOnlyHint: true },
|
|
123
|
+
}, async ({ appName, environment }) => {
|
|
124
|
+
try {
|
|
125
|
+
const { orgId, env } = await resolveEnvironment(client, environment);
|
|
126
|
+
const d = await client.cloudHub2.findDetailByName(orgId, env.id, appName);
|
|
127
|
+
if (!d) {
|
|
128
|
+
return mcpText(`Application "${appName}" not found in ${env.name}`);
|
|
129
|
+
}
|
|
130
|
+
const settings = d.target?.deploymentSettings;
|
|
131
|
+
const targetId = d.target?.targetId || '';
|
|
132
|
+
const isPrivateSpace = !targetId.startsWith('cloudhub-');
|
|
133
|
+
return mcpText({
|
|
134
|
+
name: d.name,
|
|
135
|
+
deploymentId: d.id,
|
|
136
|
+
status: d.status,
|
|
137
|
+
ref: d.application?.ref,
|
|
138
|
+
runtime: settings?.runtime?.version,
|
|
139
|
+
target: {
|
|
140
|
+
provider: d.target?.provider,
|
|
141
|
+
targetId,
|
|
142
|
+
kind: isPrivateSpace ? 'private-space' : 'shared-region',
|
|
143
|
+
},
|
|
144
|
+
vCores: d.application?.vCores,
|
|
145
|
+
resources: settings?.resources,
|
|
146
|
+
replicas: {
|
|
147
|
+
count: d.target?.replicas ?? 0,
|
|
148
|
+
states: d.replicas?.map((r) => ({
|
|
149
|
+
id: r.id,
|
|
150
|
+
state: r.state,
|
|
151
|
+
location: r.deploymentLocation,
|
|
152
|
+
version: r.currentDeploymentVersion,
|
|
153
|
+
})),
|
|
154
|
+
},
|
|
155
|
+
updateStrategy: settings?.updateStrategy,
|
|
156
|
+
clustered: settings?.clustered,
|
|
157
|
+
autoscaling: settings?.autoscaling,
|
|
158
|
+
jvm: settings?.jvm,
|
|
159
|
+
publicUrl: settings?.http?.inbound?.publicUrl,
|
|
160
|
+
desiredVersion: d.desiredVersion,
|
|
161
|
+
lastSuccessfulVersion: d.lastSuccessfulVersion,
|
|
162
|
+
createdAt: d.creationDate ? new Date(d.creationDate).toISOString() : undefined,
|
|
163
|
+
updatedAt: d.lastModifiedDate ? new Date(d.lastModifiedDate).toISOString() : undefined,
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
return mcpError(error);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
server.registerTool('get_app_resources', {
|
|
171
|
+
title: 'Get Application Resources',
|
|
172
|
+
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.',
|
|
173
|
+
inputSchema: {
|
|
174
|
+
environment: z.string().describe('Environment name (e.g. "Production") or environment ID'),
|
|
175
|
+
},
|
|
176
|
+
annotations: { readOnlyHint: true },
|
|
177
|
+
}, async ({ environment }) => {
|
|
178
|
+
try {
|
|
179
|
+
const { orgId, env } = await resolveEnvironment(client, environment);
|
|
180
|
+
const deployments = await client.cloudHub2.getDetailedDeployments(orgId, env.id);
|
|
181
|
+
const resources = deployments.map((d) => ({
|
|
182
|
+
name: d.name,
|
|
183
|
+
status: d.status,
|
|
184
|
+
vCores: d.application?.vCores,
|
|
185
|
+
cpu: d.target?.deploymentSettings?.resources?.cpu,
|
|
186
|
+
memory: d.target?.deploymentSettings?.resources?.memory,
|
|
187
|
+
replicas: d.target?.replicas ?? 0,
|
|
188
|
+
autoscaling: d.target?.deploymentSettings?.autoscaling,
|
|
189
|
+
jvm: d.target?.deploymentSettings?.jvm,
|
|
190
|
+
clustered: d.target?.deploymentSettings?.clustered,
|
|
191
|
+
updateStrategy: d.target?.deploymentSettings?.updateStrategy,
|
|
192
|
+
}));
|
|
193
|
+
return mcpText({
|
|
194
|
+
environment: env.name,
|
|
195
|
+
apps: resources,
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
return mcpError(error);
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
server.registerTool('get_app_settings', {
|
|
203
|
+
title: 'Get Application Settings',
|
|
204
|
+
description: 'Reads the application properties of a CloudHub 2.0 app: plain properties as key-value pairs and the names of secure properties (their values are never returned). ' +
|
|
205
|
+
'Plain properties whose names look like secrets (password, secret, token, key, credential) are masked by default and listed under warnings with a fix: update_app_settings moveToSecure. Pass redact: false to see them.',
|
|
206
|
+
inputSchema: {
|
|
207
|
+
appName: z.string().describe('Application name exactly as deployed (case-insensitive match)'),
|
|
208
|
+
environment: z.string().describe('Environment name (e.g. "Production") or environment ID'),
|
|
209
|
+
redact: z
|
|
210
|
+
.boolean()
|
|
211
|
+
.optional()
|
|
212
|
+
.describe('Mask plain properties whose names look like secrets (default: true)'),
|
|
213
|
+
},
|
|
214
|
+
annotations: { readOnlyHint: true },
|
|
215
|
+
}, async ({ appName, environment, redact }) => {
|
|
216
|
+
try {
|
|
217
|
+
const { orgId, env } = await resolveEnvironment(client, environment);
|
|
218
|
+
const detail = await client.cloudHub2.findDetailByName(orgId, env.id, appName);
|
|
219
|
+
if (!detail) {
|
|
220
|
+
return mcpText(`Application "${appName}" not found in ${env.name}`);
|
|
221
|
+
}
|
|
222
|
+
const { properties, secureProperties } = currentSettings(detail);
|
|
223
|
+
const secretLooking = Object.keys(properties).filter((key) => looksSecret(key));
|
|
224
|
+
const { 'mule.agent.application.properties.service': _service, ...otherServices } = (detail.application
|
|
225
|
+
?.configuration ?? {});
|
|
226
|
+
return mcpText({
|
|
227
|
+
appName: detail.name,
|
|
228
|
+
environment: env.name,
|
|
229
|
+
properties: redact === false ? properties : redactRecord(properties),
|
|
230
|
+
securePropertyKeys: Object.keys(secureProperties),
|
|
231
|
+
...(secretLooking.length
|
|
232
|
+
? {
|
|
233
|
+
warnings: secretLooking.map((key) => ({
|
|
234
|
+
key,
|
|
235
|
+
issue: 'secret-like key stored as a plain property',
|
|
236
|
+
fix: `update_app_settings with moveToSecure: ["${key}"]`,
|
|
237
|
+
})),
|
|
238
|
+
}
|
|
239
|
+
: {}),
|
|
240
|
+
...(Object.keys(otherServices).length ? { otherConfiguration: redactDeep(otherServices) } : {}),
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
return mcpError(error);
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
server.registerTool('compare_app_deployments', {
|
|
248
|
+
title: 'Compare Environments',
|
|
249
|
+
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.',
|
|
250
|
+
inputSchema: {
|
|
251
|
+
env1: z.string().describe('First environment name (e.g. "Development")'),
|
|
252
|
+
env2: z.string().describe('Second environment name (e.g. "Production")'),
|
|
253
|
+
},
|
|
254
|
+
annotations: { readOnlyHint: true },
|
|
255
|
+
}, async ({ env1, env2 }) => {
|
|
256
|
+
try {
|
|
257
|
+
const orgId = await client.getDefaultOrgId();
|
|
258
|
+
const [e1, e2] = await Promise.all([
|
|
259
|
+
client.accessManagement.resolveEnvironment(orgId, env1),
|
|
260
|
+
client.accessManagement.resolveEnvironment(orgId, env2),
|
|
261
|
+
]);
|
|
262
|
+
const [apps1, apps2] = await Promise.all([
|
|
263
|
+
client.cloudHub2.getDetailedDeployments(orgId, e1.id),
|
|
264
|
+
client.cloudHub2.getDetailedDeployments(orgId, e2.id),
|
|
265
|
+
]);
|
|
266
|
+
const allNames = new Set([...apps1.map((a) => a.name), ...apps2.map((a) => a.name)]);
|
|
267
|
+
const comparison = Array.from(allNames)
|
|
268
|
+
.sort()
|
|
269
|
+
.map((name) => {
|
|
270
|
+
const a1 = apps1.find((a) => a.name === name);
|
|
271
|
+
const a2 = apps2.find((a) => a.name === name);
|
|
272
|
+
return {
|
|
273
|
+
name,
|
|
274
|
+
[e1.name]: a1
|
|
275
|
+
? {
|
|
276
|
+
status: a1.status,
|
|
277
|
+
version: a1.application?.ref?.version || '-',
|
|
278
|
+
replicas: a1.target?.replicas || 0,
|
|
279
|
+
}
|
|
280
|
+
: 'NOT DEPLOYED',
|
|
281
|
+
[e2.name]: a2
|
|
282
|
+
? {
|
|
283
|
+
status: a2.status,
|
|
284
|
+
version: a2.application?.ref?.version || '-',
|
|
285
|
+
replicas: a2.target?.replicas || 0,
|
|
286
|
+
}
|
|
287
|
+
: 'NOT DEPLOYED',
|
|
288
|
+
versionMatch: a1 && a2 ? a1.application?.ref?.version === a2.application?.ref?.version : null,
|
|
289
|
+
};
|
|
290
|
+
});
|
|
291
|
+
return mcpText({ comparison });
|
|
292
|
+
}
|
|
293
|
+
catch (error) {
|
|
294
|
+
return mcpError(error);
|
|
295
|
+
}
|
|
296
|
+
});
|
|
297
|
+
server.registerTool('list_runtime_versions', {
|
|
298
|
+
title: 'List Runtime Versions',
|
|
299
|
+
description: "Lists the Mule runtime versions a CloudHub 2.0 target accepts, with release channel and Java versions. Pass appName to use that app's target and see whether its current runtime is still offered, with the nearest supported versions when it is not. Use before update_app with runtime.",
|
|
300
|
+
inputSchema: {
|
|
301
|
+
environment: z.string().describe('Environment name or ID'),
|
|
302
|
+
appName: z
|
|
303
|
+
.string()
|
|
304
|
+
.optional()
|
|
305
|
+
.describe('Application whose target to check (and whose runtime to evaluate)'),
|
|
306
|
+
targetId: z.string().optional().describe('Target ID, e.g. "cloudhub-us-east-2" or a private space ID'),
|
|
307
|
+
},
|
|
308
|
+
annotations: { readOnlyHint: true },
|
|
309
|
+
}, async ({ environment, appName, targetId }) => {
|
|
310
|
+
try {
|
|
311
|
+
const { orgId, env } = await resolveEnvironment(client, environment);
|
|
312
|
+
const app = appName ? await client.cloudHub2.findDetailByName(orgId, env.id, appName) : null;
|
|
313
|
+
if (appName && !app)
|
|
314
|
+
return mcpText(`Application "${appName}" not found in ${env.name}`);
|
|
315
|
+
const resolvedTarget = targetId ?? app?.target?.targetId;
|
|
316
|
+
if (!resolvedTarget) {
|
|
317
|
+
const targets = await client.runtimes.getTargets(orgId);
|
|
318
|
+
return mcpText({
|
|
319
|
+
targets: targets.map((t) => ({
|
|
320
|
+
id: t.id,
|
|
321
|
+
name: t.name,
|
|
322
|
+
type: t.type,
|
|
323
|
+
versions: t.runtimes.length,
|
|
324
|
+
})),
|
|
325
|
+
tip: "Pass targetId or appName to list one target's versions.",
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
const target = await client.runtimes.getTarget(orgId, resolvedTarget);
|
|
329
|
+
if (!target)
|
|
330
|
+
return mcpText(`Target "${resolvedTarget}" is not in the organization's runtime catalog`);
|
|
331
|
+
const versions = [...target.runtimes].sort((a, b) => compareVersions(b.version, a.version));
|
|
332
|
+
const runtime = app?.target?.deploymentSettings?.runtime;
|
|
333
|
+
const current = runtime ? parseRuntimeString(runtime.version, runtime.java) : undefined;
|
|
334
|
+
const supported = current ? Boolean(resolveRuntime(target.runtimes, current)) : undefined;
|
|
335
|
+
return mcpText({
|
|
336
|
+
targetId: target.id,
|
|
337
|
+
...(target.name ? { name: target.name } : {}),
|
|
338
|
+
...(current
|
|
339
|
+
? {
|
|
340
|
+
app: app?.name,
|
|
341
|
+
current: {
|
|
342
|
+
version: current.version,
|
|
343
|
+
java: current.java,
|
|
344
|
+
releaseChannel: runtime?.releaseChannel,
|
|
345
|
+
supported,
|
|
346
|
+
},
|
|
347
|
+
...(supported === false
|
|
348
|
+
? { suggestions: suggestRuntimes(target.runtimes, current) }
|
|
349
|
+
: {}),
|
|
350
|
+
}
|
|
351
|
+
: {}),
|
|
352
|
+
versions,
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
catch (error) {
|
|
356
|
+
return mcpError(error);
|
|
357
|
+
}
|
|
358
|
+
});
|
|
359
|
+
server.registerTool('suggest_asset_name', {
|
|
360
|
+
title: 'Suggest Asset Name',
|
|
361
|
+
description: "Suggests the Exchange coordinates for publishing an app's next JAR: the project's naming convention (.anypoint-connect.json conventions), otherwise the pattern of the asset the app runs today (for example {app}-{pomVersion}-{timestamp} at a fixed version), otherwise the JAR's Maven identity. Reports which rule chose each value. deploy_jar applies explicit values and the project convention, and only reports the deployed pattern.",
|
|
362
|
+
inputSchema: {
|
|
363
|
+
appName: z.string().describe('Application name'),
|
|
364
|
+
environment: z.string().describe('Environment whose deployed asset shows the current pattern'),
|
|
365
|
+
jarPath: z.string().optional().describe('Built JAR, to fill {pomVersion} and {artifactId}'),
|
|
366
|
+
},
|
|
367
|
+
annotations: { readOnlyHint: true },
|
|
368
|
+
}, async ({ appName, environment, jarPath }) => {
|
|
369
|
+
try {
|
|
370
|
+
const { orgId, env } = await resolveEnvironment(client, environment);
|
|
371
|
+
const app = await client.cloudHub2.findDetailByName(orgId, env.id, appName);
|
|
372
|
+
const existingRef = app?.application?.ref;
|
|
373
|
+
const project = discoverProjectConfig()?.conventions;
|
|
374
|
+
const inferred = existingRef ? inferConvention(appName, existingRef) : undefined;
|
|
375
|
+
const jar = jarPath
|
|
376
|
+
? (await resolveJarArtifact({ jarPath, orgId, appName, existingRef })).artifact.coordinates
|
|
377
|
+
: undefined;
|
|
378
|
+
// Without a JAR, templates that need {pomVersion} cannot be filled; report the pattern anyway.
|
|
379
|
+
let suggestion = null;
|
|
380
|
+
let unresolved;
|
|
381
|
+
try {
|
|
382
|
+
suggestion = suggestAssetCoordinates({
|
|
383
|
+
app: appName,
|
|
384
|
+
orgId,
|
|
385
|
+
jar,
|
|
386
|
+
existingRef,
|
|
387
|
+
convention: project,
|
|
388
|
+
applyInferred: true,
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
catch (error) {
|
|
392
|
+
unresolved = `${errorMessage(error)}${jar ? '' : '. Pass jarPath to fill {pomVersion} and {artifactId}'}`;
|
|
393
|
+
}
|
|
394
|
+
return mcpText({
|
|
395
|
+
suggestion,
|
|
396
|
+
...(unresolved ? { unresolved } : {}),
|
|
397
|
+
deployedRef: existingRef ?? null,
|
|
398
|
+
projectConvention: project ?? null,
|
|
399
|
+
deployedPattern: inferred ?? null,
|
|
400
|
+
...(project
|
|
401
|
+
? {}
|
|
402
|
+
: inferred
|
|
403
|
+
? {
|
|
404
|
+
tip: `deploy_jar does not apply the deployed pattern on its own. Pass assetId/assetVersion, or add "conventions": ${JSON.stringify(inferred)} to .anypoint-connect.json.`,
|
|
405
|
+
}
|
|
406
|
+
: {}),
|
|
407
|
+
});
|
|
408
|
+
}
|
|
409
|
+
catch (error) {
|
|
410
|
+
return mcpError(error);
|
|
411
|
+
}
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
//# 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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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool Registrar: deployed artifact tools
|
|
3
|
+
* compare_deployed_artifact
|
|
4
|
+
*/
|
|
5
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
6
|
+
import type { AnypointClient } from '../../client/AnypointClient.js';
|
|
7
|
+
export declare function registerArtifactTools(server: McpServer, client: AnypointClient): void;
|
|
8
|
+
//# sourceMappingURL=artifacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/artifacts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAiCrE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QAiD9E"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool Registrar: deployed artifact tools
|
|
3
|
+
* compare_deployed_artifact
|
|
4
|
+
*/
|
|
5
|
+
import * as fs from 'node:fs';
|
|
6
|
+
import * as path from 'node:path';
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import { DEFAULT_JAR_MAX_BYTES } from '../../api/ExchangeApi.js';
|
|
9
|
+
import { resolveProjectRoot, resolveReadablePath } from '../../safety/paths.js';
|
|
10
|
+
import { compareJarToGit, compareJarToJar, fetchDeployedJar } from '../../workflows/artifact-compare.js';
|
|
11
|
+
import { mcpError, mcpText, resolveEnvironment } from './shared.js';
|
|
12
|
+
/** Resolve a directory inside the project root, following symlinks. */
|
|
13
|
+
function resolveProjectDirectory(dir, root) {
|
|
14
|
+
const absolute = path.resolve(root, dir);
|
|
15
|
+
if (!fs.existsSync(absolute))
|
|
16
|
+
throw new Error(`Directory not found: ${dir}`);
|
|
17
|
+
const real = fs.realpathSync(absolute);
|
|
18
|
+
const relative = path.relative(root, real);
|
|
19
|
+
if (relative.startsWith('..') || path.isAbsolute(relative)) {
|
|
20
|
+
throw new Error(`Directory must be inside the project root (${root}): ${dir}`);
|
|
21
|
+
}
|
|
22
|
+
if (!fs.statSync(real).isDirectory())
|
|
23
|
+
throw new Error(`Not a directory: ${dir}`);
|
|
24
|
+
return real;
|
|
25
|
+
}
|
|
26
|
+
const againstSchema = z.union([
|
|
27
|
+
z.object({
|
|
28
|
+
jarPath: z.string().describe('Path inside the project root to a built application jar'),
|
|
29
|
+
}),
|
|
30
|
+
z.object({
|
|
31
|
+
repoPath: z.string().describe('Mule project directory inside the project root (a git checkout)'),
|
|
32
|
+
gitRef: z.string().optional().describe('Commit, branch or tag to compare (default HEAD)'),
|
|
33
|
+
includeWorkingTree: z
|
|
34
|
+
.boolean()
|
|
35
|
+
.optional()
|
|
36
|
+
.describe('Include uncommitted and untracked changes (compares the working tree on top of HEAD)'),
|
|
37
|
+
}),
|
|
38
|
+
]);
|
|
39
|
+
export function registerArtifactTools(server, client) {
|
|
40
|
+
server.registerTool('compare_deployed_artifact', {
|
|
41
|
+
title: 'Compare Deployed Artifact',
|
|
42
|
+
description: 'Answers "does this repo (or jar) match what is deployed?". Downloads the jar the application currently runs from Exchange and compares it with a local jar (SHA-256, then entry by entry) or with a git checkout (git blob IDs of src/main/mule, src/main/resources and pom.xml at a ref, optionally plus the working tree). Returns a verdict of identical or differs, the pom version on each side, changed / missingInRepo / extraInRepo paths with sizes, and dependency differences as group:artifact:version. With a jar, \'repo\' means the local jar. Only names, sizes and hashes are returned, never file contents.',
|
|
43
|
+
inputSchema: {
|
|
44
|
+
appName: z.string().describe('Application name exactly as deployed'),
|
|
45
|
+
environment: z.string().describe('Environment name or ID'),
|
|
46
|
+
against: againstSchema.describe('{jarPath} or {repoPath, gitRef?, includeWorkingTree?}'),
|
|
47
|
+
},
|
|
48
|
+
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
49
|
+
}, async ({ appName, environment, against }) => {
|
|
50
|
+
try {
|
|
51
|
+
const root = resolveProjectRoot();
|
|
52
|
+
// Validate local inputs before downloading anything.
|
|
53
|
+
const local = 'jarPath' in against
|
|
54
|
+
? resolveReadablePath(against.jarPath, { projectRoot: root, maxBytes: DEFAULT_JAR_MAX_BYTES })
|
|
55
|
+
: undefined;
|
|
56
|
+
const repoPath = 'repoPath' in against ? resolveProjectDirectory(against.repoPath, root) : undefined;
|
|
57
|
+
const { orgId, env } = await resolveEnvironment(client, environment);
|
|
58
|
+
const deployed = await fetchDeployedJar(client, orgId, env, appName, {
|
|
59
|
+
maxBytes: DEFAULT_JAR_MAX_BYTES,
|
|
60
|
+
});
|
|
61
|
+
const comparison = local
|
|
62
|
+
? compareJarToJar(deployed.buffer, fs.readFileSync(local.path), path.relative(root, local.path))
|
|
63
|
+
: await compareJarToGit(deployed.buffer, {
|
|
64
|
+
repoPath: repoPath,
|
|
65
|
+
gitRef: 'repoPath' in against ? against.gitRef : undefined,
|
|
66
|
+
includeWorkingTree: 'repoPath' in against ? against.includeWorkingTree : undefined,
|
|
67
|
+
});
|
|
68
|
+
return mcpText({
|
|
69
|
+
appName,
|
|
70
|
+
environment: env.name,
|
|
71
|
+
deployed: { ...deployed.ref, sha256: deployed.sha256, size: deployed.buffer.length },
|
|
72
|
+
...(deployed.md5Matches ? {} : { warning: 'Downloaded jar does not match the Exchange MD5' }),
|
|
73
|
+
...comparison,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
return mcpError(error);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=artifacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../src/mcp/tools/artifacts.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,
|
|
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"}
|
package/dist/mcp/tools/audit.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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);
|