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 分