Skip to main content
Glama
OctopusDeploy

Octopus Deploy MCP Server

Official
getKubernetesLiveStatus.ts3.28 kB
import { Client, ObservabilityRepository, type KubernetesMachineLiveStatusResource, type KubernetesLiveStatusResource } from "@octopusdeploy/api-client"; import { z } from "zod"; import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js"; import { registerToolDefinition } from "../types/toolConfig.js"; export function registerGetKubernetesLiveStatusTool(server: McpServer) { server.tool( "get_kubernetes_live_status", `Get Kubernetes live status for a project and environment This tool retrieves the live status of Kubernetes resources for a specific project and environment. Optionally include a tenant ID for multi-tenant deployments.`, { spaceName: z.string().describe("The space name"), projectId: z.string().describe("The ID of the project"), environmentId: z.string().describe("The ID of the environment"), tenantId: z.string().optional().describe("The ID of the tenant (for multi-tenant deployments)"), summaryOnly: z.boolean().optional().describe("Return summary information only") }, { title: "Get Kubernetes live status from Octopus Deploy", readOnlyHint: true, }, async ({ spaceName, projectId, environmentId, tenantId, summaryOnly = false }) => { const configuration = getClientConfigurationFromEnvironment(); const client = await Client.create(configuration); const observabilityRepository = new ObservabilityRepository(client, spaceName); const liveStatus = await observabilityRepository.getLiveStatus( projectId, environmentId, tenantId, summaryOnly ); return { content: [ { type: "text", text: JSON.stringify({ projectId, environmentId, tenantId, summaryOnly: summaryOnly, liveStatus: { machineStatuses: liveStatus.MachineStatuses?.map((machine: KubernetesMachineLiveStatusResource) => ({ machineId: machine.MachineId, status: machine.Status, resources: machine.Resources?.map((resource: KubernetesLiveStatusResource) => ({ name: resource.Name, namespace: resource.Namespace, kind: resource.Kind, healthStatus: resource.HealthStatus, syncStatus: resource.SyncStatus, machineId: resource.MachineId, children: resource.Children, desiredResourceId: resource.DesiredResourceId, resourceId: resource.ResourceId })) })), summary: liveStatus.Summary ? { status: liveStatus.Summary.Status, lastUpdated: liveStatus.Summary.LastUpdated } : undefined } }), }, ], }; } ); } registerToolDefinition({ toolName: "get_kubernetes_live_status", config: { toolset: "kubernetes", readOnly: true }, registerFn: registerGetKubernetesLiveStatusTool, minimumOctopusVersion: "2025.3", });

Implementation Reference

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/OctopusDeploy/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server