Labsco
MCP SERVER

weibaohui/k8m

by weibaohui

A single-binary Kubernetes console with a built-in MCP server, where the model's cluster permissions are the permissions of whoever is using it.

Containers, Kubernetes & Cluster Operations
Summary
The model's cluster rights are the operator's cluster rights.

Most Kubernetes MCP servers run with whatever the kubeconfig on the host allows. Tying MCP execution to the signed-in user's own multi-cluster authorization is what makes it safe to expose on a shared cluster — and every call is recorded.

What it is

A lightweight Kubernetes dashboard built in Go with an AMIS front end, shipped as one executable. It manages several clusters at once and doubles as an MCP server so a model can operate them.

What you get
  • 49 built-in multi-cluster Kubernetes MCP tools, combinable into a much larger set of cluster operations, usable from other LLM software as well as from k8m itself
  • MCP calls that inherit the caller's own cluster authorization — whoever is using the model executes with their own permissions, so a tool call cannot exceed what that person could do by hand
  • A per-call record of every MCP invocation
  • Multi-cluster management with InCluster detection, automatic scanning of kubeconfig files alongside the configured path, heartbeat checks and reconnection
  • Per-cluster authorization for users and groups at three levels — read-only, exec, and cluster administrator — with namespace allow and deny lists
  • Pod file management from a right-click file tree, live log viewing with download and highlighted search, and shell execution inside a pod
  • CRD discovery listed as a tree, a Helm repository market with one-click install, uninstall and upgrade, scheduled multi-cluster inspection with Lua rule scripts, and Kubernetes Event forwarding to webhooks filtered by cluster, namespace, name or keyword
  • Cross-platform builds for Linux, macOS and Windows on x86 and ARM, with SQLite, MySQL or PostgreSQL behind it
Requirements

Download a release and run `./k8m`, then open http://127.0.0.1:3618 — the default username and password are both `k8m`, and changing them plus enabling two-step verification is the first thing to do on a shared install. `--kubeconfig` sets the config path, defaulting to `/root/.kube/config`, and `--in-cluster` registers the host cluster automatically. Docker Compose is the recommended path, mounting `./data` for persistence. For in-cluster deployment, apply the published manifest; the single-instance service definition must not carry the leader label, and the multi-instance one must. Kubectl Shell and Node Shell pull `bitnami/kubectl:latest` and `alpine:latest` by default, and those images must contain `kubectl` and `nsenter` respectively. MIT licensed.