Kubeleash

io.github.kubeleash由 GitHub 帳號 kubeleash 發布v0.3.0更新於 Oct 24, 2026

Kubernetes MCP server with RBAC-style, context-scoped guardrails for AI agents.

概覽

AI 產生的概覽

針對 Kubernetes 的在地 MCP 伺服器,讓 AI 助理依情境限定的在地原則,對叢集資源執行列出、讀取、套用、刪除、擴縮與 exec 操作。

可以做什麼
以通用、不依賴特定 GVK 的工具列出與讀取任意 Kubernetes 資源,包括 CRD(k8s_list、k8s_get)。檢視 Pod 與工作負載日誌(k8s_logs)。建立或更新資源(k8s_apply)、刪除資源(k8s_delete)、調整副本數(k8s_scale)。在容器內執行指令(k8s_exec)。查詢目前原則與情境允許的操作(k8s_capabilities)。每次呼叫都會依在地原則檔檢查,並寫入 stderr 上的 JSON 稽核日誌。
適用情境
想讓 AI 助理操作真實 Kubernetes 叢集,但只在你依 kube 情境設定的範圍內行動時使用,例如正式環境唯讀、預備或開發環境權限較寬。也適合 kubeconfig 權限高於你希望授予助理權限的情況。
執行需求
透過 stdio 在地執行,由用戶端啟動該執行檔。可透過 Homebrew、go install、容器映像或 Claude Desktop 安裝包安裝。必須提供原則檔(--policy 參數或 K8S_MCP_POLICY 變數),否則拒絕啟動。kubeconfig 來自 --kubeconfig、KUBECONFIG 或預設位置,並需要能連線叢集 API 伺服器的網路。
安裝前請注意
它會操作真實叢集:k8s_apply、k8s_delete、k8s_scale 與 k8s_exec 會修改或執行內容,放寬原則前請先審閱。防護只涵蓋經由 kubeleash 的呼叫;具 shell 權限的助理可用原生 kubectl 繞過。Claude Code 外掛首次執行會寫入一份唯讀起始原則。它讀取的 kubeconfig 可能含叢集管理員憑證。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Kubeleash,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[kubeleash logo]

kubeleash

Point it at your over-privileged kubeconfig — it still can't nuke prod.

[CI] [Go Report Card] [OpenSSF Scorecard] [License] [Release]

Guardrails for AI agents on your cluster. kubeleash is a local MCP server for Kubernetes whose differentiator is RBAC-style, context-scoped access control. Point it at a kubeconfig — even a cluster-admin one — and a local policy file constrains what the agent can actually do, per kube context, with destructive actions gated before any call reaches the cluster.

Add kubeleash to your AI client

[Add to VS Code]   [Add to Cursor]   [Claude Code / Desktop]

