Multi Cluster Kubernetes MCP Server

An MCP (Model Context Protocol) server for managing multiple Kubernetes clusters simultaneously. Provides 60+ tools covering cluster operations, resource management, monitoring, RBAC, storage…

Local serverstdio

What is the Multi Cluster Kubernetes MCP Server?

Multi Cluster Kubernetes MCP Server is an MCP project maintained in the razvanmacovei/k8s-multicluster-mcp repository. The maintainer describes its purpose as “An MCP (Model Context Protocol) server for managing multiple Kubernetes clusters simultaneously. Provides 60+ tools covering cluster operations, resource management, monitoring, RBAC, storage, networking, and…”. Read the project documentation for the complete scope.

Local setup

The project provides a local client configuration using python3. Follow the repository’s build and installation steps before copying it, and replace example paths with the paths on your own computer.

Configuration values

The example declares KUBECONFIG_DIR. Secret-looking values have been replaced with placeholders. Required and optional labels are shown only when the documentation states them.

Source

Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
k8s_get_contextsList all available contexts across all kubeconfig files
k8s_get_namespacesList all namespaces in a cluster
k8s_create_nsCreate a new namespace with optional labels/annotations
k8s_delete_nsDelete a namespace (protects system namespaces)
k8s_get_nodesList all nodes with status, roles, capacity, and version
k8s_cluster_infoComprehensive cluster health summary (nodes, pods, deployments, warnings)
k8s_get_resourcesList resources of any kind (pods, deployments, services, ingress, etc.)
k8s_get_resourceGet the complete definition of a single resource
k8s_get_pod_logsGet pod logs with duration filtering and container selection
k8s_get_eventsList cluster events in a namespace, sorted by most recent
k8s_describeDetailed resource description similar to kubectl describe
k8s_apisList all available API groups and resources in the cluster
k8s_crdsList all Custom Resource Definitions with versions and scope
k8s_top_nodesDisplay node CPU/memory usage alongside capacity
k8s_top_podsDisplay pod/container CPU/memory usage
k8s_diagnose_applicationComprehensive app diagnostics with issue detection and recommendations
k8s_rollout_statusGet rollout status for deployment/statefulset/daemonset
k8s_rollout_historyGet revision history
k8s_rollout_undoRoll back to a previous revision
k8s_rollout_restartTrigger a rolling restart
k8s_rollout_pausePause an in-progress rollout
k8s_rollout_resumeResume a paused rollout
k8s_scale_resourceScale deployment/statefulset/replicaset to N replicas
k8s_autoscale_resourceConfigure Horizontal Pod Autoscaler (HPA)
k8s_update_resourcesUpdate CPU/memory requests and limits for a container
k8s_create_resourceCreate a resource from YAML/JSON content
k8s_apply_resourceApply configuration (create or update, like kubectl apply)
k8s_delete_resourceDelete any resource type with optional force/grace period
k8s_patch_resourceUpdate specific fields with strategic merge patch
k8s_label_resourceAdd or update labels on a resource
k8s_annotate_resourceAdd or update annotations on a resource
k8s_expose_resourceExpose a deployment/pod as a new Service
k8s_run_podCreate and run a pod with a specified image
k8s_set_resources_for_containerSet resource limits/requests for containers
k8s_cordon_nodeMark a node as unschedulable
k8s_uncordon_nodeMark a node as schedulable
k8s_drain_nodeDrain a node by evicting pods (for maintenance)
k8s_taint_nodeAdd taints to a node
k8s_untaint_nodeRemove taints from a node
k8s_pod_execExecute a command in a container (supports quoted arguments)
k8s_list_secretList secrets with metadata (values hidden for security)
k8s_get_secret_detailGet a secret; optionally decode values
k8s_create_secret_resourceCreate a new secret (auto base64-encodes values)
k8s_list_configmapList ConfigMaps with their key names
k8s_get_configmap_detailGet a ConfigMap with full data contents
k8s_create_configmap_resourceCreate a new ConfigMap
k8s_get_rolesList RBAC Roles with permission rules
k8s_get_clusterrolesList RBAC ClusterRoles
k8s_get_rolebindingsList RoleBindings (who has what role)
k8s_get_clusterrolebindingsList ClusterRoleBindings
k8s_get_service_accountsList ServiceAccounts
k8s_get_pvcsList PersistentVolumeClaims with status, capacity, and storage class
k8s_get_pvsList PersistentVolumes with capacity and bound claims
k8s_get_storage_classesList StorageClasses with provisioner and default status
k8s_get_network_policiesList NetworkPolicies with pod selectors and rule counts
k8s_get_jobsList Jobs with completion status and timing
k8s_get_cronjobsList CronJobs with schedule, suspend status, and last run

How to install the Multi Cluster Kubernetes MCP Server

{
  "mcpServers": {
    "kubernetes": {
      "command": "python3",
      "args": [
        "/path/to/k8s-multicluster-mcp/app.py"
      ],
      "env": {
        "KUBECONFIG_DIR": "/path/to/your/kubeconfigs"
      }
    }
  }
}

From the project documentation. Replace placeholders and example paths before connecting.

Configuration

VariableDescriptionRequired
KUBECONFIG_DIRDeclared in the maintainer’s client configuration.Check documentation