← Back to directory
K

Kubernetes MCP Server

Community
Native Kubernetes and OpenShift control for AI assistants via MCP.
Category
Dev Tools #74 of 438
Stars
★ 2.2k Very popular
Transport
stdio (local process) · Streamable HTTP
Runtime
Node.js · Python · Docker · Prebuilt binary
Credentials
No credential needed
License
Apache-2.0
Last commit
Tools
46
63FMRS · C

The README describes an actively maintained, well-documented Go-native MCP server with broad tool coverage (Kubernetes, OpenShift, Helm, Tekton, KubeVirt, Kiali, NetObserv) and multiple install paths (npm, PyPI/uvx, native binaries, Docker); no third-party user reviews are included in the source material.

Strongest · Documentation 17/20 Weakest · Reliability 10/20

Reliability
10/20
Security and permissions
10/20
Maintenance
14/20
Documentation
17/20
Setup experience
12/20
Why each score
Reliability 10/20
The README claims an 'extensive test suite' and the repo carries a build.yaml CI status badge, indicating some CI pipeline exists; the documented tool list is internally consistent with the described feature set with no obvious contradictions. However, this is a static-only review — no test files, coverage, or workflow contents were inspected, and there is no way to verify that any of the three packaging methods (npm, PyPI, OCI) actually complete the MCP init + tool-list handshake in practice. All three packages in server.json carry a placeholder version of '0.0.0', which further undermines confidence that declared behavior matches real, published artifacts. Per the static calibration rule, without verifiable execution evidence the score cannot exceed 12, so this is scored 10.
Security and permissions 10/20
By default the server runs in read-write mode and exposes many high-risk operations: pods_exec (arbitrary command execution inside containers), pods_delete, resources_delete, resources_create_or_update (a full server-side-apply overwrite), helm_install/uninstall, resources_scale, and KubeVirt's vm_lifecycle — none of which have a server-enforced confirmation step by default; confirmation is left entirely to the client UI. Mitigations do exist but are opt-in: --read-only, --disable-destructive, a denied_resources TOML blocklist, and OAuth/OIDC support for HTTP mode; the docs also state that tokens, keys, passwords and cloud credentials are automatically redacted before being sent to clients, and a dedicated least-privilege ServiceAccount setup guide is referenced. No red-line issue was found (no malware, no covert exfiltration, no fabricated identity/results), but the broad default permission scope combined with destructive operations enabled by default and no built-in confirmation matches 'main risks visible but permissions/confirmation/scoping incomplete,' scored 10.
Maintenance 14/20
The repository belongs to the containers GitHub organization (home to Podman, Buildah, and related projects), is Apache-2.0 licensed, has 1957 stars, is not archived, and shows 93 open issues indicating ongoing community engagement. The docs directory is extensive and appears actively maintained (multiple topic-specific guides, an ecosystem validation table with eval scenario counts). However, all three package entries in server.json use a placeholder version '0.0.0', which either reflects a manifest-generation gap or makes it impossible to confirm actual release cadence and version discipline; no explicit security-response channel or release policy is stated. Given generally positive activity signals offset by governance gaps, scored 14.
Documentation 17/20
Documentation coverage is broad: beyond the README there is a dedicated docs/ directory covering configuration reference (configuration.md), observability (OTEL.md), logging (logging.md), custom prompts (prompts.md), OIDC setup guides (Keycloak, Entra ID), client-specific getting-started guides (Claude Code, a secure Kubernetes deployment guide), plus toolset-specific docs (KIALI.md, kubevirt.md, NETOBSERV.md). Tool parameters are auto-generated into clear tables listing each argument. The ecosystem validation table further links to checkable evidence (evals/tasks). The main gap is the absence of a consolidated 'known limitations' or explicitly labeled troubleshooting section. Scored 17.
Setup experience 12/20
Concrete configuration examples are provided for multiple mainstream clients (Claude Desktop, VS Code/Insiders, Cursor, Goose CLI, Claude Code), and npx/uvx enable near one-line startup. The Docker/OCI path requires manually mounting the kubeconfig, setting an env var, and mapping a port — documented but more manual. The stated prerequisite of 'access to a Kubernetes cluster' is an inherent domain dependency, not a setup flaw. However, all three packages in server.json list a placeholder version of '0.0.0', meaning a user following the manifest literally cannot be sure which actual version would be fetched — a real risk of setup instructions diverging from a genuinely installable artifact. Per the static calibration rule, without verified execution evidence the setup score cannot exceed 15, so this is scored 12.

Static review · not runListed 2026-08-26

Read the FMRS scoring method →

