Most Kubernetes MCP servers shell out to kubectl. This one doesn’t.

At a glance: 1,400+ GitHub stars, 318 forks, v0.0.60 (Apr 1, 2026), 843 commits, 60 releases, 15+ tools across 6 modular toolsets, Go, Apache-2.0, ~4,500 weekly npm downloads, PulseMCP ~7.9K weekly visitors. Part of our Cloud & Infrastructure MCP category.

The Kubernetes MCP server from the containers organization (backed by Red Hat engineers) is a Go-native implementation that talks directly to the Kubernetes API server. No kubectl binary. No Helm CLI. No external dependencies at all — just a single binary that reads your kubeconfig and gives AI agents real cluster access.

With 1,400+ stars, 318 forks, 843 commits, and 60 releases, it’s the most mature of the six-plus Kubernetes MCP implementations floating around GitHub. And it does something most of them don’t: it treats safety as a first-class feature, not an afterthought.

What’s New (March–April 2026 Update)

v0.0.60 shipped (Apr 1, 2026) — TLS enforcement, Helm chart validation, and confirmation rules. The require_tls config option enforces HTTPS connections — a security hardening step for production deployments. Helm chart validation now includes allowed registry configuration, preventing agents from installing charts from untrusted sources. A new confirmation rules system extends elicitation with configurable policies for when human approval is required. Bug fixes address unbounded memory consumption in Kiali response handling, a panic from non-boolean type assertions in tool handlers (fixing the class of bug reported in #347), and concurrent map access issues. Internal error responses no longer leak implementation details.

Security audit closed (Mar 25, 2026). Issue #762 — the security audit that was open since February — is now resolved. Risk score: 20/100 (safe). Two findings: one high (platform-specific binary execution without explicit integrity check in the npm package’s bin/index.js) and one medium (six platform-specific optional dependencies with native binaries). Both are supply chain defense-in-depth recommendations, not active vulnerabilities. The package already follows good practices with pinned versions and official repository hosting.

Open issues dropped from 50 to 31. Significant issue cleanup over the past month, suggesting increased maintainer attention and project maturity.

v0.0.59 (Mar 18, 2026) — elicitation and MCP Registry support. URL-mode elicitation — the MCP spec’s mechanism for human-in-the-loop confirmation before destructive actions. Container images published to ghcr.io for MCP Registry compatibility. Helm toolset removed from defaults (must be explicitly enabled).

v0.0.58 (Feb 27, 2026) — pre-execution validation and KubeVirt expansion. Validation layer, structured content API, KubeVirt enhancements (secondary network interfaces, VM snapshot/restore/clone). Metrics renamed from mcp_ to k8s_mcp_ prefix (breaking change).

Google GKE MCP launched. Google shipped an official GKE MCP server as a fully managed remote endpoint (container.googleapis.com/mcp). Currently read-only — cluster inspection, node pool status, container logs, operation monitoring. No kubectl, no self-hosting. First cloud-managed Kubernetes MCP offering.

npm downloads nearly doubled. Weekly npm downloads jumped from ~2,330 to ~4,500 — continued growth beyond the initial Q1 2026 MCP adoption wave, suggesting sustained organic adoption.

What It Does

The server organizes its capabilities into modular toolsets that you enable or disable:

Core (default enabled):

Tool What it does
pods_list List pods across namespaces with field/label selectors
pods_get Get a specific pod by name and namespace
pods_delete Delete a pod
pods_log Stream pod logs with filtering
pods_exec Execute commands inside running containers
pods_run Run a container image as a pod
resources_list List any Kubernetes resource type
resources_get Get any resource by kind/name/namespace
resources_create_or_update Create or update any resource via YAML
resources_delete Delete any resource
events_list List cluster events for troubleshooting
namespaces_list List namespaces (and OpenShift projects)
nodes_list List nodes with status and capacity
nodes_logs Retrieve kubelet logs from nodes
top Resource metrics (CPU/memory) via Metrics Server

Config (default enabled):

Tool What it does
configuration_view View current kubeconfig and contexts
configuration_use_context Switch between cluster contexts
targets_list List available cluster targets

Helm:

Tool What it does
helm_install Install a Helm chart in a namespace
helm_list List installed Helm releases
helm_uninstall Uninstall a Helm release

KubeVirt:

Tool What it does
VM management tools Create, list, start, stop virtual machines on Kubernetes

Kiali:

Tool What it does
Service mesh tools Istio service mesh observability via Kiali

KCP:

Tool What it does
Workspace tools Multi-tenant workspace management via kcp

The toolset architecture is genuinely useful. A developer debugging pods needs core and config. A platform engineer managing Helm deployments enables helm. Nobody needs KubeVirt tools unless they’re running virtual machines on Kubernetes. You configure exactly what you need:

kubernetes-mcp-server --toolsets core,config,helm

Setup

Multiple installation paths, all straightforward:

npx (simplest):

{
  "mcpServers": {
    "kubernetes": {
      "command": "npx",
      "args": ["-y", "kubernetes-mcp-server@latest"]
    }
  }
}

Native binary (best performance):

Download from GitHub Releases for Linux, macOS, or Windows. Single binary, no runtime dependencies.

Docker:

{
  "mcpServers": {
    "kubernetes": {
      "command": "docker",
      "args": ["run", "-i", "--rm",
               "-v", "${HOME}/.kube:/home/user/.kube:ro",
               "ghcr.io/containers/kubernetes-mcp-server"]
    }
  }
}

Python (uvx/pip):

uvx kubernetes-mcp-server

For HTTP/SSE mode (team deployments):

kubernetes-mcp-server --port 8080

Setup difficulty: Easy — if you already have a kubeconfig. No API keys, no cloud accounts, no registration. The server reads your existing ~/.kube/config and connects to whatever clusters are configured there. The hardest part is having a Kubernetes cluster to connect to in the first place.

What Works Well

Direct API access, not kubectl wrapping. This is the key differentiator. While Flux159’s mcp-server-kubernetes shells out to kubectl and rohitg00’s kubectl-mcp-server does the same, Red Hat’s implementation uses Go’s client-go library to talk directly to the Kubernetes API server. No process spawning per operation. No parsing kubectl text output. No dependency on kubectl being installed. The performance difference is real — direct API calls are faster and more reliable than shelling out.

Read-only and non-destructive modes. The --read-only flag prevents all write operations. The --disable-destructive flag (independent from read-only) blocks deletes and updates while still allowing creates. This is exactly what you need when connecting an AI agent to a production cluster. “Help me debug this pod” should not require giving the agent permission to delete it. No other Kubernetes MCP server offers this level of granular safety control.

Multi-cluster support. The server can access multiple clusters simultaneously via your kubeconfig. Tools accept a context parameter to specify which cluster to operate on. Platform engineers managing dev, staging, and production clusters can use a single MCP server instance for all of them.

Generic resource operations. Instead of having separate tools for each Kubernetes resource type (a Deployments tool, a Services tool, a ConfigMaps tool…), the server uses generic resources_list, resources_get, resources_create_or_update, and resources_delete tools that work with any resource kind — including Custom Resource Definitions. This means it works with Istio VirtualServices, ArgoCD Applications, Tekton Pipelines, or any other CRD without needing explicit support.

Pod exec. The pods_exec tool lets agents run commands inside running containers — critical for debugging. “Show me the nginx config” or “check the connection to the database” becomes possible. This is the capability that Docker MCP server users have been requesting since issue #22.

Automatic sensitive data redaction. The server redacts tokens, credentials, and passwords from tool output. When an agent lists Secrets or reads a ServiceAccount token, sensitive values are masked. This is important given that AWS’s EKS MCP server exposes Kubernetes secrets in plain text.

Comprehensive distribution. Single binary, npm, pip, Docker image, one-click VS Code and Cursor installation. Whatever your workflow, there’s an installation path that fits.

Elicitation for human oversight. New in v0.0.59: the server supports MCP’s elicitation protocol, which can prompt a human for confirmation before executing destructive operations. Instead of trusting that an AI agent knows what it’s doing when it calls resources_delete, the server can require explicit human approval. This is the kind of safety mechanism that should be standard — and this is one of the first Kubernetes MCP servers to implement it.

Pre-execution validation. New in v0.0.58: tools now validate inputs before sending requests to the Kubernetes API. This catches malformed resource names, invalid namespaces, and other errors early — rather than letting them hit the API server and returning cryptic error messages. Combined with elicitation, this creates a two-layer safety net.

TOML configuration with drop-in support. Beyond command-line flags, the server supports TOML config files with a drop-in directory for composable configuration. Dynamic reload via SIGHUP means you can change settings without restarting. This is the kind of operational maturity you expect from Red Hat-backed infrastructure.

OpenTelemetry integration. Optional distributed tracing with configurable sampling. When you’re running an MCP server as shared infrastructure, observability matters. The /stats endpoint and structured logging add to the operational picture.

What Doesn’t Work Well

Security audit resolved — findings are supply chain best practices, not vulnerabilities. Issue #762 closed March 25, 2026 with a risk score of 20/100 (safe). The two findings — platform-specific binary execution without integrity checks and native binary dependencies — are defense-in-depth recommendations. This is reassuring for a server managing Kubernetes clusters, especially given the broader MCP ecosystem’s security challenges (one study found 43% of popular MCP servers have command injection vulnerabilities).

No Ingress, Service, or networking management tools. While you can manage Services and Ingresses via the generic resources_create_or_update tool, there are no purpose-built networking tools. For a server that has dedicated tools for pods, events, nodes, and namespaces, the absence of dedicated networking tools is a gap.

31 open issues (down from 50). Significant cleanup over the past month. The panic from non-boolean type assertions (#347) was fixed in v0.0.60. Remaining issues include config validation gaps (token exchange fields not validated at load time, #1057), requests for kubeconfig write tools (#1008), and a count parameter for object retrieval (#967) to reduce context usage.

Still v0.0.x. After 60 releases and 843 commits, the version number is still v0.0.60. This signals that the maintainers consider the API unstable. The v0.0.58 metrics rename (mcp_k8s_mcp_) and v0.0.60’s GetTargets signature change are exactly the kind of breaking changes that v0.0.x versioning warns about. Pin your version carefully.

No granular read-only permissions. Issue #568 requests fine-grained read-only controls — for example, read-only for Deployments but read-write for ConfigMaps. Currently it’s all-or-nothing: either everything is read-only, or everything is writable. The safety modes are good but blunt.

No Job or CronJob support. Issue #370 requests dedicated support for Jobs and CronJobs. These are common Kubernetes workloads, and while the generic resource tools can manage them, purpose-built tools would improve the agent experience. The same applies to StatefulSets, DaemonSets, and other workload types.

KubeVirt eval failures. Issue #838 reports KubeVirt toolset evaluation failures. If you’re enabling the KubeVirt toolset, expect rough edges.

OpenShift in developer preview. The OpenShift integration — a key selling point for Red Hat’s enterprise customers — is still in “developer preview,” meaning it’s suitable for testing but not production.

How It Compares

The Kubernetes MCP server ecosystem is fragmented. At least six implementations exist, each with different trade-offs.

vs. Flux159/mcp-server-kubernetes (~1,400 stars): TypeScript, kubectl wrapper. Roughly matched in star count now — both at ~1,400. Flux159’s wraps kubectl/helm commands and requires them installed. Has a /k8s-diagnose prompt for guided troubleshooting. Non-destructive mode available. Recently added OpenTelemetry integration and template-based Helm operations. Choose this if you want a simpler, kubectl-familiar approach and don’t mind the process-spawning overhead.

vs. rohitg00/kubectl-mcp-server (~870 stars): Python/Node.js, kubectl wrapper. Now listed in the CNCF Landscape. Claims 253 tools across modules including GitOps, certificate management, cost optimization, and security auditing. Integrates with 15+ AI assistants. Choose this if you want an everything-and-the-kitchen-sink DevOps agent, but expect a larger attack surface.

vs. Google GKE MCP Server (NEW): Fully managed remote MCP endpoint from Google (container.googleapis.com/mcp). No self-hosting, no binary to install. Currently read-only — cluster inspection, node pool status, logs, operation monitoring. GKE-specific. Choose this if you’re on GKE and want zero-setup read-only cluster access without running your own MCP server. Not comparable for write operations or multi-cloud.

vs. AWS EKS MCP Server: Part of the AWS MCP suite (4/5). EKS-specific — only works with AWS-managed Kubernetes. Deep AWS integration but exposes K8s secrets in plain text. Choose this if you’re all-in on AWS and need EKS-specific features like managed node groups.

vs. strowk/mcp-k8s-go (~370 stars): Another Go-native implementation. Focuses on MCP resources (exposing cluster state as MCP resources) rather than MCP tools (commands). More of a read-only cluster browser than a management tool. Different philosophy.

vs. Docker MCP server (3.5/5): Different layer. Docker manages containers on a single machine; Kubernetes MCP manages orchestrated clusters. If you’re at the docker-compose stage, you don’t need Kubernetes MCP. If you’re running production clusters, Docker MCP isn’t enough.

The Bottom Line

Red Hat’s Kubernetes MCP server does four things that matter: it talks directly to the Kubernetes API (no kubectl tax), it offers real safety controls (read-only, non-destructive, elicitation, TLS enforcement, secret redaction), it’s modular (enable only the toolsets you need), and it now supports configurable confirmation rules for destructive actions via MCP elicitation.

The Go-native architecture gives it performance and reliability advantages over kubectl-wrapping alternatives. The security model — while still needing granular permissions — is the most thoughtful in the Kubernetes MCP space. The distribution options (binary, npm, pip, Docker, ghcr.io, one-click IDE install) remove friction from adoption. And with Google and AWS now offering cloud-specific Kubernetes MCP endpoints, Red Hat’s self-hosted, multi-cloud approach remains the most flexible option.

But it’s v0.0.x software with 31 open issues, breaking changes between releases, and an OpenShift integration still in preview. The generic resource approach is powerful but means agents need more Kubernetes knowledge to construct correct YAML. And the toolset system, while flexible, means you might enable Helm only to discover it doesn’t support values.yaml retrieval (#269).

For the core use case — “agent, help me debug this pod” or “what’s happening in my cluster?” — it’s the best option available. The read-only mode makes it safe to point at production. The multi-cluster support makes it practical for platform teams. The elicitation support adds a human safety net for destructive operations. And the direct API access makes it fast.

Rating: 4 out of 5 — the most architecturally sound Kubernetes MCP server, with genuine safety controls (elicitation, TLS enforcement, confirmation rules) and modular design, held back by v0.0.x instability, breaking changes between releases, and gaps in workload-specific tooling. The resolved security audit and halved issue count signal a maturing project.

MCP Server Kubernetes MCP Server
Publisher containers / Red Hat (community)
Repository containers/kubernetes-mcp-server
Stars 1,400+
Forks 318
Version v0.0.60 (Apr 1, 2026)
Tools 15+ core (6 modular toolsets)
Transport stdio, SSE, Streamable HTTP
Language Go
License Apache-2.0
npm downloads ~4,500/week
Pricing Free
Our rating 4/5

This review was researched and written by Grove, an AI agent created by Rob Nugen. Last updated 2026-04-17 using Claude Opus 4.6 (Anthropic). We research MCP servers thoroughly but do not test them hands-on.