Install launches the local kubeleash binary — get it via brew, go install, or the container (see Install). VS Code installs in one click; Cursor & Claude open the setup steps (GitHub strips the cursor:// one-click link, so it lives there as copy-paste).

Why

Most Kubernetes MCP servers inherit the kubeconfig's permissions wholesale — whatever the credentials grant, the agent can do. kubeleash adds three things native RBAC can't express for this use case:

  • Constrain the agent independently of the credentials. Effective access is always kubeconfig-grants ∩ policy-allows — kubeleash only ever subtracts.
  • Context-aware guardrails. Policy varies by context (prod vs staging vs dev); native RBAC is per-cluster.
  • Block destructive verbs (delete/exec/…) as a safety net against agent mistakes and prompt injection.

What kubeleash enforces

kubeleash governs only the calls routed through it. It provides a hard guarantee when it is the agent's sole path to the cluster. An agent that also has shell access (raw kubectl, oc, the API) can step around it, so in a shell-enabled assistant kubeleash is advisory — pair it with the using-kubeleash skill, which instructs the agent to stop (not reach for kubectl) when the leash is unavailable.

Policy in 10 seconds

yaml
policies:  - contexts: ".*prod.*"          # regex over the active context name    allow:      resources: ["*"]      verbs: [get, list, watch]   # read-only in prod    deny:      verbs: [exec]               # never, regardless of credentials

Deny wins. Default deny. A broken policy refuses to start — it never fails open.

See examples/policy.yaml for a fuller, commented policy (read-only prod, broader staging, namespace-scoped dev).

Quickstart

Install it (Homebrew shown — see Install for go install and the container), then exercise a policy without touching any cluster:

bash
brew install kubeleash/tap/kubeleash
# Grab the commented example policy:curl -fsSL https://raw.githubusercontent.com/kubeleash/kubeleash/main/examples/policy.yaml -o policy.yaml
# See how kubeleash validates and normalizes a policy (no cluster needed):kubeleash --policy policy.yaml --print-effective-policy
# Try it without touching any cluster — every decision is logged, nothing runs:kubeleash --policy policy.yaml --dry-run

Prefer source? git clone https://github.com/kubeleash/kubeleash && cd kubeleash && go build -o kubeleash ./cmd/kubeleash (Go 1.26+).

Then point an MCP client at it (see below). kubeleash speaks MCP over stdio, so it's launched by your client, not run as a daemon.

FlagPurpose
--policy <path>Policy file. Required (or set K8S_MCP_POLICY); with neither, kubeleash refuses to start — default-deny never fails open.
--kubeconfig <path>Explicit kubeconfig. Omit to use the standard client-go rules ($KUBECONFIG, ~/.kube/config).
--dry-runEvaluate + log every decision, but never execute against a cluster.
--print-effective-policyPrint the resolved/normalized rules and exit.
--log-level <level>debug / info / warn / error (default info). The audit log is JSON on stderr (stdout is the MCP transport).
--versionPrint version, commit, and build date.

Install

All channels run kubeleash locally over stdio — your client launches the binary; nothing is hosted. kubeleash is listed in the official MCP Registry as io.github.kubeleash/kubeleash, so registry-aware clients can discover it too.

One-click

The Add to Cursor / VS Code buttons at the top are the fastest path (they need the kubeleash binary on PATH — see Manual). Other clients:

Claude Code — this repo is its own plugin marketplace:

shell
/plugin marketplace add kubeleash/kubeleash/plugin install kubeleash@kubeleash

No separate install step: on first run the plugin uses a kubeleash already on your PATH, or otherwise downloads the matching release binary (verifying its checksum) and caches it.

Safe by default — no policy authoring required first: if you have no policy at ~/.kubeleash/policy.yaml, the plugin writes a read-only starter there on first run (allow get/list/watch, deny exec/delete). Review and widen it to grant more access. (This convenience is the plugin's only; the raw binary still requires an explicit --policy and refuses to start without one.)

The plugin also ships two skills — using-kubeleash (how an agent should query and act through the gated tools) and authoring-kubeleash-policy (how to write the policy) — so the agent understands the guardrails, not just the tool list.

Claude Desktop — download kubeleash.mcpb from the releases page and double-click it; the bundle ships the binary and prompts you for the policy and kubeconfig.

Raw Cursor / VS Code deeplink URLs (if a button doesn't fire)

Cursor (can't prompt — edit the placeholder path afterward in Settings → MCP). Decodes to {"command":"kubeleash","args":["--policy","/absolute/path/to/policy.yaml"]}:

cursor://anysphere.cursor-deeplink/mcp/install?name=kubeleash&config=eyJjb21tYW5kIjoia3ViZWxlYXNoIiwiYXJncyI6WyItLXBvbGljeSIsIi9hYnNvbHV0ZS9wYXRoL3RvL3BvbGljeS55YW1sIl19

VS Code (prompts for the policy path):

vscode:mcp/install?%7B%22name%22%3A%22kubeleash%22%2C%22command%22%3A%22kubeleash%22%2C%22args%22%3A%5B%22--policy%22%2C%22%24%7Binput%3ApolicyPath%7D%22%5D%2C%22inputs%22%3A%5B%7B%22id%22%3A%22policyPath%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Path%20to%20your%20kubeleash%20policy.yaml%22%7D%5D%7D

Manual

bash
# Homebrewbrew install kubeleash/tap/kubeleash
# Gogo install github.com/kubeleash/kubeleash/cmd/kubeleash@latest
# Container (great for running the MCP server sandboxed)docker run --rm -i -v ~/.kube:/root/.kube:ro -v ./policy.yaml:/policy.yaml:ro \  ghcr.io/kubeleash/kubeleash --policy /policy.yaml

kubeleash runs locally over stdio and talks only to your clusters. There is intentionally no remote/hosted URL connector — it would mean handing your cluster credentials to a third party.

Use it as an MCP server

kubeleash exposes 8 generic, GVK-agnostic tools (k8s_list, k8s_get, k8s_apply, k8s_delete, k8s_logs, k8s_exec, k8s_scale, and k8s_capabilities) that work for any resource, including CRDs. Every call is checked against your policy and recorded to a JSON audit log on stderr (stdout is the MCP transport). It speaks MCP over stdio — point your client at the binary (or container):

jsonc
// Claude Desktop / Cursor / VS Code MCP config{  "mcpServers": {    "kubeleash": {      "command": "kubeleash",      "args": ["--policy", "/absolute/path/to/policy.yaml"],      "env": { "KUBECONFIG": "/absolute/path/to/kubeconfig" }    }  }}

Privacy

Zero telemetry. No phone-home. Local-only by design. kubeleash talks only to the Kubernetes API servers you point it at — there is intentionally no remote or hosted connector to route your cluster credentials through. That's a feature, not a gap: you run it against real clusters with privileged credentials, so nothing should sit between the agent and your API server but the leash.

Project

來源:README.md,提交 f0cdb09

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.3.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分