io.github.Michael-WhiteCapData/WhiteCapData-Dev
This server lets an AI agent inspect and operate a Kubernetes/k3s cluster, with safety guardrails built in.
Read (Inspection) Tools — always available:
cluster_summary: High-level node and pod health totals, plus a list of unhealthy pods — ideal starting point for triage.list_pods: List pods across the cluster or by namespace, with unhealthy pods sorted to the top.list_deployments: List deployments with ready vs. desired replica counts, optionally filtered by namespace.list_events: Recent cluster events, with warnings prioritized (default limit: 30).pod_logs: Tail logs for a specific pod in a given namespace (default: last 200 lines).node_health: Per-node readiness, kubelet version, resource capacity, and pressure conditions.server_info: Effective server configuration — kubeconfig context, read-only status, and mutable namespace allowlist.
Write (Mutating) Tools — gated by HOMELAB_MCP_READONLY and HOMELAB_MCP_MUTABLE_NAMESPACES:
restart_deployment: Trigger a rollout-restart for a deployment in an allowlisted namespace.scale_deployment: Scale a deployment to N replicas (bounded 0–HOMELAB_MCP_MAX_REPLICAS, default 10) in an allowlisted namespace.delete_pod: Delete a pod so its controller automatically recreates it, restricted to allowlisted namespaces.
Allows an AI agent to inspect and operate a k3s cluster safely, with read-only and namespace allowlist controls.
Allows an AI agent to inspect and operate a Kubernetes cluster safely, with read-only and namespace allowlist controls.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@io.github.Michael-WhiteCapData/WhiteCapData-Devcheck cluster health and list unhealthy pods"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
WhiteCapData-Dev
Operate a k3s / Kubernetes cluster straight from your AI agent — safe by default.
An MCP server that lets an agent (Claude Code, Claude Desktop, Cursor, …) inspect and operate a Kubernetes / k3s cluster — your homelab box, a dev cluster, whatever your kubeconfig points at — without shelling out to kubectl. It talks to the Kubernetes API directly using your existing kubeconfig (or an in-cluster service account).
The design goal is safe by default: reads are always on; every mutating action (restart / scale / delete) is gated before the API call by a read-only switch and a namespace allowlist, so an over-eager agent can't touch kube-system or nuke a deployment you didn't sandbox.
Name note: the PyPI package is
whitecapdata-dev(thehomelab-k8s-style name was taken); the import package and tools are k8s/homelab-focused as described here.
Why you'd want this
🩺 One-call health.
cluster_summarygives node + pod totals and the unhealthy pods, so the agent starts triage with real data.🔒 Safe by default. Mutations are blocked unless the namespace is on your allowlist; flip
HOMELAB_MCP_READONLY=1to make the whole server read-only.🧰 The operations you actually do. Pods, deployments, events, logs, node health, rollout-restart, scale, delete-pod.
🪶 No bespoke backend. Uses the standard Kubernetes API + your kubeconfig — nothing to deploy server-side.
✅ Tested. Pure logic is unit-tested with fakes; guard logic is tested against a mocked API. No cluster needed to run the suite.
Related MCP server: k8s-mcp-server
Requirements
A reachable cluster and a working kubeconfig (the same one
kubectluses), or run it in-cluster with a service account.Python 3.11+ (or just
uvx).
Install
uvx whitecapdata-dev # run directly
# or
pip install whitecapdata-dev # then run: whitecapdata-devClaude Code
claude mcp add homelab -- uvx whitecapdata-devClaude Desktop / Cursor
{
"mcpServers": {
"homelab": {
"command": "uvx",
"args": ["whitecapdata-dev"],
"env": {
"HOMELAB_MCP_MUTABLE_NAMESPACES": "default,apps,monitoring",
"HOMELAB_MCP_READONLY": "0"
}
}
}
}Run with Docker
A Dockerfile is included. The server speaks MCP over stdio and reaches
your cluster through a mounted kubeconfig. Run interactively (-i), starting read-only:
docker build -t whitecapdata-dev .
docker run --rm -i \
-v "$HOME/.kube/config:/home/app/.kube/config:ro" \
-e HOMELAB_MCP_READONLY=1 \
whitecapdata-devTools
Tool | Kind | Description |
| read | Node/pod health totals + unhealthy pods |
| read | Pods (optionally one namespace), unhealthy first |
| read | Deployments with ready/desired replicas |
| read | Recent events, Warnings first |
| read | Tail a pod's logs |
| read | Per-node readiness, kubelet, capacity, pressure |
| write | Rollout-restart (allowlisted namespaces) |
| write | Scale to N replicas (0..max, allowlisted) |
| write | Delete a pod; its controller recreates it (allowlisted) |
| read | Effective config (context, read-only, allowlist) |
Configuration
Variable | Default | Description |
| current-context | kubeconfig context to use |
|
|
|
|
| Namespaces mutations may touch; |
|
| Upper bound for |
Safety model
Read-only switch —
HOMELAB_MCP_READONLY=1rejects every mutating tool up front.Namespace allowlist — mutating tools refuse any namespace not in
HOMELAB_MCP_MUTABLE_NAMESPACES(default a homelab-friendly set;*opts into all).Bounded scale —
scale_deploymentclamps to0..HOMELAB_MCP_MAX_REPLICAS.
The cluster's own RBAC still applies on top — this server can only do what the kubeconfig identity is permitted to do.
Development
git clone https://github.com/Michael-WhiteCapData/WhiteCapData-Dev
cd WhiteCapData-Dev
uv pip install -e ".[dev]"
ruff check .
pytest # no cluster required — APIs are faked/mockedSee CONTRIBUTING.md.
License
MIT © Michael Tierney
Maintenance
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Michael-WhiteCapData/WhiteCapData-Dev'
If you have feedback or need assistance with the MCP directory API, please join our Discord server