@octopusdeploy/mcp-server 0.1.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/LICENSE +373 -0
- package/README.md +210 -0
- package/dist/helpers/getClientConfigurationFromEnvironment.d.ts +7 -0
- package/dist/helpers/getClientConfigurationFromEnvironment.d.ts.map +1 -0
- package/dist/helpers/getClientConfigurationFromEnvironment.js +31 -0
- package/dist/helpers/getClientConfigurationFromEnvironment.js.map +1 -0
- package/dist/helpers/getPublicUrl.d.ts +2 -0
- package/dist/helpers/getPublicUrl.d.ts.map +1 -0
- package/dist/helpers/getPublicUrl.js +4 -0
- package/dist/helpers/getPublicUrl.js.map +1 -0
- package/dist/helpers/vcsProjectHelpers.d.ts +4 -0
- package/dist/helpers/vcsProjectHelpers.d.ts.map +1 -0
- package/dist/helpers/vcsProjectHelpers.js +21 -0
- package/dist/helpers/vcsProjectHelpers.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +74 -0
- package/dist/index.js.map +1 -0
- package/dist/resources/index.d.ts +3 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +4 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/spacesResource.d.ts +3 -0
- package/dist/resources/spacesResource.d.ts.map +1 -0
- package/dist/resources/spacesResource.js +54 -0
- package/dist/resources/spacesResource.js.map +1 -0
- package/dist/tools/getBranches.d.ts +3 -0
- package/dist/tools/getBranches.d.ts.map +1 -0
- package/dist/tools/getBranches.js +55 -0
- package/dist/tools/getBranches.js.map +1 -0
- package/dist/tools/getCurrentUser.d.ts +3 -0
- package/dist/tools/getCurrentUser.d.ts.map +1 -0
- package/dist/tools/getCurrentUser.js +40 -0
- package/dist/tools/getCurrentUser.js.map +1 -0
- package/dist/tools/getDeploymentProcess.d.ts +3 -0
- package/dist/tools/getDeploymentProcess.d.ts.map +1 -0
- package/dist/tools/getDeploymentProcess.js +91 -0
- package/dist/tools/getDeploymentProcess.js.map +1 -0
- package/dist/tools/getDeploymentTarget.d.ts +3 -0
- package/dist/tools/getDeploymentTarget.d.ts.map +1 -0
- package/dist/tools/getDeploymentTarget.js +66 -0
- package/dist/tools/getDeploymentTarget.js.map +1 -0
- package/dist/tools/getKubernetesLiveStatus.d.ts +3 -0
- package/dist/tools/getKubernetesLiveStatus.d.ts.map +1 -0
- package/dist/tools/getKubernetesLiveStatus.js +64 -0
- package/dist/tools/getKubernetesLiveStatus.js.map +1 -0
- package/dist/tools/getLatestDeployment.d.ts +3 -0
- package/dist/tools/getLatestDeployment.d.ts.map +1 -0
- package/dist/tools/getLatestDeployment.js +85 -0
- package/dist/tools/getLatestDeployment.js.map +1 -0
- package/dist/tools/getMissingTenantVariables.d.ts +3 -0
- package/dist/tools/getMissingTenantVariables.d.ts.map +1 -0
- package/dist/tools/getMissingTenantVariables.js +47 -0
- package/dist/tools/getMissingTenantVariables.js.map +1 -0
- package/dist/tools/getReleaseById.d.ts +3 -0
- package/dist/tools/getReleaseById.d.ts.map +1 -0
- package/dist/tools/getReleaseById.js +45 -0
- package/dist/tools/getReleaseById.js.map +1 -0
- package/dist/tools/getTaskById.d.ts +9 -0
- package/dist/tools/getTaskById.d.ts.map +1 -0
- package/dist/tools/getTaskById.js +44 -0
- package/dist/tools/getTaskById.js.map +1 -0
- package/dist/tools/getTaskDetails.d.ts +9 -0
- package/dist/tools/getTaskDetails.d.ts.map +1 -0
- package/dist/tools/getTaskDetails.js +44 -0
- package/dist/tools/getTaskDetails.js.map +1 -0
- package/dist/tools/getTaskRaw.d.ts +9 -0
- package/dist/tools/getTaskRaw.d.ts.map +1 -0
- package/dist/tools/getTaskRaw.js +43 -0
- package/dist/tools/getTaskRaw.js.map +1 -0
- package/dist/tools/getTenantById.d.ts +3 -0
- package/dist/tools/getTenantById.d.ts.map +1 -0
- package/dist/tools/getTenantById.js +45 -0
- package/dist/tools/getTenantById.js.map +1 -0
- package/dist/tools/getTenantVariables.d.ts +3 -0
- package/dist/tools/getTenantVariables.d.ts.map +1 -0
- package/dist/tools/getTenantVariables.js +58 -0
- package/dist/tools/getTenantVariables.js.map +1 -0
- package/dist/tools/index.d.ts +24 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +49 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/listDeploymentTargets.d.ts +3 -0
- package/dist/tools/listDeploymentTargets.d.ts.map +1 -0
- package/dist/tools/listDeploymentTargets.js +98 -0
- package/dist/tools/listDeploymentTargets.js.map +1 -0
- package/dist/tools/listDeployments.d.ts +3 -0
- package/dist/tools/listDeployments.d.ts.map +1 -0
- package/dist/tools/listDeployments.js +70 -0
- package/dist/tools/listDeployments.js.map +1 -0
- package/dist/tools/listEnvironments.d.ts +3 -0
- package/dist/tools/listEnvironments.d.ts.map +1 -0
- package/dist/tools/listEnvironments.js +42 -0
- package/dist/tools/listEnvironments.js.map +1 -0
- package/dist/tools/listProjects.d.ts +3 -0
- package/dist/tools/listProjects.d.ts.map +1 -0
- package/dist/tools/listProjects.js +44 -0
- package/dist/tools/listProjects.js.map +1 -0
- package/dist/tools/listReleases.d.ts +3 -0
- package/dist/tools/listReleases.d.ts.map +1 -0
- package/dist/tools/listReleases.js +54 -0
- package/dist/tools/listReleases.js.map +1 -0
- package/dist/tools/listReleasesForProject.d.ts +3 -0
- package/dist/tools/listReleasesForProject.d.ts.map +1 -0
- package/dist/tools/listReleasesForProject.js +60 -0
- package/dist/tools/listReleasesForProject.js.map +1 -0
- package/dist/tools/listSpaces.d.ts +3 -0
- package/dist/tools/listSpaces.d.ts.map +1 -0
- package/dist/tools/listSpaces.js +38 -0
- package/dist/tools/listSpaces.js.map +1 -0
- package/dist/tools/listTenants.d.ts +3 -0
- package/dist/tools/listTenants.d.ts.map +1 -0
- package/dist/tools/listTenants.js +64 -0
- package/dist/tools/listTenants.js.map +1 -0
- package/dist/types/baseResource.d.ts +14 -0
- package/dist/types/baseResource.d.ts.map +1 -0
- package/dist/types/baseResource.js +3 -0
- package/dist/types/baseResource.js.map +1 -0
- package/dist/types/deploymentProcessTypes.d.ts +33 -0
- package/dist/types/deploymentProcessTypes.d.ts.map +1 -0
- package/dist/types/deploymentProcessTypes.js +20 -0
- package/dist/types/deploymentProcessTypes.js.map +1 -0
- package/dist/types/deploymentTargetTypes.d.ts +74 -0
- package/dist/types/deploymentTargetTypes.d.ts.map +1 -0
- package/dist/types/deploymentTargetTypes.js +32 -0
- package/dist/types/deploymentTargetTypes.js.map +1 -0
- package/dist/types/gitBranchTypes.d.ts +11 -0
- package/dist/types/gitBranchTypes.d.ts.map +1 -0
- package/dist/types/gitBranchTypes.js +2 -0
- package/dist/types/gitBranchTypes.js.map +1 -0
- package/dist/types/projectTypes.d.ts +2 -0
- package/dist/types/projectTypes.d.ts.map +1 -0
- package/dist/types/projectTypes.js +2 -0
- package/dist/types/projectTypes.js.map +1 -0
- package/dist/types/resourceCollection.d.ts +9 -0
- package/dist/types/resourceCollection.d.ts.map +1 -0
- package/dist/types/resourceCollection.js +2 -0
- package/dist/types/resourceCollection.js.map +1 -0
- package/dist/types/spaceTypes.d.ts +2 -0
- package/dist/types/spaceTypes.d.ts.map +1 -0
- package/dist/types/spaceTypes.js +2 -0
- package/dist/types/spaceTypes.js.map +1 -0
- package/dist/types/taskTypes.d.ts +2 -0
- package/dist/types/taskTypes.d.ts.map +1 -0
- package/dist/types/taskTypes.js +2 -0
- package/dist/types/taskTypes.js.map +1 -0
- package/dist/types/tenantsTypes.d.ts +2 -0
- package/dist/types/tenantsTypes.d.ts.map +1 -0
- package/dist/types/tenantsTypes.js +2 -0
- package/dist/types/tenantsTypes.js.map +1 -0
- package/dist/types/toolConfig.d.ts +19 -0
- package/dist/types/toolConfig.d.ts.map +1 -0
- package/dist/types/toolConfig.js +17 -0
- package/dist/types/toolConfig.js.map +1 -0
- package/dist/utils/clientInfo.d.ts +20 -0
- package/dist/utils/clientInfo.d.ts.map +1 -0
- package/dist/utils/clientInfo.js +23 -0
- package/dist/utils/clientInfo.js.map +1 -0
- package/dist/utils/logger.d.ts +45 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +130 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/parseConfig.d.ts +4 -0
- package/dist/utils/parseConfig.d.ts.map +1 -0
- package/dist/utils/parseConfig.js +21 -0
- package/dist/utils/parseConfig.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {} from "@octopusdeploy/api-client";
|
|
2
|
+
import {} from "../types/gitBranchTypes.js";
|
|
3
|
+
export async function getProjectBranches(client, spaceId, projectId, options) {
|
|
4
|
+
const queryParams = {};
|
|
5
|
+
if (options?.searchByName) {
|
|
6
|
+
queryParams.searchByName = options.searchByName;
|
|
7
|
+
}
|
|
8
|
+
if (options?.skip !== undefined) {
|
|
9
|
+
queryParams.skip = options.skip.toString();
|
|
10
|
+
}
|
|
11
|
+
if (options?.take !== undefined) {
|
|
12
|
+
queryParams.take = options.take.toString();
|
|
13
|
+
}
|
|
14
|
+
const result = await client.get("~/api/{spaceId}/projects/{projectId}/git/branches{?skip,take,searchByName}", {
|
|
15
|
+
spaceId,
|
|
16
|
+
projectId,
|
|
17
|
+
...queryParams,
|
|
18
|
+
});
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=vcsProjectHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vcsProjectHelpers.js","sourceRoot":"","sources":["../../src/helpers/vcsProjectHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAkD,MAAM,4BAA4B,CAAC;AAE5F,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,OAAe,EACf,SAAiB,EACjB,OAAmC;IAEnC,MAAM,WAAW,GAA2B,EAAE,CAAC;IAE/C,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;QAC1B,WAAW,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAClD,CAAC;IAED,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAC7B,4EAA4E,EAC5E;QACE,OAAO;QACP,SAAS;QACT,GAAG,WAAW;KACf,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAcA,eAAO,MAAM,cAAc,QAAsB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
|
+
import { registerTools } from "./tools/index.js";
|
|
5
|
+
import { Command } from "commander";
|
|
6
|
+
import dotenv from "dotenv";
|
|
7
|
+
import { createToolsetConfig } from "./utils/parseConfig.js";
|
|
8
|
+
import { DEFAULT_TOOLSETS } from "./types/toolConfig.js";
|
|
9
|
+
import { getClientConfigurationFromEnvironment } from "./helpers/getClientConfigurationFromEnvironment.js";
|
|
10
|
+
import { setClientInfo } from "./utils/clientInfo.js";
|
|
11
|
+
import { logger } from "./utils/logger.js";
|
|
12
|
+
import packageJson from "../package.json" with { type: "json" };
|
|
13
|
+
export const SEMVER_VERSION = packageJson.version;
|
|
14
|
+
dotenv.config({ quiet: true });
|
|
15
|
+
// Parse command line arguments
|
|
16
|
+
const program = new Command();
|
|
17
|
+
program
|
|
18
|
+
.name("octopus-mcp-server")
|
|
19
|
+
.description("Octopus Deploy MCP Server")
|
|
20
|
+
.version(SEMVER_VERSION)
|
|
21
|
+
.option("-s, --server-url <url>", "Octopus server URL")
|
|
22
|
+
.option("-k, --api-key <key>", "Octopus API key")
|
|
23
|
+
.option("--toolsets <toolsets>", `Comma-separated list of toolsets to enable, or "all" (default: all). Available toolsets: ${DEFAULT_TOOLSETS.join(", ")}`)
|
|
24
|
+
.option("--read-only", "Enable read-only mode (default: enabled)", true)
|
|
25
|
+
.option("--log-level <level>", "Minimum log level (info, error)", "info")
|
|
26
|
+
.option("--log-file <path>", "Log file path or filename (default: mcp-server-log.txt)")
|
|
27
|
+
.option("-q, --quiet", "Disable file logging, only log errors to console", false)
|
|
28
|
+
.parse();
|
|
29
|
+
const options = program.opts();
|
|
30
|
+
// Configure logger based on command line options
|
|
31
|
+
if (options.logFile) {
|
|
32
|
+
logger.setLogFilePath(options.logFile);
|
|
33
|
+
}
|
|
34
|
+
logger.setLogLevel(logger.parseLogLevel(options.logLevel));
|
|
35
|
+
logger.setQuietMode(options.quiet);
|
|
36
|
+
// Pass CLI options to tools registration
|
|
37
|
+
if (options.serverUrl) {
|
|
38
|
+
process.env.CLI_SERVER_URL = options.serverUrl;
|
|
39
|
+
}
|
|
40
|
+
if (options.apiKey) {
|
|
41
|
+
process.env.CLI_API_KEY = options.apiKey;
|
|
42
|
+
}
|
|
43
|
+
// Test configuration
|
|
44
|
+
getClientConfigurationFromEnvironment();
|
|
45
|
+
// Create toolset configuration
|
|
46
|
+
const toolsetConfig = createToolsetConfig(options.toolsets, options.readOnly);
|
|
47
|
+
const server = new McpServer({
|
|
48
|
+
name: "Octopus Deploy",
|
|
49
|
+
description: "Official Octopus Deploy MCP server.",
|
|
50
|
+
version: SEMVER_VERSION,
|
|
51
|
+
});
|
|
52
|
+
// Set up initialization callback to capture client info
|
|
53
|
+
server.server.oninitialized = () => {
|
|
54
|
+
const clientInfo = server.server.getClientVersion();
|
|
55
|
+
if (clientInfo) {
|
|
56
|
+
setClientInfo(clientInfo.name, clientInfo.version);
|
|
57
|
+
logger.info(`Client initialized: ${clientInfo.name} v${clientInfo.version}`);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
logger.info("Client initialized but no client info available");
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
registerTools(server, toolsetConfig);
|
|
64
|
+
logger.info(`Starting Octopus Deploy MCP server (version: ${SEMVER_VERSION})`);
|
|
65
|
+
// Start server
|
|
66
|
+
async function runServer() {
|
|
67
|
+
const transport = new StdioServerTransport();
|
|
68
|
+
await server.connect(transport);
|
|
69
|
+
}
|
|
70
|
+
runServer().catch((error) => {
|
|
71
|
+
logger.error(`Fatal error running server: ${error.message}\n${error.stack}`);
|
|
72
|
+
process.exit(1);
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,QAClD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AAEzE,MAAM,UAAU,iBAAiB,CAAC,MAAiB;AACnD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spacesResource.d.ts","sourceRoot":"","sources":["../../src/resources/spacesResource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAEV,MAAM,yCAAyC,CAAC;AAIjD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,QA0DvD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { McpServer, ResourceTemplate, } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
3
|
+
import { Client, SpaceRepository } from "@octopusdeploy/api-client";
|
|
4
|
+
export function registerSpacesResource(server) {
|
|
5
|
+
const config = getClientConfigurationFromEnvironment();
|
|
6
|
+
const instanceURL = new URL(config.instanceURL);
|
|
7
|
+
server.resource("octopus_space", new ResourceTemplate(`octopus://${instanceURL.host}/spaces/{name}`, {
|
|
8
|
+
list: async () => {
|
|
9
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
10
|
+
const client = await Client.create(configuration);
|
|
11
|
+
const spaceRepository = new SpaceRepository(client);
|
|
12
|
+
const spacesResponse = await spaceRepository.list({});
|
|
13
|
+
return {
|
|
14
|
+
resources: spacesResponse.Items.map((space) => {
|
|
15
|
+
return {
|
|
16
|
+
uri: `octopus://${instanceURL.host}/spaces/${space.Name}`,
|
|
17
|
+
name: space.Name,
|
|
18
|
+
description: space.Description || "",
|
|
19
|
+
};
|
|
20
|
+
}),
|
|
21
|
+
};
|
|
22
|
+
},
|
|
23
|
+
complete: {
|
|
24
|
+
name: async (name) => {
|
|
25
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
26
|
+
const client = await Client.create(configuration);
|
|
27
|
+
const spaceRepository = new SpaceRepository(client);
|
|
28
|
+
const spaces = await spaceRepository.list({ partialName: name });
|
|
29
|
+
return spaces.Items.map((space) => space.Name);
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
}), {}, async (uri, { name }) => {
|
|
33
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
34
|
+
const client = await Client.create(configuration);
|
|
35
|
+
const spaceRepository = new SpaceRepository(client);
|
|
36
|
+
const partialName = Array.isArray(name) ? name[0] : name;
|
|
37
|
+
const decodedName = decodeURIComponent(partialName);
|
|
38
|
+
const spaces = await spaceRepository.list({ partialName: decodedName });
|
|
39
|
+
if (spaces.Items.length === 0) {
|
|
40
|
+
throw new Error(`Space with name '${partialName}' not found`);
|
|
41
|
+
}
|
|
42
|
+
const space = spaces.Items[0];
|
|
43
|
+
return {
|
|
44
|
+
contents: [
|
|
45
|
+
{
|
|
46
|
+
uri: uri.toString(),
|
|
47
|
+
text: JSON.stringify(space),
|
|
48
|
+
mimeType: "application/json",
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=spacesResource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spacesResource.js","sourceRoot":"","sources":["../../src/resources/spacesResource.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBranches.d.ts","sourceRoot":"","sources":["../../src/tools/getBranches.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,QAmDxD"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Client, resolveSpaceId } from "@octopusdeploy/api-client";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
|
+
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
5
|
+
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
6
|
+
import { getProjectBranches } from "../helpers/vcsProjectHelpers.js";
|
|
7
|
+
export function registerGetBranchesTool(server) {
|
|
8
|
+
server.tool("get_branches", `Get Git branches for a version-controlled project
|
|
9
|
+
|
|
10
|
+
This tool retrieves Git branches for a specific project in a space. The space name and project ID are required. Optionally provide searchByName, skip, and take parameters for filtering and pagination.`, {
|
|
11
|
+
spaceName: z.string(),
|
|
12
|
+
projectId: z.string(),
|
|
13
|
+
searchByName: z.string().optional(),
|
|
14
|
+
skip: z.number().optional(),
|
|
15
|
+
take: z.number().optional(),
|
|
16
|
+
}, {
|
|
17
|
+
title: "Get Git branches for a version-controlled project",
|
|
18
|
+
readOnlyHint: true,
|
|
19
|
+
}, async ({ spaceName, projectId, searchByName, skip, take }) => {
|
|
20
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
21
|
+
const client = await Client.create(configuration);
|
|
22
|
+
const spaceId = await resolveSpaceId(client, spaceName);
|
|
23
|
+
const options = {
|
|
24
|
+
searchByName,
|
|
25
|
+
skip,
|
|
26
|
+
take,
|
|
27
|
+
};
|
|
28
|
+
const branches = await getProjectBranches(client, spaceId, projectId, options);
|
|
29
|
+
return {
|
|
30
|
+
content: [
|
|
31
|
+
{
|
|
32
|
+
type: "text",
|
|
33
|
+
text: JSON.stringify({
|
|
34
|
+
Items: branches.Items.map(branch => ({
|
|
35
|
+
Name: branch.Name,
|
|
36
|
+
IsProtected: branch.IsProtected,
|
|
37
|
+
CanonicalName: branch.CanonicalName,
|
|
38
|
+
})),
|
|
39
|
+
TotalResults: branches.TotalResults,
|
|
40
|
+
ItemsPerPage: branches.ItemsPerPage,
|
|
41
|
+
NumberOfPages: branches.NumberOfPages,
|
|
42
|
+
LastPageNumber: branches.LastPageNumber,
|
|
43
|
+
ItemType: branches.ItemType,
|
|
44
|
+
}),
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
registerToolDefinition({
|
|
51
|
+
toolName: "get_branches",
|
|
52
|
+
config: { toolset: "context", readOnly: true },
|
|
53
|
+
registerFn: registerGetBranchesTool
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=getBranches.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBranches.js","sourceRoot":"","sources":["../../src/tools/getBranches.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qCAAqC,EAAE,MAAM,qDAAqD,CAAC;AAC5G,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,IAAI,CACT,cAAc,EACd;;yMAEqM,EACrM;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC5B,EACD;QACE,KAAK,EAAE,mDAAmD;QAC1D,YAAY,EAAE,IAAI;KACnB,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QAC3D,MAAM,aAAa,GAAG,qCAAqC,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAExD,MAAM,OAAO,GAAG;YACd,YAAY;YACZ,IAAI;YACJ,IAAI;SACL,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAE/E,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;4BACnC,IAAI,EAAE,MAAM,CAAC,IAAI;4BACjB,WAAW,EAAE,MAAM,CAAC,WAAW;4BAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;yBACpC,CAAC,CAAC;wBACH,YAAY,EAAE,QAAQ,CAAC,YAAY;wBACnC,YAAY,EAAE,QAAQ,CAAC,YAAY;wBACnC,aAAa,EAAE,QAAQ,CAAC,aAAa;wBACrC,cAAc,EAAE,QAAQ,CAAC,cAAc;wBACvC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;qBAC5B,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,sBAAsB,CAAC;IACrB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC9C,UAAU,EAAE,uBAAuB;CACpC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCurrentUser.d.ts","sourceRoot":"","sources":["../../src/tools/getCurrentUser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAezE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,QAsC3D"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Client } from "@octopusdeploy/api-client";
|
|
2
|
+
import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
|
+
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
4
|
+
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
5
|
+
export function registerGetCurrentUserTool(server) {
|
|
6
|
+
server.tool("get_current_user", `Get information about the current authenticated user
|
|
7
|
+
|
|
8
|
+
This tool retrieves information about the currently authenticated user from the Octopus Deploy API.`, {}, {
|
|
9
|
+
title: "Get current user information",
|
|
10
|
+
readOnlyHint: true,
|
|
11
|
+
}, async () => {
|
|
12
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
13
|
+
const client = await Client.create(configuration);
|
|
14
|
+
const user = await client.get("~/api/users/me");
|
|
15
|
+
const currentUser = {
|
|
16
|
+
id: user.Id,
|
|
17
|
+
username: user.Username,
|
|
18
|
+
displayName: user.DisplayName,
|
|
19
|
+
isActive: user.IsActive,
|
|
20
|
+
isService: user.IsService,
|
|
21
|
+
emailAddress: user.EmailAddress,
|
|
22
|
+
canPasswordBeEdited: user.CanPasswordBeEdited,
|
|
23
|
+
isRequestor: user.IsRequestor,
|
|
24
|
+
};
|
|
25
|
+
return {
|
|
26
|
+
content: [
|
|
27
|
+
{
|
|
28
|
+
type: "text",
|
|
29
|
+
text: JSON.stringify(currentUser),
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
registerToolDefinition({
|
|
36
|
+
toolName: "get_current_user",
|
|
37
|
+
config: { toolset: "context", readOnly: true },
|
|
38
|
+
registerFn: registerGetCurrentUserTool
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=getCurrentUser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCurrentUser.js","sourceRoot":"","sources":["../../src/tools/getCurrentUser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qCAAqC,EAAE,MAAM,qDAAqD,CAAC;AAa5G,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB;;oGAEgG,EAChG,EAAE,EACF;QACE,KAAK,EAAE,8BAA8B;QACrC,YAAY,EAAE,IAAI;KACnB,EACD,KAAK,IAAI,EAAE;QACT,MAAM,aAAa,GAAG,qCAAqC,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAElD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAc,gBAAgB,CAAC,CAAC;QAE7D,MAAM,WAAW,GAAG;YAClB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;QAEF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;iBAClC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,sBAAsB,CAAC;IACrB,QAAQ,EAAE,kBAAkB;IAC5B,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC9C,UAAU,EAAE,0BAA0B;CACvC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDeploymentProcess.d.ts","sourceRoot":"","sources":["../../src/tools/getDeploymentProcess.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,SAAS,QA6FjE"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Client, resolveSpaceId, ProjectRepository } from "@octopusdeploy/api-client";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
|
+
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
5
|
+
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
6
|
+
import {} from "../types/deploymentProcessTypes.js";
|
|
7
|
+
import { getProjectBranches } from "../helpers/vcsProjectHelpers.js";
|
|
8
|
+
export function registerGetDeploymentProcessTool(server) {
|
|
9
|
+
server.tool("get_deployment_process", `Get deployment process by ID
|
|
10
|
+
|
|
11
|
+
This tool retrieves a deployment process by its ID. Each project has a deployment process attached, and releases/deployments can also have frozen processes attached.`, {
|
|
12
|
+
spaceName: z.string(),
|
|
13
|
+
projectId: z.string().optional().describe("The ID of the project to retrieve the deployment process for. If processId is not provided, this parameter is required."),
|
|
14
|
+
processId: z.string().optional().describe("The ID of the deployment process to retrieve. If not provided, the deployment process for the project will be retrieved."),
|
|
15
|
+
branchName: z.string().optional().describe("Optional branch name to get the deployment process for a specific branch (if using version controlled projects). Try `main` or `master` if unsure."),
|
|
16
|
+
includeDetails: z.boolean().optional().default(false).describe("Include detailed properties for steps and actions. Defaults to false."),
|
|
17
|
+
}, {
|
|
18
|
+
title: "Get deployment process details from Octopus Deploy",
|
|
19
|
+
readOnlyHint: true,
|
|
20
|
+
}, async ({ spaceName, processId, projectId, branchName, includeDetails = false }) => {
|
|
21
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
22
|
+
const client = await Client.create(configuration);
|
|
23
|
+
const spaceId = await resolveSpaceId(client, spaceName);
|
|
24
|
+
const projectRepository = projectId ? new ProjectRepository(client, spaceName) : null;
|
|
25
|
+
const project = projectRepository && projectId ? await projectRepository.get(projectId) : null;
|
|
26
|
+
if (!processId && !projectId) {
|
|
27
|
+
throw new Error("Either processId or projectId must be provided.");
|
|
28
|
+
}
|
|
29
|
+
if (project?.IsVersionControlled && !branchName) {
|
|
30
|
+
throw new Error("Branch name must be provided for version controlled projects.");
|
|
31
|
+
}
|
|
32
|
+
// If using branchName get the canonical ref first
|
|
33
|
+
const branches = branchName && projectId && await getProjectBranches(client, spaceId, projectId, { take: 1, searchByName: branchName });
|
|
34
|
+
const gitRef = branches && branches.Items.length > 0 ? branches.Items[0].CanonicalName : undefined;
|
|
35
|
+
const url = gitRef
|
|
36
|
+
? `~/api/{spaceId}/projects/{projectId}/{gitRef}/deploymentprocesses`
|
|
37
|
+
: `~/api/{spaceId}/deploymentprocesses/{processId}`;
|
|
38
|
+
const response = await client.get(url, {
|
|
39
|
+
spaceId,
|
|
40
|
+
projectId,
|
|
41
|
+
processId,
|
|
42
|
+
gitRef
|
|
43
|
+
});
|
|
44
|
+
const deploymentProcess = {
|
|
45
|
+
spaceId: response.SpaceId,
|
|
46
|
+
id: response.Id,
|
|
47
|
+
projectId: response.ProjectId,
|
|
48
|
+
version: response.Version,
|
|
49
|
+
lastSnapshotId: response.LastSnapshotId,
|
|
50
|
+
steps: response.Steps.map((step) => {
|
|
51
|
+
const mappedStep = {
|
|
52
|
+
id: step.Id,
|
|
53
|
+
name: step.Name,
|
|
54
|
+
condition: step.Condition,
|
|
55
|
+
startTrigger: step.StartTrigger,
|
|
56
|
+
packageRequirement: step.PackageRequirement,
|
|
57
|
+
...(includeDetails && { properties: step.Properties }),
|
|
58
|
+
actions: step.Actions.map((action) => {
|
|
59
|
+
if (includeDetails) {
|
|
60
|
+
return action;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
64
|
+
const { Properties, ...actionWithoutProperties } = action;
|
|
65
|
+
return actionWithoutProperties;
|
|
66
|
+
}
|
|
67
|
+
}),
|
|
68
|
+
};
|
|
69
|
+
return mappedStep;
|
|
70
|
+
}),
|
|
71
|
+
};
|
|
72
|
+
return {
|
|
73
|
+
content: [
|
|
74
|
+
{
|
|
75
|
+
type: "text",
|
|
76
|
+
text: `Retrieved deployment process with ID '${deploymentProcess.id}' in space '${spaceName}'${branchName ? ` for branch '${branchName}'` : ""}.`,
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
type: "text",
|
|
80
|
+
text: JSON.stringify(deploymentProcess),
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
};
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
registerToolDefinition({
|
|
87
|
+
toolName: "get_deployment_process",
|
|
88
|
+
config: { toolset: "projects", readOnly: true },
|
|
89
|
+
registerFn: registerGetDeploymentProcessTool
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=getDeploymentProcess.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDeploymentProcess.js","sourceRoot":"","sources":["../../src/tools/getDeploymentProcess.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDeploymentTarget.d.ts","sourceRoot":"","sources":["../../src/tools/getDeploymentTarget.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,QAiEhE"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Client, resolveSpaceId } from "@octopusdeploy/api-client";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
|
+
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
5
|
+
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
6
|
+
import {} from "../types/deploymentTargetTypes.js";
|
|
7
|
+
export function registerGetDeploymentTargetTool(server) {
|
|
8
|
+
server.tool("get_deployment_target", `Get a specific deployment target (machine) by ID
|
|
9
|
+
|
|
10
|
+
This tool retrieves detailed information about a specific deployment target using its ID. The space name and target ID are both required.`, {
|
|
11
|
+
spaceName: z.string(),
|
|
12
|
+
targetId: z.string(),
|
|
13
|
+
}, {
|
|
14
|
+
title: "Get a specific deployment target from an Octopus Deploy space",
|
|
15
|
+
readOnlyHint: true,
|
|
16
|
+
}, async ({ spaceName, targetId }) => {
|
|
17
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
18
|
+
const client = await Client.create(configuration);
|
|
19
|
+
const spaceId = await resolveSpaceId(client, spaceName);
|
|
20
|
+
const target = await client.get("~/api/{spaceId}/machines/{id}", {
|
|
21
|
+
spaceId,
|
|
22
|
+
id: targetId,
|
|
23
|
+
});
|
|
24
|
+
const deploymentTarget = {
|
|
25
|
+
spaceId: target.SpaceId,
|
|
26
|
+
id: target.Id,
|
|
27
|
+
name: target.Name,
|
|
28
|
+
slug: target.Slug,
|
|
29
|
+
isDisabled: target.IsDisabled,
|
|
30
|
+
healthStatus: target.HealthStatus,
|
|
31
|
+
statusSummary: target.StatusSummary,
|
|
32
|
+
environmentIds: target.EnvironmentIds,
|
|
33
|
+
roles: target.Roles,
|
|
34
|
+
tenantedDeploymentParticipation: target.TenantedDeploymentParticipation,
|
|
35
|
+
tenantIds: target.TenantIds,
|
|
36
|
+
tenantTags: target.TenantTags,
|
|
37
|
+
endpoint: {
|
|
38
|
+
id: target.Endpoint.Id,
|
|
39
|
+
communicationStyle: target.Endpoint.CommunicationStyle,
|
|
40
|
+
uri: target.Endpoint.Uri,
|
|
41
|
+
fingerprint: target.Endpoint.Fingerprint,
|
|
42
|
+
proxyId: target.Endpoint.ProxyId,
|
|
43
|
+
tentacleVersionDetails: target.Endpoint.TentacleVersionDetails,
|
|
44
|
+
},
|
|
45
|
+
shellName: target.ShellName,
|
|
46
|
+
machinePolicyId: target.MachinePolicyId,
|
|
47
|
+
hasLatestCalamari: target.HasLatestCalamari,
|
|
48
|
+
isInProcess: target.IsInProcess,
|
|
49
|
+
links: target.Links,
|
|
50
|
+
};
|
|
51
|
+
return {
|
|
52
|
+
content: [
|
|
53
|
+
{
|
|
54
|
+
type: "text",
|
|
55
|
+
text: JSON.stringify(deploymentTarget),
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
registerToolDefinition({
|
|
62
|
+
toolName: "get_deployment_target",
|
|
63
|
+
config: { toolset: "machines", readOnly: true },
|
|
64
|
+
registerFn: registerGetDeploymentTargetTool
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=getDeploymentTarget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDeploymentTarget.js","sourceRoot":"","sources":["../../src/tools/getDeploymentTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qCAAqC,EAAE,MAAM,qDAAqD,CAAC;AAC5G,OAAO,EAAiC,MAAM,mCAAmC,CAAC;AAElF,MAAM,UAAU,+BAA+B,CAAC,MAAiB;IAC/D,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB;;0IAEsI,EACtI;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;KACrB,EACD;QACE,KAAK,EAAE,+DAA+D;QACtE,YAAY,EAAE,IAAI;KACnB,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QAChC,MAAM,aAAa,GAAG,qCAAqC,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAExD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAC7B,+BAA+B,EAC/B;YACE,OAAO;YACP,EAAE,EAAE,QAAQ;SACb,CACF,CAAC;QAEF,MAAM,gBAAgB,GAAG;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,+BAA+B,EAAE,MAAM,CAAC,+BAA+B;YACvE,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,QAAQ,EAAE;gBACR,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;gBACtB,kBAAkB,EAAE,MAAM,CAAC,QAAQ,CAAC,kBAAkB;gBACtD,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG;gBACxB,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW;gBACxC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;gBAChC,sBAAsB,EAAE,MAAM,CAAC,QAAQ,CAAC,sBAAsB;aAC/D;YACD,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;QAEF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;iBACvC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,sBAAsB,CAAC;IACrB,QAAQ,EAAE,uBAAuB;IACjC,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC/C,UAAU,EAAE,+BAA+B;CAC5C,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getKubernetesLiveStatus.d.ts","sourceRoot":"","sources":["../../src/tools/getKubernetesLiveStatus.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,SAAS,QAiEpE"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Client, ObservabilityRepository } from "@octopusdeploy/api-client";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
|
+
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
5
|
+
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
6
|
+
export function registerGetKubernetesLiveStatusTool(server) {
|
|
7
|
+
server.tool("get_kubernetes_live_status", `Get Kubernetes live status for a project and environment
|
|
8
|
+
|
|
9
|
+
This tool retrieves the live status of Kubernetes resources for a specific project and environment. Optionally include a tenant ID for multi-tenant deployments.`, {
|
|
10
|
+
spaceName: z.string().describe("The space name"),
|
|
11
|
+
projectId: z.string().describe("The ID of the project"),
|
|
12
|
+
environmentId: z.string().describe("The ID of the environment"),
|
|
13
|
+
tenantId: z.string().optional().describe("The ID of the tenant (for multi-tenant deployments)"),
|
|
14
|
+
summaryOnly: z.boolean().optional().describe("Return summary information only")
|
|
15
|
+
}, {
|
|
16
|
+
title: "Get Kubernetes live status from Octopus Deploy",
|
|
17
|
+
readOnlyHint: true,
|
|
18
|
+
}, async ({ spaceName, projectId, environmentId, tenantId, summaryOnly = false }) => {
|
|
19
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
20
|
+
const client = await Client.create(configuration);
|
|
21
|
+
const observabilityRepository = new ObservabilityRepository(client, spaceName);
|
|
22
|
+
const liveStatus = await observabilityRepository.getLiveStatus(projectId, environmentId, tenantId, summaryOnly);
|
|
23
|
+
return {
|
|
24
|
+
content: [
|
|
25
|
+
{
|
|
26
|
+
type: "text",
|
|
27
|
+
text: JSON.stringify({
|
|
28
|
+
projectId,
|
|
29
|
+
environmentId,
|
|
30
|
+
tenantId,
|
|
31
|
+
summaryOnly: summaryOnly,
|
|
32
|
+
liveStatus: {
|
|
33
|
+
machineStatuses: liveStatus.MachineStatuses?.map((machine) => ({
|
|
34
|
+
machineId: machine.MachineId,
|
|
35
|
+
status: machine.Status,
|
|
36
|
+
resources: machine.Resources?.map((resource) => ({
|
|
37
|
+
name: resource.Name,
|
|
38
|
+
namespace: resource.Namespace,
|
|
39
|
+
kind: resource.Kind,
|
|
40
|
+
healthStatus: resource.HealthStatus,
|
|
41
|
+
syncStatus: resource.SyncStatus,
|
|
42
|
+
machineId: resource.MachineId,
|
|
43
|
+
children: resource.Children,
|
|
44
|
+
desiredResourceId: resource.DesiredResourceId,
|
|
45
|
+
resourceId: resource.ResourceId
|
|
46
|
+
}))
|
|
47
|
+
})),
|
|
48
|
+
summary: liveStatus.Summary ? {
|
|
49
|
+
status: liveStatus.Summary.Status,
|
|
50
|
+
lastUpdated: liveStatus.Summary.LastUpdated
|
|
51
|
+
} : undefined
|
|
52
|
+
}
|
|
53
|
+
}),
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
registerToolDefinition({
|
|
60
|
+
toolName: "get_kubernetes_live_status",
|
|
61
|
+
config: { toolset: "kubernetes", readOnly: true },
|
|
62
|
+
registerFn: registerGetKubernetesLiveStatusTool
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=getKubernetesLiveStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getKubernetesLiveStatus.js","sourceRoot":"","sources":["../../src/tools/getKubernetesLiveStatus.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getLatestDeployment.d.ts","sourceRoot":"","sources":["../../src/tools/getLatestDeployment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,QAqFhE"}
|