Multi Cluster Kubernetes MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KUBECONFIG_DIR | No | Directory containing kubeconfig files. Each file can contain one or more contexts. | ~/.kube |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| k8s_get_contextsA | List all available Kubernetes contexts from all kubeconfig files. Returns context names that can be used with other tools. Supports partial context name matching in all other commands. |
| k8s_get_namespacesB | List all namespaces in a Kubernetes cluster. Use this to discover available namespaces before querying resources. |
| k8s_create_nsC | Create a new Kubernetes namespace. Optionally attach labels and annotations at creation time. |
| k8s_delete_nsA | Delete a Kubernetes namespace and all resources within it. Protected namespaces (default, kube-system, kube-public, kube-node-lease) cannot be deleted. |
| k8s_get_nodesC | List all nodes in a Kubernetes cluster with status, roles, capacity, and version info. |
| k8s_cluster_infoA | Get a comprehensive health summary of the entire Kubernetes cluster. Checks node status, pod health across all namespaces, deployment availability, resource pressure, and recent warning events. Returns an overall health status (healthy/degraded/unhealthy) with detailed breakdowns. |
| k8s_get_resourcesA | List Kubernetes resources of a specified kind (e.g., Pod, Deployment, Service, Ingress). Common kinds auto-detect their API group. For custom resources, specify group and version. Omit namespace to query across all namespaces. |
| k8s_get_resourceC | Get the complete definition of a single Kubernetes resource. Returns the full resource spec, status, and metadata as a dictionary. |
| k8s_get_pod_logsA | Get logs from a Kubernetes pod. For multi-container pods, logs from the first container are returned by default. Use sinceDuration to filter (e.g., '5m', '1h', '2d'). Set previousContainer=True to get logs from the previously terminated container. |
| k8s_get_eventsB | List Kubernetes events in a namespace, sorted by most recent first. Events show scheduling decisions, image pulls, container crashes, and other cluster activity. |
| k8s_describeA | Show detailed information about a resource, similar to 'kubectl describe'. Can describe a single resource by name, or multiple resources using a label selector. Set all_namespaces=True to search across all namespaces. |
| k8s_apisA | List all available API groups and resources in the Kubernetes cluster. Useful for discovering what resource types are available, including CRD-based APIs. |
| k8s_crdsA | List all Custom Resource Definitions (CRDs) installed in the cluster. Shows CRD names, groups, versions, scope, and status conditions. |
| k8s_top_nodesB | Display CPU and memory usage of all nodes in the cluster. Requires metrics-server to be installed. Shows usage alongside capacity. |
| k8s_top_podsA | Display CPU and memory usage of pods, broken down by container. Requires metrics-server to be installed. Omit namespace for all namespaces. |
| k8s_diagnose_applicationA | Diagnose issues with a Kubernetes application by checking resource status, pod health, events, and container logs. Automatically detects common problems like CrashLoopBackOff, OOMKilled, ImagePullBackOff, permission errors, and connection issues. Returns a structured report with issues, severity, and recommendations. |
| k8s_rollout_statusB | Get the rollout status of a deployment, daemonset, or statefulset. Shows replica counts, conditions, and whether the rollout is complete. |
| k8s_rollout_historyA | Get the revision history of a deployment, daemonset, or statefulset. Shows past revisions that can be used with rollout_undo. |
| k8s_rollout_undoA | Roll back a deployment, daemonset, or statefulset to a previous revision. Omit to_revision to roll back to the immediately previous revision, or specify a revision number from rollout_history. |
| k8s_rollout_restartC | Trigger a rolling restart of a deployment, daemonset, or statefulset. All pods will be recreated in a rolling fashion. |
| k8s_rollout_pauseA | Pause an in-progress rollout for a deployment, daemonset, or statefulset. Useful for canary-style deployments where you want to inspect before continuing. |
| k8s_rollout_resumeC | Resume a previously paused rollout for a deployment, daemonset, or statefulset. |
| k8s_scale_resourceB | Scale a deployment, statefulset, or replicaset to the specified number of replicas. Set replicas=0 to scale down completely. |
| k8s_autoscale_resourceB | Configure a Horizontal Pod Autoscaler (HPA) for a deployment, statefulset, or replicaset. Creates or updates an HPA that scales between min and max replicas based on CPU utilization. |
| k8s_update_resourcesB | Update CPU/memory requests and limits for a specific container in a deployment, statefulset, or daemonset. Values use Kubernetes notation (e.g., '128Mi', '500m', '1Gi', '2'). |
| k8s_create_resourceC | Create a Kubernetes resource from YAML or JSON content. The content must include apiVersion, kind, and metadata. Optionally override the namespace. |
| k8s_apply_resourceB | Apply a configuration to a resource (create if it doesn't exist, update if it does). Similar to 'kubectl apply'. The content must include apiVersion, kind, and metadata with name. |
| k8s_delete_resourceA | Delete a Kubernetes resource. Supports all common resource types (pod, deployment, service, configmap, secret, statefulset, daemonset, job, cronjob, ingress, pvc, pv, namespace, serviceaccount, networkpolicy, hpa). Set force=True for immediate deletion (grace_period=0). |
| k8s_patch_resourceB | Update specific fields of a resource using a strategic merge patch. Supports pod, deployment, service, configmap, secret, and custom resources. |
| k8s_label_resourceB | Add or update labels on a Kubernetes resource. Labels are key-value pairs used for organizing and selecting resources. |
| k8s_annotate_resourceC | Add or update annotations on a Kubernetes resource. Annotations store non-identifying metadata for tools and libraries. |
| k8s_expose_resourceC | Expose a deployment or pod as a new Kubernetes Service. Creates a Service that routes traffic to the target resource. Specify type='LoadBalancer' for external access or type='NodePort' for node-level access. |
| k8s_run_podA | Create and run a pod with the specified container image. Useful for running one-off tasks, debugging, or testing. Set restart='Never' for one-shot jobs. |
| k8s_set_resources_for_containerB | Set resource limits and requests for containers in a deployment, statefulset, or daemonset. Example: limits={'cpu': '500m', 'memory': '256Mi'}, requests={'cpu': '100m', 'memory': '128Mi'}. |
| k8s_cordon_nodeA | Mark a node as unschedulable. Existing pods continue running but no new pods will be scheduled on this node. |
| k8s_uncordon_nodeA | Mark a previously cordoned node as schedulable again. New pods can be scheduled on this node after uncordoning. |
| k8s_drain_nodeA | Drain a node by evicting all pods, preparing it for maintenance. Automatically cordons the node first. Set ignore_daemonsets=True to skip DaemonSet pods. Set force=True to evict pods not managed by a controller. |
| k8s_taint_nodeC | Add a taint to a node. Taints prevent pods without matching tolerations from being scheduled. Effects: NoSchedule (hard), PreferNoSchedule (soft), NoExecute (evict existing pods too). |
| k8s_untaint_nodeB | Remove a taint from a node. Omit effect to remove all taints with the given key. |
| k8s_pod_execB | Execute a command inside a running container. Supports quoted arguments (e.g., 'ls -la "/my dir"'). Specify container for multi-container pods. Defaults to the 'default' namespace if not specified. |
| k8s_list_secretA | List Kubernetes Secrets with metadata (keys only, values hidden for security). Use label_selector to filter (e.g., 'app=myapp'). Omit namespace for all namespaces. |
| k8s_get_secret_detailA | Get a Kubernetes Secret. By default shows only key names for security. Set decode=True to include the actual decoded values. Use with caution - decoded secrets may contain sensitive credentials. |
| k8s_create_secret_resourceB | Create a new Kubernetes Secret. Values in data will be automatically base64-encoded. Common types: Opaque (default), kubernetes.io/tls, kubernetes.io/dockerconfigjson. |
| k8s_list_configmapA | List Kubernetes ConfigMaps with their key names. Use label_selector to filter. Omit namespace for all namespaces. |
| k8s_get_configmap_detailA | Get a Kubernetes ConfigMap with its full data contents. |
| k8s_create_configmap_resourceC | Create a new Kubernetes ConfigMap with the specified key-value data pairs. |
| k8s_get_rolesA | List RBAC Roles with their permission rules. Roles grant permissions within a specific namespace. Omit namespace to list roles across all namespaces. |
| k8s_get_clusterrolesB | List RBAC ClusterRoles with their permission rules. ClusterRoles grant cluster-wide permissions or can be bound per-namespace. |
| k8s_get_rolebindingsA | List RBAC RoleBindings showing which subjects (users, groups, service accounts) are bound to which roles. Omit namespace for all namespaces. |
| k8s_get_clusterrolebindingsB | List RBAC ClusterRoleBindings showing cluster-wide role assignments. |
| k8s_get_service_accountsB | List Kubernetes ServiceAccounts. ServiceAccounts provide pod-level identity for RBAC authorization. Omit namespace for all namespaces. |
| k8s_get_pvcsB | List PersistentVolumeClaims (PVCs) with status, capacity, access modes, and storage class. Omit namespace for all namespaces. |
| k8s_get_pvsB | List PersistentVolumes (PVs) in the cluster with capacity, access modes, reclaim policy, and bound claim information. |
| k8s_get_storage_classesA | List StorageClasses in the cluster with provisioner, reclaim policy, volume binding mode, and whether each is the default class. |
| k8s_get_network_policiesB | List NetworkPolicies that control pod-to-pod and pod-to-external traffic. Shows pod selectors, policy types (Ingress/Egress), and rule counts. |
| k8s_get_jobsB | List Kubernetes Jobs with completion status, active/succeeded/failed counts, and timing information. Omit namespace for all namespaces. |
| k8s_get_cronjobsB | List Kubernetes CronJobs with schedule, suspension status, active jobs, and last schedule/success times. Omit namespace for all namespaces. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/razvanmacovei/k8s-multicluster-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server