list_podsLABSCO SUMMARY
Cluster inspection in a conversation, with a very short list of writes.
Nearly everything here reads: what is running, what its logs say, what the events recorded, how the config maps out. The only things it changes are namespaces and a deployment's replica count, which makes it a debugging companion rather than a deployment tool.
What it is
A FastMCP server built on the official Kubernetes Python client, exposing cluster management and inspection as MCP tools. Most of it reads: listing and describing pods, deployments, services, nodes, jobs, ingresses, volumes and events, and pulling pod logs. The writes are narrow — create and delete a namespace, and scale a deployment. Namespace is optional throughout, so calls work with or without one.
What you get
- Pods listed and described, and pod logs read
- Deployments listed and scaled
- Services, ingresses, DaemonSets, StatefulSets and ReplicaSets listed and read
- Namespaces listed, created and deleted
- Nodes listed and described
- ConfigMaps and Secrets listed and read
- Persistent volumes and claims listed, with detail on a claim
- Jobs and CronJobs listed and read
- Cluster events listed and read
Requirements
Python with the fastmcp and kubernetes packages, kubectl configured, and access to a Kubernetes or OpenShift cluster through kubeconfig or in-cluster config. Started with python kube_mcp_server.py, it serves MCP over HTTP on every interface by default. It can read Secrets, so bind it to a service account scoped to what you want it to see.
Setup effort
Build from source — git clone https://github.com/vp1099/vp1099-kubernetes-mcp-server.git
USE CASES
Finding out why a pod isn't healthy
List what is running in the namespace, describe the unhappy one, and read its logs without switching to kubectl.
Reading the cluster's own account of an incident
Pull the events around the time it broke, so scheduling and eviction decisions become visible.
Following a request through to the workload
Trace ingress to service to deployment, to see where a route actually ends up.
Checking configuration without opening a shell
Read the ConfigMap the app is running against — and be deliberate about Secrets, which the same connection can also read.
Handling load
Change the replica count and confirm the ReplicaSet followed.
Setting up and tearing down a test namespace
Create the namespace for an experiment and delete it afterwards, so the cluster stays tidy.
33 tools
Listed in project docs. Your client may show a different list.
get_pod_logsdescribe_podlist_deploymentsscale_deploymentlist_servicesget_servicelist_namespacescreate_namespacedelete_namespacelist_nodesdescribe_nodelist_configmapsget_configmaplist_secretsget_secretlist_persistent_volumeslist_persistent_volume_claimsget_pvclist_jobsget_joblist_cronjobsget_cronjoblist_ingressesget_ingresslist_daemonsetsget_daemonsetlist_statefulsetsget_statefulsetlist_eventsget_eventlist_replicasetsget_replicasetBEFORE YOU INSTALL
What to know first
Tools you get
33 tools named in the project's documentation.
Requires
Python 3.x
INSTALLATION
Connect your client
This one is built from source rather than installed with a single command.
Server setup
git clone https://github.com/vp1099/vp1099-kubernetes-mcp-server.git
cd vp1099-kubernetes-mcp-server
pip install fastmcp kubernetesEnsure python and fastmcp are in your system PATH.
Install and configure kubectl and connect to your cluster.
python kube_mcp_server.pyAdd it to your MCP client as a remote HTTP server at http://localhost:8000/mcp/ — the README's mcp.json entry for it is named kubernetes-local. By default the server listens on every interface (0.0.0.0:8000).