get_podsLABSCO SUMMARY
Built to be deployed into the cluster it inspects.
The shape of this one is a Deployment with its own ServiceAccount rather than a laptop process reading your kubeconfig, which is why the streaming endpoint matters — long-running cluster queries report as they go instead of timing out silently. The trade is that the endpoint ships with no auth of its own, so what stops arbitrary callers from listing your pods is the network policy and the RBAC you write around it.
What it is
A Kubernetes server built around streaming: instead of one blocking response it exposes /call-tool-chunked, which streams progress and results as JSON lines while a query runs. It ships with troubleshooting prompts as well as resource tools — k8s-pod-crashloop-diagnose takes a pod name and namespace and walks the diagnosis. It reads the cluster through whatever kubeconfig it is given.
What you get
get_podslists pods in a namespace, called by POST to/call-tool-chunkedon port 3000- A
k8s-pod-crashloop-diagnoseprompt that takes a pod name and namespace and works through the failure - Streaming responses — progress and results arrive as JSON lines rather than one payload at the end
- A ready-made manifest that creates the namespace, ServiceAccount, RBAC, Deployment and Service for in-cluster use
Requirements
Node.js v18+ to build, Docker to containerise, and access to a cluster with kubectl configured. Run it locally with npm install, npm run build and MCP_TRANSPORT=http-chunked npm start; it picks up ~/.kube/config unless KUBECONFIG points elsewhere. Deployed in-cluster it authenticates through the ServiceAccount and RBAC in the supplied manifest, so scope those to least privilege. There is no authentication on the endpoint itself — keep it off the public internet and put TLS and a network policy in front of it.
Setup effort
Build from source — git clone https://github.com/siddjoshi/kube-MCP.git
USE CASES
Seeing what is running in a namespace
List pods and read the results as they stream back.
Working out why a pod keeps restarting
Run the crashloop diagnosis prompt against the pod name and namespace.
Giving an in-cluster agent scoped read access
Deploy with the supplied ServiceAccount and RBAC and let the agent query through the Service.
1 tool
Listed in project docs. Your client may show a different list.
BEFORE YOU INSTALL
What to know first
Tools you get
1 tool named in the project's documentation.
Requires
- Node.js v18 or later
- Access to a Kubernetes cluster (AKS, EKS, GKE, or local)
- kubectl configured
INSTALLATION
Connect your client
This one is built from source rather than installed with a single command.
Server setup
git clone https://github.com/siddjoshi/kube-MCP.git
cd kube-MCP
npm install
npm run build
MCP_TRANSPORT=http-chunked npm startThe README documents no MCP client configuration: the running server listens on port 3000 and takes tool and prompt calls as POST requests to /call-tool-chunked, streaming progress and results back as JSON lines. It reads ~/.kube/config unless KUBECONFIG points elsewhere and has no authentication of its own, so keep it off the public internet.