list_resourcesLABSCO SUMMARY
Cluster debugging with the write path removed.
It answers the questions a triage session asks — what is running, what does this object look like, what do the logs and events say — over a connection that cannot change the cluster.
What it is
A Go server that talks to your cluster through your kubeconfig and deliberately publishes no write path. It lists and filters any resource type including custom resources, describes one in detail, pulls pod logs, reads events, and moves between contexts.
What you get
- list_resources lists and filters resources, with label and field selectors, API group filtering and paging
- describe_resource returns the full detail of one resource
- get_pod_logs retrieves pod logs with filtering, for when the description is not enough
- list_events returns cluster events, filtered — usually where a failing rollout explains itself
- list_contexts returns every context in your kubeconfig, so a multi-cluster setup stays one connection
- Custom resources behave like built-ins, and resources can be found by an API group substring — "flux" for FluxCD, "argo" for ArgoCD
- There are no write tools, so the most an assistant can do here is read
Requirements
Cluster access through a valid kubeconfig; the server uses ~/.kube/config by default and takes a custom path in the client config. Install with go install github.com/kkb0318/kubernetes-mcp@latest (Go 1.24 or newer) or build from source.
Setup effort
One command — go install github.com/kkb0318/kubernetes-mcp@latest
USE CASES
Working out why a pod is unhealthy
Find it, describe it, then read its logs with get_pod_logs — the three steps of triage without a terminal.
Reading the events behind a failed rollout
list_events filters cluster events down to the object you care about, which is usually where the real reason is written.
Inspecting custom resources
Find them by API group substring — "flux" for FluxCD, "argo" for ArgoCD — and list them like any built-in type.
Moving between clusters
list_contexts reads every context out of your kubeconfig, so switching cluster is a parameter rather than a reconnection.
Letting an assistant look without letting it touch
Read-only is a property of the tool set here, not a policy you have to enforce around it.
5 tools
Listed in project docs. Your client may show a different list.
describe_resourceget_pod_logslist_eventslist_contextsBEFORE YOU INSTALL
What to know first
Tools you get
5 tools named in the project's documentation.
Requires
- go on PATH
- Go 1.24+
INSTALLATION
Connect your client
The block needs a path only you can supply — the full path to the binary the install command creates. Everything else in it is the project's own.
Server setup
Configuration file
{
"mcpServers": {
"kubernetes": {
"command": "<YOUR_PATH_TO_KUBERNETES_MCP>"
}
}
}<YOUR_PATH_TO_KUBERNETES_MCP> is the full path of the binary go install creates: $GOPATH/bin/kubernetes-mcp, or $HOME/go/bin/kubernetes-mcp when GOPATH is not set. Write it out in full; clients do not expand $GOPATH or $HOME.
go install
go install github.com/kkb0318/kubernetes-mcp@latest