Give Claude, Cursor, and Copilot a safe Kubernetes MCP server.
Not a dumb pipe for kubectl. Radar ships a built-in Kubernetes MCP server whose tools hand AI agents a pre-built topology, problem-correlated timelines, deduplicated events, and error-filtered logs - already minified, with secrets redacted. 23 read tools, 7 scoped write tools. Local-only by default, RBAC-aware, enabled on first install.
--no-mcpThe right diagnosis, nearly four times sooner.
Same model, same 54 SREGym faults - once through Radar, once through raw kubectl. Radar reached a correct diagnosis in a median 41 seconds versus 154 on the 44 faults both solved. Replay every run side by side.
41s through Radar vs 154s through kubectl
Radar was faster on all but one
Radar was done; kubectl: 56% then, 87% overall
73% through kubectl
Why the gap? Radar does the investigation before the agent asks - connecting topology, problem-correlated timelines, deduplicated events, and error-filtered logs - instead of making the agent reconstruct the cluster from raw kubectl get -o yaml dumps, call after call.
Run it against your own cluster -
curl -fsSL https://get.radarhq.io | sh && kubectl radarRaw kubectl is a bad MCP tool.
Two problems kill the naive “let Claude run kubectl” setup.
Context waste. kubectl get pod -o yaml returns hundreds of lines of managedFields, status conditions, and metadata noise. The model spends its context parsing Kubernetes bookkeeping instead of diagnosing the incident.
Write-access risk. Giving an agent shell access to your cluster means a wrong inference can run any command that identity can run, including destructive operations. You need write capabilities that are explicit, scoped, annotated, and easy for the client to confirm before execution.
Radar's MCP server fixes both. Reads are minified and enriched with Radar's already-computed topology and health. Writes are confined to seven explicit tools, RBAC-enforced, and annotated as mutating or destructive where appropriate so the AI client can prompt before changing state. No delete tool, no arbitrary shell.
23 read tools. 7 write tools.
Each tool does work a raw kubectl wrapper can't - composing related calls into one, correlating timelines with problems, collapsing duplicate events, redacting secrets, and emitting minified output sized for a model's context window.
get_dashboardCluster health overview - resource counts, problems, warning events, Helm status. Auto-correlates the recent changes that touched any broken resource.
list_resourcesLists resources with minified summaries (pods, deployments, services, CRDs, etc.).
get_resourceDetailed view of a single resource, with optional events + relationships + metrics + logs in one call - one tool instead of four.
get_topologyPre-built topology graph (nodes + edges) or an LLM-friendly text summary of resource chains and problems.
get_eventsKubernetes events, deduplicated (same reason+message collapsed) and sorted by recency.
get_changesResource changes (creates, updates, deletes) from the cluster timeline, with computed diffs.
get_cluster_auditBest-practice findings with remediation - security, reliability, efficiency. Filter by namespace, category, severity.
get_cluster_upgrade_readinessEvidence-backed upgrade impact analysis for a target Kubernetes minor, including deprecated APIs, version skew, node runtime, drain feasibility, and webhook readiness.
get_pod_logsPod logs filtered to errors/warnings, with secret redaction. Falls back to the last 20 lines if nothing matches.
get_workload_logsLogs from every pod of a workload, deduplicated and error-prioritized across replicas.
list_namespacesList all namespaces with status.
list_helm_releasesList all Helm releases with status and health.
get_helm_releaseHelm release info with optional values, revision history, and manifest diff across revisions.
list_packagesWhat's installed in the cluster - one call instead of cross-referencing Helm + workload labels + CRDs + ArgoCD + Flux. Each row carries a sources array (H/L/C/A/F) so you can see WHY it was detected, plus per-source health and version. Catches operator orphans and same-cluster version disagreement.
issuesRanked stream of what's broken right now - failing workloads, pod-startup blockers, dangling references - across the whole cluster.
diagnoseRoot-cause one workload or GitOps reconciler in a single call, with the causal chain assembled for you.
get_neighborhoodBFS-expanded topology around one resource - cheaper than the full graph when you already know the root.
get_subject_permissionsEffective RBAC for a ServiceAccount, User, or Group - what they can actually do, and via which bindings.
searchFind resources by content - config keys, env refs, image names, labels - without knowing the kind up front.
top_resourcesLive CPU/memory ranked like `kubectl top | sort`, joined with workload context.
query_prometheusRun PromQL against the cluster's Prometheus, auto-discovered or configured.
discover_metricsFind exact metric names, enriched with type and help text from Prometheus metadata.
get_prometheus_rulesList Prometheus alerting and recording rules with their PromQL and current state.
apply_resourceCreate or update a Kubernetes resource from YAML.
manage_workloadRestart, scale, or rollback a Deployment, StatefulSet, DaemonSet, or Argo Rollout.
manage_rolloutAbort, retry, promote, fully promote, or advance one step of an Argo Rollout.
manage_cronjobTrigger, suspend, or resume a CronJob.
manage_gitopsManage ArgoCD and FluxCD resources - sync, reconcile, suspend, resume.
manage_nodeCordon, uncordon, or drain a Kubernetes node.
patch_resourcePatch one existing resource with a JSON Patch, merge patch, or strategic merge - precise field edits without rewriting the manifest.
cluster:// resourcesMCP resource URIscluster://healthCluster health summary (same data as get_dashboard).
cluster://topologyFull cluster topology graph.
cluster://eventsRecent warning events (up to 50).
One command or one paste.
With Radar running locally, choose your client, copy the config, and start asking about your cluster.
Run in your terminalclaude mcp add radar --transport http http://localhost:9280/mcpAlso supported: Windsurf, JetBrains, Codex, Gemini CLI. See the full MCP docs for all 9 clients.
Real questions, the tools they'll resolve to.
get_dashboardget_pod_logs + get_events + get_resourceget_changesget_helm_release (with include=diff)get_topologyThe guardrails aren't optional.
Local-only
The MCP server runs on localhost alongside Radar - bound to 127.0.0.1, not your public interface. AI clients connect to your machine, not the cluster's control plane.
RBAC-aware
Respects your kubeconfig's RBAC permissions. If your ServiceAccount can't list secrets in the payments namespace, neither can the MCP-backed agent. Returns 403 for unauthorized resources.
Three layers of redaction
Secret data never exposed - only key names. Env var values scrubbed for API keys, tokens, and base64 blobs. Pod log output scrubbed for secret patterns before returning.
Read-first tool surface
Diagnosis is read-only by default. Optional in-cluster route probing uses short-lived, self-deleting probe pods. Write operations are RBAC-enforced and flagged for client confirmation.
Explicit, annotated write tools
Write tools can restart, scale, patch/apply, sync, cordon, or drain. They are RBAC-enforced and marked mutating or destructive where appropriate so the client can prompt before execution. No delete tool, no arbitrary shell.
Disable with one flag
Pass `--no-mcp` when starting Radar to turn the server off entirely. On by default, off when you need it off - no stale config surface area.
One MCP endpoint for the whole org.
Local MCP is per-laptop and great for one engineer. When agents need to reach shared and production clusters across a team, Radar Cloud turns the same tools into a governed, audited endpoint. AI access to your clusters becomes something you can actually sign off on.
Set up once, for everyone
Install the Radar agent in each cluster one time. Your whole team's agents - Claude, Cursor, Copilot - reach every cluster through a single endpoint. No kubeconfigs to copy around, no per-cluster local Radar process to keep in sync.
RBAC you can trust
Agents act with the signed-in operator's identity through your SSO, enforced by Kubernetes RBAC. A viewer's agent can read but never mutate. The cluster itself governs access, so the same rules apply whether a human or an agent makes the call.
Audited tool activity
Tool-call activity is audited - who ran which tool, which cluster it targeted, and whether it succeeded, was blocked, or failed. High-volume successful loops are coalesced with counts; blocked and failed calls are preserved.
Read-only that keeps diagnosis
Set the org to read-only and mutating tools disappear, but diagnose stays with an allowlisted, non-mutating schema. Live in-cluster probes and unclassified arguments are also refused at call time.
Apache 2.0. Yours to inspect, fork, or run in your own cluster.
Radar's source is on GitHub. Every feature on this page is in the binary you install with brew install. No telemetry, no mandatory login, no cluster data out. Outbound traffic is limited to anonymous version checks when the UI opens. If we ever change that, you'll see it in a diff first.
Questions we get about MCP.
Is Radar's MCP server safe to point at a production cluster?
Which AI clients does it support?
Is it actually better than letting an agent run kubectl directly?
Can I turn it off?
How does this work for a whole team instead of one laptop?
More of what Radar does in the same binary.
Point an agent at a real cluster. Safely.
Install Radar, paste a config block, and Claude can reason about your cluster in under a minute.
Apache 2.0 OSS · Unlimited clusters with Radar OSS · Hosted free tier for up to 3 clusters