LabscoMCP early access ↗
feiskyerMCP SERVER · OFFICIAL PROJECT

Kubernetes Server

Kubernetes through natural language — the read, write and delete surfaces each switchable off at startup.

by feiskyer ↗Containers, Kubernetes & Cluster Operations✓ Official

LABSCO SUMMARY

Give an assistant the cluster read-only, or all of it — your call at launch.

The four switches are the design decision that matters: the same server can be a safe investigative tool on production and a full operator on a dev cluster, without maintaining two setups or trusting a prompt to hold the line.

What it is

A bridge between an AI assistant and a Kubernetes cluster that translates requests into kubectl commands or direct API calls and returns structured results. What sets it apart is the shape of its permissions: reads, writes, deletes, kubectl and helm are four separate switches you set when you launch it.

What you get

  • Command tools — kubectl and helm, each running an arbitrary command and returning its output
  • Read tools — k8s_get, k8s_describe, k8s_logs with container, tail, since and previous options, k8s_events, k8s_apis, k8s_crds, k8s_top_nodes, k8s_top_pods, k8s_rollout_status, k8s_rollout_history, k8s_auth_can_i and k8s_auth_whoami
  • Write tools — k8s_create and k8s_apply from YAML or JSON content, k8s_run, k8s_expose, k8s_scale, k8s_autoscale, k8s_patch, k8s_label, k8s_set_image, k8s_set_env, k8s_set_resources, the rollout family (k8s_rollout_undo, k8s_rollout_restart, k8s_rollout_pause, k8s_rollout_resume), node operations (k8s_cordon, k8s_uncordon, k8s_drain, k8s_taint, k8s_untaint) and access paths (k8s_exec_command, k8s_port_forward, k8s_cp)
  • Delete tools — k8s_delete by name, label selector or across a namespace, with force and grace period

Requirements

A working cluster and a kubeconfig that reaches it, with kubectl and helm on the PATH when you run it directly rather than through Docker; Python >= 3.11 for the uvx mcp-kubernetes-server path, and KUBECONFIG pointing at your config. The Docker route mounts your kubeconfig into the container instead. Four flags decide what an assistant can do: --disable-kubectl, --disable-helm, --disable-write and --disable-delete — a disabled operation returns a clear message rather than failing obscurely. --transport selects stdio, sse or streamable-http, with --host and --port for the network ones. Whatever the flags allow, the kubeconfig's own credentials still bound it, so test with kubectl first when a call is refused.

Setup effort

One command — uvx mcp-kubernetes-server