UNPKG

mcp-server-kubernetes

Version:

MCP server for interacting with Kubernetes clusters via kubectl

77 lines (76 loc) 2.58 kB
import * as k8s from "@kubernetes/client-node"; import { PortForwardTracker, WatchTracker } from "../types.js"; export declare class KubernetesManager { private resources; private portForwards; private watches; private kc; private k8sApi; private k8sAppsApi; private k8sBatchApi; constructor(); /** * A very simple test to check if the application is running inside a Kubernetes cluster */ private isRunningInCluster; /** * Check if KUBECONFIG_YAML environment variable is available */ private hasEnvKubeconfigYaml; /** * Check if KUBECONFIG_JSON environment variable is available */ private hasEnvKubeconfigJson; /** * Check if minimal K8S_SERVER and K8S_TOKEN environment variables are available */ private hasEnvMinimalKubeconfig; /** * Load kubeconfig from KUBECONFIG_PATH environment variable (file path) */ private loadEnvKubeconfigPath; /** * Load kubeconfig from KUBECONFIG_YAML environment variable (YAML format) */ private loadEnvKubeconfigYaml; /** * Load kubeconfig from KUBECONFIG_JSON environment variable (JSON format) */ private loadEnvKubeconfigJson; /** * Load kubeconfig from minimal K8S_SERVER and K8S_TOKEN environment variables */ private loadEnvMinimalKubeconfig; /** * Check if KUBECONFIG_PATH environment variable is available */ private hasEnvKubeconfigPath; private hasEnvKubeconfig; /** * Set the current context to the desired context name. * * @param contextName */ setCurrentContext(contextName: string): void; cleanup(): Promise<void>; trackResource(kind: string, name: string, namespace: string): void; deleteResource(kind: string, name: string, namespace: string): Promise<void>; trackPortForward(pf: PortForwardTracker): void; getPortForward(id: string): PortForwardTracker | undefined; removePortForward(id: string): void; trackWatch(watch: WatchTracker): void; getKubeConfig(): k8s.KubeConfig; getCoreApi(): k8s.CoreV1Api; getAppsApi(): k8s.AppsV1Api; getBatchApi(): k8s.BatchV1Api; /** * Get the default namespace for operations * Uses K8S_NAMESPACE environment variable if set, otherwise defaults to "default" */ getDefaultNamespace(): string; /** * Create temporary kubeconfig file from YAML content for kubectl commands * @param kubeconfigYaml YAML content of the kubeconfig */ private createTempKubeconfigFromYaml; }