Fit and risk

What it can accessRuns commands or codeUses the network

Best for

  • Developers and platform engineers who want AI assistants (Claude Desktop, Claude Code, VS Code, Cursor) to interact directly with Kubernetes/OpenShift clusters
  • Teams needing lightweight, dependency-free cluster access without kubectl/helm binaries installed locally
  • Multi-cluster environments defined across kubeconfig contexts

Not for

  • Users without access to a Kubernetes cluster
  • Strictly read-only or isolated environments where --read-only/--disable-destructive flags haven't been reviewed first
  • Users who just want a thin kubectl wrapper (this is a native reimplementation, not kubectl passthrough)

Required permissions

  • Requires a kubeconfig file (or in-cluster ServiceAccount) with API access to the target cluster(s)
  • Docker/OCI deployment requires a mounted kubeconfig volume and an exposed HTTP port
  • By default has full read/write access to cluster resources unless --read-only or --disable-destructive is set
  • The pods_exec tool can run arbitrary commands inside cluster containers

Risks and side effects

  • Default configuration allows create/update/delete on any Kubernetes/OpenShift resource, including Secrets, unless restricted via denied_resources or read-only mode
  • pods_exec and resources_create_or_update can be used to run arbitrary commands or alter cluster state
  • Streamable HTTP mode exposes a network endpoint (port 8080 in the Docker example) that should be secured with the supported OAuth/OIDC before exposing beyond localhost
  • Multi-cluster support means a single compromised MCP session could reach every cluster defined in the kubeconfig

Setup

Before you start

Runtime:Node.js · Python · Docker · Prebuilt binary

Other optional settings (1)
KUBECONFIG optional Environment variable setting the kubeconfig path inside the container (typically /kubeconfig), used with a docker -v mount of the host's ~/.kube/config.

