The Central Pilot for Your Kubernetes Fleets
k8s_pilot is a lightweight, centralized control plane server for managing multiple Kubernetes clusters at once.
With powerful tools and intuitive APIs, you can observe and control all your clusters from one cockpit.
- 🔄 Supports multi-cluster context switching
- 🔧 Enables CRUD operations on most common Kubernetes resources
- 🔒 Readonly mode for safe cluster inspection
- ⚙️ Powered by MCP for Claude AI and beyond
- Python 3.13 or higher
uvpackage manager- Access to Kubernetes clusters (
~/.kube/configor in-cluster config)
# Install uv (if not installed)
# For MacOS
brew install uv
# For Linux
curl -LsSf https://astral.sh/uv/install.sh | sh# Clone the repository
git clone https://github.com/bourbonkk/k8s-pilot.git
cd k8s-pilot
# Launch with uv + MCP
uv run --with mcp[cli] mcp run k8s_pilot.py# Start with full read/write access
uv run --with mcp[cli] mcp run k8s_pilot.py# Start in readonly mode - only read operations allowed
uv run --with mcp[cli] python k8s_pilot.py --readonly# Show help
uv run --with mcp[cli] python k8s_pilot.py --helpThe --readonly flag enables a safety mode that prevents any write operations to your Kubernetes clusters. This is perfect for:
- Cluster inspection without risk of accidental changes
- Audit scenarios where you need to view but not modify
- Learning environments where you want to explore safely
- Production monitoring with zero risk of modifications
pod_create,pod_update,pod_deletedeployment_create,deployment_update,deployment_deleteservice_create,service_update,service_deleteconfigmap_create,configmap_update,configmap_deletesecret_create,secret_update,secret_deletenamespace_create,namespace_delete- All other create/update/delete operations
pod_list,pod_detail,pod_logsdeployment_list,deployment_getservice_list,service_getconfigmap_list,configmap_getsecret_list,secret_getnamespace_list,namespace_get- All other list/get operations
Use this config to run k8s_pilot MCP server from within Claude:
{
"mcpServers": {
"k8s_pilot": {
"command": "uv",
"args": [
"--directory",
"<path-to-cloned-repo>/k8s-pilot",
"run",
"--with",
"mcp[cli]",
"mcp",
"run",
"k8s_pilot.py"
]
}
}
}For readonly mode, use this configuration:
{
"mcpServers": {
"k8s_pilot_readonly": {
"command": "uv",
"args": [
"--directory",
"<path-to-cloned-repo>/k8s-pilot",
"run",
"--with",
"mcp[cli]",
"python",
"k8s_pilot.py",
"--readonly"
]
}
}
}Replace with the actual directory where you cloned the repo.
Create a Deployment using the nginx:latest image in the pypy namespace, and also create a Service that connects to it.
- Seamlessly interact with multiple Kubernetes clusters
- Perform context-aware operations
- Easily switch between clusters via MCP prompts
- View, create, update, delete:
- Deployments, Services, Pods
- ConfigMaps, Secrets, Ingresses
- StatefulSets, DaemonSets
- Roles, ClusterRoles
- PersistentVolumes & Claims
- Create/delete namespaces
- List all resources in a namespace
- Manage labels and resource quotas
- View node details and conditions
- Cordon/uncordon, label/taint nodes
- List pods per node
This project is licensed under the MIT License. See the LICENSE file for details.