- Name: kubectl-mcp-server
- Version: 1.22.0
- Description: A Model Context Protocol (MCP) server for Kubernetes with 270+ tools, 8 resources, and 8 prompts
- Framework: FastMCP 3.0.0b1 (Python)
- Repository: https://github.com/rohitg00/kubectl-mcp-server
- Changes: Added kubectl-mcp-app - 8 interactive UI dashboards for Kubernetes management
- Tool Count: 270 core tools
- Skills: 26 Agent Skills covering all tools
- Optional: 26 browser tools (with MCP_BROWSER_ENABLED=true)
- NEW: kubectl-mcp-app npm package with 8 interactive UIs
Added standalone npm package for interactive Kubernetes UI dashboards using MCP ext-apps SDK.
Installation:
npm install -g kubectl-mcp-app
# or
npx kubectl-mcp-app8 Interactive UI Tools:
| Tool | Description |
|---|---|
k8s-pods |
Interactive pod viewer with filtering, sorting, status indicators |
k8s-logs |
Real-time log viewer with syntax highlighting and search |
k8s-deploy |
Deployment dashboard with rollout status, scaling, rollback |
k8s-helm |
Helm release manager with upgrade/rollback actions |
k8s-cluster |
Cluster overview with node health and resource metrics |
k8s-cost |
Cost analyzer with waste detection and recommendations |
k8s-events |
Events timeline with type filtering and grouping |
k8s-network |
Network topology graph showing Services/Pods/Ingress |
Features:
- TypeScript + React 19 + Vite
- Single-file HTML bundles (~220KB each)
- Dark/light theme support
- 27 tests with full coverage
Claude Desktop Configuration:
{
"mcpServers": {
"kubectl-app": {
"command": "npx",
"args": ["kubectl-mcp-app"]
}
}
}Expanded kind toolset from 15 to 32 tools covering all kind CLI capabilities:
New kind Tools (17 additional tools):
Configuration Management:
| Tool | Description |
|---|---|
kind_config_validate_tool |
Validate kind config YAML before cluster creation |
kind_config_generate_tool |
Generate sample config for multi-node/HA clusters |
kind_config_show_tool |
Show effective config for a running cluster |
kind_available_images_tool |
List available kindest/node images (K8s versions) |
Registry Integration:
| Tool | Description |
|---|---|
kind_registry_create_tool |
Create local Docker registry for kind |
kind_registry_connect_tool |
Connect cluster to local registry |
kind_registry_status_tool |
Check local registry status and config |
Node Management:
| Tool | Description |
|---|---|
kind_node_exec_tool |
Execute command on kind node (docker exec) |
kind_node_logs_tool |
Get logs from specific node |
kind_node_inspect_tool |
Inspect node container details |
kind_node_restart_tool |
Restart a kind node container |
Networking & Ports:
| Tool | Description |
|---|---|
kind_network_inspect_tool |
Inspect kind Docker network |
kind_port_mappings_tool |
List all port mappings for cluster |
kind_ingress_setup_tool |
Setup NGINX/Contour ingress controller |
Advanced Diagnostics:
| Tool | Description |
|---|---|
kind_cluster_status_tool |
Detailed cluster health/status |
kind_images_list_tool |
List images loaded on cluster nodes |
kind_provider_info_tool |
Get container runtime provider info |
Usage Examples:
# Config generation & validation
kind_config_generate_tool(workers=2, ingress=True, registry=True)
kind_config_validate_tool(config_path="/tmp/kind.yaml")
# Registry setup
kind_registry_create_tool()
kind_create_cluster_tool(name="dev", config="/tmp/kind-with-registry.yaml")
kind_registry_connect_tool(cluster_name="dev")
kind_registry_status_tool()
# Node operations
kind_node_exec_tool(node="dev-control-plane", command="crictl images")
kind_node_inspect_tool(node="dev-control-plane")
kind_cluster_status_tool(name="dev")
# Networking
kind_network_inspect_tool()
kind_port_mappings_tool(cluster="dev")
kind_ingress_setup_tool(cluster="dev")Added initial 15 tools for managing local Kubernetes clusters using kind CLI:
kind Tools (15 tools):
| Tool | Description |
|---|---|
kind_detect_tool |
Detect if kind CLI is installed |
kind_version_tool |
Get kind CLI version |
kind_list_clusters_tool |
List all kind clusters |
kind_get_nodes_tool |
List nodes in a cluster |
kind_get_kubeconfig_tool |
Get kubeconfig for a cluster |
kind_export_logs_tool |
Export cluster logs for debugging |
kind_cluster_info_tool |
Get cluster information |
kind_node_labels_tool |
Get node labels |
kind_create_cluster_tool |
Create a new kind cluster |
kind_delete_cluster_tool |
Delete a cluster |
kind_delete_all_clusters_tool |
Delete all kind clusters |
kind_load_image_tool |
Load Docker images into cluster |
kind_load_image_archive_tool |
Load images from tar archive |
kind_build_node_image_tool |
Build custom node image |
kind_set_kubeconfig_tool |
Export and set kubeconfig context |
kind vs vind (vCluster):
- kind = Full local K8s clusters using Docker containers as nodes (for local dev/testing)
- vind = Virtual clusters inside existing K8s clusters (for multi-tenancy)
Added 14 tools for managing virtual Kubernetes clusters using vCluster CLI:
vind Tools (14 tools):
| Tool | Description |
|---|---|
vind_detect_tool |
Detect if vCluster CLI is installed |
vind_list_clusters_tool |
List all vCluster instances |
vind_status_tool |
Get detailed status of a cluster |
vind_get_kubeconfig_tool |
Get kubeconfig for a cluster |
vind_logs_tool |
Get cluster logs |
vind_create_cluster_tool |
Create a new vCluster instance |
vind_delete_cluster_tool |
Delete a cluster |
vind_pause_tool |
Pause/sleep a cluster (resource saving) |
vind_resume_tool |
Resume a sleeping cluster |
vind_connect_tool |
Connect kubectl to cluster |
vind_disconnect_tool |
Disconnect from cluster |
vind_upgrade_tool |
Upgrade cluster k8s version |
vind_describe_tool |
Describe cluster details |
vind_platform_start_tool |
Start vCluster Platform UI |
New Files:
kubectl_mcp_tool/tools/vind.py- vind (vCluster) toolskubernetes-skills/claude/k8s-vind/SKILL.md- Agent skill for vCluster
Usage Examples:
vind_detect_tool()
vind_create_cluster_tool(name="dev-cluster", kubernetes_version="v1.29.0")
vind_connect_tool(name="dev-cluster")
vind_pause_tool(name="dev-cluster")
vind_resume_tool(name="dev-cluster")
vind_delete_cluster_tool(name="dev-cluster")Added comprehensive Kubernetes skills following agenstskills.com specification:
| Category | Skills |
|---|---|
| Core Resources | k8s-core, k8s-networking, k8s-storage |
| Workloads | k8s-deploy, k8s-operations, k8s-helm |
| Observability | k8s-diagnostics, k8s-troubleshoot, k8s-incident |
| Security | k8s-security, k8s-policy, k8s-certs |
| GitOps | k8s-gitops, k8s-rollouts |
| Scaling | k8s-autoscaling, k8s-cost, k8s-backup |
| Multi-Cluster | k8s-multicluster, k8s-capi, k8s-kubevirt, k8s-vind, k8s-kind |
| Networking | k8s-service-mesh, k8s-cilium |
| Tools | k8s-browser, k8s-cli |
Installation:
# Copy all skills to Claude
cp -r kubernetes-skills/claude/* ~/.claude/skills/
# Convert to other agents with SkillKit
npm install -g skillkit
skillkit translate kubernetes-skills/claude --to cursor --output .cursor/rules/New providers.py with better multi-cluster management:
- Singleton Pattern:
KubernetesProvider.get_instance() - API Client Caching: Cached clients per context
- Context Validation:
UnknownContextErrorwith available contexts - Environment Variables:
MCP_K8S_PROVIDER: kubeconfig, in-cluster, or singleMCP_K8S_CONTEXT: Default context for single providerMCP_K8S_QPS: API rate limit (default: 100)MCP_K8S_BURST: API burst limit (default: 200)MCP_K8S_TIMEOUT: Request timeout (default: 30)
New Files:
kubectl_mcp_tool/providers.py- Enhanced provider modulekubernetes-skills/- 24 Agent Skills directory
Added 60 new tools across 6 ecosystem toolsets for comprehensive Kubernetes platform management:
KEDA Autoscaling (7 tools):
| Tool | Description |
|---|---|
keda_scaledobjects_list_tool |
List ScaledObjects |
keda_scaledobject_get_tool |
Get ScaledObject details |
keda_scaledjobs_list_tool |
List ScaledJobs |
keda_triggerauths_list_tool |
List TriggerAuthentications |
keda_triggerauth_get_tool |
Get TriggerAuthentication details |
keda_hpa_list_tool |
List KEDA-managed HPAs |
keda_detect_tool |
Detect KEDA installation |
Cilium/Hubble Network Observability (8 tools):
| Tool | Description |
|---|---|
cilium_policies_list_tool |
List CiliumNetworkPolicies |
cilium_policy_get_tool |
Get policy details |
cilium_endpoints_list_tool |
List Cilium endpoints |
cilium_identities_list_tool |
List Cilium identities |
cilium_nodes_list_tool |
List Cilium nodes |
cilium_status_tool |
Get Cilium agent status |
hubble_flows_query_tool |
Query Hubble network flows |
cilium_detect_tool |
Detect Cilium installation |
Argo Rollouts/Flagger Progressive Delivery (11 tools):
| Tool | Description |
|---|---|
rollouts_list_tool |
List Argo Rollouts |
rollout_get_tool |
Get rollout details |
rollout_status_tool |
Get rollout status |
rollout_promote_tool |
Promote rollout |
rollout_abort_tool |
Abort rollout |
rollout_retry_tool |
Retry rollout |
rollout_restart_tool |
Restart rollout |
analysis_runs_list_tool |
List AnalysisRuns |
flagger_canaries_list_tool |
List Flagger Canaries |
flagger_canary_get_tool |
Get Canary details |
rollouts_detect_tool |
Detect Rollouts installation |
Cluster API Lifecycle Management (11 tools):
| Tool | Description |
|---|---|
capi_clusters_list_tool |
List CAPI clusters |
capi_cluster_get_tool |
Get cluster details |
capi_machines_list_tool |
List machines |
capi_machine_get_tool |
Get machine details |
capi_machinedeployments_list_tool |
List MachineDeployments |
capi_machinedeployment_scale_tool |
Scale MachineDeployment |
capi_machinesets_list_tool |
List MachineSets |
capi_machinehealthchecks_list_tool |
List MachineHealthChecks |
capi_clusterclasses_list_tool |
List ClusterClasses |
capi_cluster_kubeconfig_tool |
Get cluster kubeconfig |
capi_detect_tool |
Detect CAPI installation |
KubeVirt VM Management (13 tools):
| Tool | Description |
|---|---|
kubevirt_vms_list_tool |
List VirtualMachines |
kubevirt_vm_get_tool |
Get VM details |
kubevirt_vmis_list_tool |
List VirtualMachineInstances |
kubevirt_vm_start_tool |
Start VM |
kubevirt_vm_stop_tool |
Stop VM |
kubevirt_vm_restart_tool |
Restart VM |
kubevirt_vm_pause_tool |
Pause VM |
kubevirt_vm_unpause_tool |
Unpause VM |
kubevirt_vm_migrate_tool |
Live migrate VM |
kubevirt_datasources_list_tool |
List DataSources |
kubevirt_instancetypes_list_tool |
List VirtualMachineInstancetypes |
kubevirt_datavolumes_list_tool |
List DataVolumes |
kubevirt_detect_tool |
Detect KubeVirt installation |
Istio/Kiali Service Mesh (10 tools):
| Tool | Description |
|---|---|
istio_virtualservices_list_tool |
List VirtualServices |
istio_virtualservice_get_tool |
Get VirtualService details |
istio_destinationrules_list_tool |
List DestinationRules |
istio_gateways_list_tool |
List Gateways |
istio_peerauthentications_list_tool |
List PeerAuthentications |
istio_authorizationpolicies_list_tool |
List AuthorizationPolicies |
istio_proxy_status_tool |
Get proxy sync status |
istio_analyze_tool |
Analyze Istio configuration |
istio_sidecar_status_tool |
Check sidecar injection status |
istio_detect_tool |
Detect Istio installation |
New Files:
kubectl_mcp_tool/tools/keda.py- KEDA autoscaling toolskubectl_mcp_tool/tools/cilium.py- Cilium/Hubble network toolskubectl_mcp_tool/tools/rollouts.py- Argo Rollouts/Flagger toolskubectl_mcp_tool/tools/capi.py- Cluster API toolskubectl_mcp_tool/tools/kubevirt.py- KubeVirt VM toolskubectl_mcp_tool/tools/kiali.py- Istio/Kiali tools
- GitOps tools (Flux/ArgoCD) - 7 tools
- Cert-Manager tools - 9 tools
- Policy tools (Kyverno/Gatekeeper) - 6 tools
- Backup tools (Velero) - 11 tools
- Multi-cluster support with context targeting
- Tool Count: 131 core tools + 6 UI tools (was 127)
- Optional: 26 browser tools (with MCP_BROWSER_ENABLED=true)
All Kubernetes tools now support targeting different clusters via the context parameter:
- Added
context: str = ""parameter to all cluster-interacting tools - Default behavior unchanged (uses current kubeconfig context)
- Specify any valid kubeconfig context name to target different clusters
New Tools:
| Tool | Description |
|---|---|
kubeconfig_view |
View kubeconfig (sanitized) |
list_contexts_tool |
List all available kubeconfig contexts |
get_api_versions |
Get available API versions |
check_crd_exists |
Check if a CRD exists |
list_crds |
List all CRDs in cluster |
get_nodes_summary |
Get summarized node information |
Files Updated:
k8s_config.py- Context-aware client factory functionspods.py- All 11 pod tools support contextcore.py- All 6 core tools support contextdeployments.py- All 10 deployment tools support contextcluster.py- All cluster tools support context + new toolsnetworking.py- All 8 networking tools support contextstorage.py- All 3 storage tools support contextsecurity.py- All 10 security tools support contexthelm.py- All 16 cluster-interacting Helm tools support contextoperations.py- All 14 kubectl operation tools support contextdiagnostics.py- All 3 diagnostic tools support contextcost.py- All 8 cost tools support context
Usage Examples:
# Get pods from a specific cluster context
get_pods(namespace="default", context="production-cluster")
# Install helm chart on staging cluster
install_helm_chart(name="nginx", chart="bitnami/nginx",
namespace="web", context="staging-cluster")
# Compare namespaces across clusters
compare_namespaces(namespace1="prod", namespace2="staging",
resource_type="deployment", context="prod-cluster")New subcommands for shell-friendly operation:
| Command | Description |
|---|---|
tools [-d] [--json] |
List all tools with optional descriptions |
tools <name> |
Show tool schema and parameters |
resources |
List all 8 MCP resources |
prompts |
List all 8 MCP prompts |
call <tool> [json] |
Call a tool directly (stdin supported) |
grep <pattern> |
Search tools by glob pattern |
info |
Show server info (version, counts) |
context [name] |
Show/switch Kubernetes context |
doctor |
Check dependencies and configuration |
- Cloud providers (Browserbase, Browser Use)
- Persistent profiles (
--profile) - Remote CDP connections (
wss://...) - Retry with exponential backoff for transient errors
- 7 new browser tools
- Actionable error messages with suggestions
- Colorized output (respects NO_COLOR)
- JSON output mode for scripting
| Tool | Description |
|---|---|
browser_connect_cdp |
Connect via CDP port or WebSocket URL |
browser_install |
Install Chromium browser |
browser_set_provider |
Configure cloud provider |
browser_session_list |
List active sessions |
browser_session_switch |
Switch session |
browser_open_with_headers |
Open URL with auth headers |
browser_set_viewport |
Set viewport or emulate device |
# List all tools with descriptions
kubectl-mcp-server tools -d
# Show specific tool schema
kubectl-mcp-server tools get_pods
# Search for pod-related tools
kubectl-mcp-server grep "*pod*"
# Call a tool directly
kubectl-mcp-server call get_pods '{"namespace": "kube-system"}'
# Pipe JSON from stdin
echo '{"namespace": "default"}' | kubectl-mcp-server call get_pods
# Check dependencies
kubectl-mcp-server doctor
# Show current k8s context
kubectl-mcp-server context| Variable | Description | Default |
|---|---|---|
MCP_DEBUG |
Enable debug logging | false |
MCP_LOG_FILE |
Log to file | (none) |
NO_COLOR |
Disable colored output | (unset) |
| Variable | Description | Example |
|---|---|---|
MCP_BROWSER_ENABLED |
Enable browser tools | true |
MCP_BROWSER_PROVIDER |
Cloud provider | browserbase / browseruse |
BROWSERBASE_API_KEY |
Browserbase API key | bb_... |
BROWSERBASE_PROJECT_ID |
Browserbase project ID | proj_... |
BROWSER_USE_API_KEY |
Browser Use API key | bu_... |
MCP_BROWSER_PROFILE |
Persistent profile path | ~/.k8s-browser |
MCP_BROWSER_CDP_URL |
Remote CDP WebSocket | wss://... |
MCP_BROWSER_PROXY |
Proxy server URL | http://proxy:8080 |
MCP_BROWSER_PROXY_BYPASS |
Bypass proxy hosts | localhost,*.internal |
MCP_BROWSER_USER_AGENT |
Custom user agent | Mozilla/5.0... |
MCP_BROWSER_ARGS |
Extra browser args | --disable-gpu |
MCP_BROWSER_SESSION |
Session name | k8s-session |
MCP_BROWSER_HEADED |
Show browser window | true |
MCP_BROWSER_DEBUG |
Browser debug logging | true |
MCP_BROWSER_MAX_RETRIES |
Retry attempts | 3 |
MCP_BROWSER_RETRY_DELAY |
Base retry delay (ms) | 1000 |
MCP_BROWSER_TIMEOUT |
Command timeout (sec) | 60 |
- setup.py:8
- package.json:3
- kubectl_mcp_tool/init.py:10
- ErrorCode enum (SUCCESS, CLIENT_ERROR, SERVER_ERROR, K8S_ERROR, BROWSER_ERROR, NETWORK_ERROR)
- CliError dataclass with actionable fields
- Factory functions for common errors
- Colorized formatters (respects NO_COLOR)
- format_tools_list, format_tool_schema, format_resources_list
- format_prompts_list, format_call_result, format_server_info
- format_doctor_results with status icons
- New subcommands: tools, resources, prompts, call, grep, info, context, doctor
- Stdin support for JSON arguments
- Debug mode support
- v0.7 environment variables
- _get_global_options() helper for CLI flags
- _run_browser_with_retry() for transient errors
- 7 new browser tools (26 total)
- Enhanced browser_open with headers/session/headed params
- Tests for CLI errors module
- Tests for output formatters
- Tests for command handlers
- Tests for v0.7 features
- Tests for _get_global_options()
- Tests for retry logic
- Updated tool count to 26
kubectl-mcp-server-3/
├── kubectl_mcp_tool/
│ ├── __init__.py # Version 1.19.0
│ ├── mcp_server.py # Main MCP server
│ ├── k8s_config.py # In-cluster config support
│ ├── diagnostics.py # Diagnostic tools
│ ├── cli/ # Enhanced CLI
│ │ ├── __init__.py
│ │ ├── cli.py # Main CLI with subcommands
│ │ ├── errors.py # Structured error handling
│ │ └── output.py # Colorized formatters
│ └── tools/ # 235+ Kubernetes tools
│ ├── pods.py # Pod management
│ ├── deployments.py # Deployments, StatefulSets
│ ├── core.py # Namespaces, ConfigMaps
│ ├── cluster.py # Context/cluster management
│ ├── networking.py # Services, Ingress
│ ├── storage.py # PVCs, StorageClasses
│ ├── security.py # RBAC, ServiceAccounts
│ ├── helm.py # Helm v3 operations
│ ├── operations.py # kubectl apply/patch/etc
│ ├── diagnostics.py # Metrics, comparisons
│ ├── cost.py # Cost optimization
│ ├── browser.py # Browser v0.7 (26 tools)
│ ├── ui.py # MCP-UI dashboards
│ ├── gitops.py # GitOps (Flux/ArgoCD)
│ ├── certs.py # Cert-Manager
│ ├── policy.py # Policy (Kyverno/Gatekeeper)
│ ├── backup.py # Backup (Velero)
│ ├── keda.py # KEDA autoscaling
│ ├── cilium.py # Cilium/Hubble network
│ ├── rollouts.py # Argo Rollouts/Flagger
│ ├── capi.py # Cluster API
│ ├── kubevirt.py # KubeVirt VMs
│ ├── kiali.py # Istio/Kiali service mesh
│ ├── vind.py # vCluster (vind) management
│ └── kind.py # kind (Kubernetes IN Docker) management
├── deploy/
│ ├── kubernetes/ # K8s deployment manifests
│ └── kagent/ # kagent integration manifests
├── tests/ # Test suite
│ ├── test_cli.py # CLI tests
│ ├── test_browser.py # Browser tests
│ ├── test_ecosystem.py # Ecosystem tools tests
│ └── ...
├── setup.py # Python package config
├── package.json # npm package config
├── mcp.yaml # MCP manifest
└── Dockerfile # Multi-arch Docker build
- Core K8s tools: 270 (was 253 in v1.20)
- Browser tools: 26 (optional, MCP_BROWSER_ENABLED=true)
- UI tools: 6 (included in core count)
- Ecosystem tools: 139 (GitOps, Certs, Policy, Backup, KEDA, Cilium, Rollouts, CAPI, KubeVirt, Istio, vind, kind)
- kind tools: 32 (expanded from 15)
- Total with all optional: 296
- pip:
pip install kubectl-mcp-server - pip (with UI):
pip install kubectl-mcp-server[ui] - npm:
npx kubectl-mcp-server@1.21.0 - Docker:
docker pull rohitghumare64/kubectl-mcp-server:1.21.0
# Run all tests
pytest tests/ -v
# Run CLI tests
pytest tests/test_cli.py -v
# Run browser tests
pytest tests/test_browser.py -v- v1.21.0: Comprehensive kind support - expanded from 15 to 32 tools (config, registry, node management, networking, diagnostics)
- v1.20.0: kind (Kubernetes IN Docker) support - 15 tools for local development clusters
- v1.19.0: vind (vCluster in Docker) support - 14 tools for virtual clusters
- v1.18.0: Advanced ecosystem tools (KEDA, Cilium, Rollouts, CAPI, KubeVirt, Istio) - 60 new tools
- v1.17.0: Kubernetes ecosystem tools (GitOps, Certs, Policy, Backup) - 33 tools
- v1.15.0: Multi-cluster support with context targeting
- v1.14.0: Enhanced CLI + agent-browser v0.7 support
- v1.13.0: MCP-UI interactive dashboard tools
- v1.12.0: SSE transport fix, in-cluster config support, kagent integration
- v1.11.0: Browser automation tools (19 tools), package rename
- v1.10.0: Initial FastMCP 3.0 migration
- Transport:
streamable-http(required, not SSE) - Endpoint:
/mcp - All tools discoverable through gateway
binds:
- port: 3000
listeners:
- routes:
- backends:
- mcp:
targets:
- name: kubectl-mcp-server
mcp:
host: http://localhost:8000/mcp# Start server
kubectl-mcp-server serve --transport streamable-http --port 8000
# Run gateway
agentgateway --config gateway.yaml
# Connect clients to http://localhost:3000/mcp- Phase 2: Cross-cluster Operations (copy-secret, compare-deployments across clusters)
- Phase 3: Cluster Lifecycle Management (provision, scale, upgrade clusters)
- Phase 4: Multi-tenancy Support (namespace quotas, tenant isolation)
- Phase 5: Enhanced Observability (distributed tracing, metrics aggregation)
- Add shell completion scripts for CLI