For Claude Desktop, edit claude_desktop_config.json to add: {"mcpServers":{"kubernetes":{"command":"npx","args":["-y","kubernetes-mcp-server@latest"]}}} (requires Node.js/npm). Alternatively run the PyPI package via uvx (requires Python/uv), or download a native Go binary release. For Docker/OCI, mount the kubeconfig file as a volume, set the KUBECONFIG env var, map port 8080, and connect over streamable-http to http://localhost:8080/mcp. VS Code, VS Code Insiders, and Cursor have one-click install links; Goose CLI uses a similar npx entry in config.yaml. Requires access to a Kubernetes cluster.

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

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "kubernetes": {
      "command": "npx",
      "args": [
        "-y",
        "kubernetes-mcp-server@latest"
      ]
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add kubernetes -- npx -y kubernetes-mcp-server@latest

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After connecting, the client's tool list should show tools like namespaces_list and pods_list; then ask the client to 'list all namespaces' — a returned namespace list confirms the connection works.

Troubleshooting

  1. Verify the --kubeconfig path or in-cluster config resolves correctly if the server can't reach the cluster
  2. Use a higher --log-level value for verbose Kubernetes API debugging
  3. If a tool is missing, check that --toolsets includes the needed toolset (e.g., helm, tekton, kubevirt)
  4. For Docker/OCI deployment, confirm the kubeconfig volume mount path matches the KUBECONFIG env var inside the container
  5. Check the /stats endpoint or OpenTelemetry tracing (docs/OTEL.md) for observability issues

Things to try

Once connected, you can ask your AI assistant things like:

  • List all pods in Running phase across the cluster
  • Show the last 100 lines of logs for pod my-pod in the default namespace
  • Scale the apps/v1 Deployment my-app to 5 replicas
  • Install a Helm release named grafana from the stable/grafana chart into the monitoring namespace

Tools 46

configuration_contexts_list read-only
List all available context names and associated server URLs from the kubeconfig file
targets_list read-only
List all available targets
configuration_view read-only
Get the current Kubernetes configuration content as a kubeconfig YAML
events_list read-only
List Kubernetes events (warnings, errors, state changes) for debugging and troubleshooting
namespaces_list read-only
List all Kubernetes namespaces in the current cluster
projects_list read-only
List all OpenShift projects in the current cluster
nodes_log read-only
Get logs from a Kubernetes node (kubelet, kube-proxy, or other system logs) via the API proxy
nodes_stats_summary read-only
Get detailed resource usage statistics from a node via the kubelet Summary API, including PSI metrics
Show 38 more tools
nodes_top read-only
List CPU and memory consumption for nodes as recorded by the Kubernetes Metrics Server
pods_list read-only
List all Kubernetes pods in the current cluster from all namespaces
pods_list_in_namespace read-only
List all Kubernetes pods in the specified namespace
pods_get read-only
Get a Kubernetes Pod in the current or provided namespace by name
pods_delete destructive
Delete a Kubernetes Pod in the current or provided namespace by name
pods_top read-only
List CPU and memory consumption for pods as recorded by the Metrics Server
pods_exec writes
Execute a command in a Kubernetes Pod (shell access, run commands in container)
pods_log read-only
Get the logs of a Kubernetes Pod by name
pods_run writes
Run a Kubernetes Pod with the provided container image and optionally expose a port
resources_list read-only
List Kubernetes resources and objects by apiVersion and kind, optionally namespace and label selector
resources_get read-only
Get a Kubernetes resource by apiVersion, kind, namespace, and name
resources_create_or_update writes
Create or update a Kubernetes resource via Server-Side Apply using a complete desired-state manifest
resources_delete destructive
Delete a Kubernetes resource by apiVersion, kind, namespace, and name
resources_scale writes
Get or update the scale (replica count) of a Kubernetes resource
helm_install writes
Install a Helm chart to create a release in the current or provided namespace
helm_list read-only
List Helm releases in the current, provided, or all namespaces
helm_uninstall destructive
Uninstall a Helm release in the current or provided namespace
kcp_workspaces_list read-only
List all available kcp workspaces in the current cluster
kcp_workspace_describe read-only
Get detailed information about a specific kcp workspace
kiali_get_mesh_traffic_graph read-only
Return service-to-service traffic topology, dependencies, and network metrics for the specified namespaces
kiali_get_mesh_status read-only
Retrieve the high-level health, topology, and environment details of the Istio service mesh
kiali_manage_istio_config_read read-only
Read Istio, Gateway API, and Inference API configuration (list or get)
kiali_manage_istio_config writes
Create, patch, or delete Istio, Gateway API, and Inference API configuration
kiali_list_mesh_clusters read-only
List Istio mesh clusters accessible to Kiali
kiali_get_resource_details read-only
Fetch a list of resources or detailed data for a specific resource (apps, ArgoCD apps)
kiali_list_traces read-only
List distributed traces for a service in a namespace
kiali_get_trace_details read-only
Fetch a single distributed trace by trace ID and return its call hierarchy
kiali_get_pod_performance read-only
Return a summary of Pod CPU/memory usage compared to Kubernetes requests/limits
kiali_get_logs read-only
Get the logs of a Kubernetes Pod or workload in a namespace
kiali_get_metrics read-only
Return a compact summary of Istio metrics (latency, traffic, throughput, payload sizes) for a resource
vm_clone writes
Clone a VirtualMachine on KubeVirt by creating a VirtualMachineClone resource
vm_create writes
Create a VirtualMachine on KubeVirt with automatic instance type, preference, and image resolution
vm_guest_info read-only
Get guest OS information from a VirtualMachine's QEMU guest agent
vm_lifecycle writes
Manage KubeVirt VirtualMachine lifecycle: start, stop, or restart
vm_troubleshoot read-only
Diagnose KubeVirt VirtualMachine issues with automated root-cause detection
netobserv_list_flows read-only
List NetObserv network flow records from Loki
netobserv_get_flow_metrics read-only
Return aggregated NetObserv flow metrics as topology or time-series data
netobserv_export_flows read-only
Export NetObserv flow records as CSV with the same filters as list_flows

Use cases

Diagnose and automatically fix failing Deployments
Manage pods, namespaces, and generic Kubernetes/OpenShift resources
Install, list, and uninstall Helm releases
Start and troubleshoot Tekton Pipelines and Tasks
Create, clone, and troubleshoot KubeVirt virtual machines
Inspect Istio service mesh topology and metrics via Kiali
Analyze network flows and packet drops via NetObserv

Supported clients

Claude Desktop
Claude Code
VS Code
Cursor
Goose CLI

Listed from the project's documentation, not tested by this site.

Overview

Kubernetes MCP Server is a Go-native Model Context Protocol server that talks directly to the Kubernetes/OpenShift API server rather than wrapping kubectl or helm CLI tools. It supports CRUD on pods, generic resources, namespaces, and events, plus optional toolsets for Helm, Tekton, KubeVirt, Kiali (Istio service mesh), and NetObserv (network observability), with multi-cluster, read-only, and fine-grained resource-restriction support.

Similar servers

Context7 80 · B

Upstash's official server providing up-to-date third-party library docs for AI coding assistants

★ 63.3k · Tools 2 Compare with this →

Source revision 970df6a7169c Data synced 2026-10-19 Read the FMRS scoring method