kubectl-mcp-server 1.15.0__tar.gz → 1.17.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/PKG-INFO +34 -13
  2. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/README.md +32 -11
  3. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_server.egg-info/PKG-INFO +34 -13
  4. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_server.egg-info/SOURCES.txt +26 -0
  5. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/__init__.py +1 -1
  6. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/cli/cli.py +83 -9
  7. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/cli/output.py +14 -0
  8. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/config/__init__.py +46 -0
  9. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/config/loader.py +386 -0
  10. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/config/schema.py +184 -0
  11. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/crd_detector.py +247 -0
  12. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/k8s_config.py +19 -0
  13. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/mcp_server.py +246 -8
  14. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/observability/__init__.py +59 -0
  15. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/observability/metrics.py +223 -0
  16. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/observability/stats.py +255 -0
  17. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/observability/tracing.py +335 -0
  18. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/prompts/__init__.py +48 -0
  19. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/prompts/builtin.py +695 -0
  20. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/prompts/custom.py +298 -0
  21. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/prompts/prompts.py +180 -4
  22. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/safety.py +155 -0
  23. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/tools/__init__.py +20 -0
  24. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/tools/backup.py +881 -0
  25. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/tools/capi.py +727 -0
  26. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/tools/certs.py +709 -0
  27. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/tools/cilium.py +582 -0
  28. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/tools/cluster.py +384 -0
  29. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/tools/gitops.py +552 -0
  30. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/tools/keda.py +464 -0
  31. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/tools/kiali.py +652 -0
  32. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/tools/kubevirt.py +803 -0
  33. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/tools/policy.py +554 -0
  34. kubectl_mcp_server-1.17.0/kubectl_mcp_tool/tools/rollouts.py +790 -0
  35. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/setup.py +2 -2
  36. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/tests/test_browser.py +2 -2
  37. kubectl_mcp_server-1.17.0/tests/test_config.py +386 -0
  38. kubectl_mcp_server-1.17.0/tests/test_ecosystem.py +331 -0
  39. kubectl_mcp_server-1.17.0/tests/test_mcp_integration.py +251 -0
  40. kubectl_mcp_server-1.17.0/tests/test_observability.py +521 -0
  41. kubectl_mcp_server-1.17.0/tests/test_prompts.py +1252 -0
  42. kubectl_mcp_server-1.17.0/tests/test_safety.py +218 -0
  43. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/tests/test_tools.py +70 -8
  44. kubectl_mcp_server-1.15.0/kubectl_mcp_tool/prompts/__init__.py +0 -5
  45. kubectl_mcp_server-1.15.0/tests/test_prompts.py +0 -536
  46. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/LICENSE +0 -0
  47. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_server.egg-info/dependency_links.txt +0 -0
  48. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_server.egg-info/entry_points.txt +0 -0
  49. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_server.egg-info/requires.txt +0 -0
  50. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_server.egg-info/top_level.txt +0 -0
  51. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/__main__.py +0 -0
  52. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/auth/__init__.py +0 -0
  53. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/auth/config.py +0 -0
  54. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/auth/scopes.py +0 -0
  55. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/auth/verifier.py +0 -0
  56. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/cli/__init__.py +0 -0
  57. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/cli/__main__.py +0 -0
  58. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/cli/errors.py +0 -0
  59. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/diagnostics.py +0 -0
  60. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/resources/__init__.py +0 -0
  61. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/resources/resources.py +0 -0
  62. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/tools/browser.py +0 -0
  63. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/tools/core.py +0 -0
  64. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/tools/cost.py +0 -0
  65. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/tools/deployments.py +0 -0
  66. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/tools/diagnostics.py +0 -0
  67. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/tools/helm.py +0 -0
  68. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/tools/networking.py +0 -0
  69. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/tools/operations.py +0 -0
  70. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/tools/pods.py +0 -0
  71. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/tools/security.py +0 -0
  72. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/tools/storage.py +0 -0
  73. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/tools/ui.py +0 -0
  74. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/utils/__init__.py +0 -0
  75. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/kubectl_mcp_tool/utils/helpers.py +0 -0
  76. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/setup.cfg +0 -0
  77. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/tests/__init__.py +0 -0
  78. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/tests/conftest.py +0 -0
  79. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/tests/test_auth.py +0 -0
  80. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/tests/test_cli.py +0 -0
  81. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/tests/test_resources.py +0 -0
  82. {kubectl_mcp_server-1.15.0 → kubectl_mcp_server-1.17.0}/tests/test_server.py +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kubectl-mcp-server
3
- Version: 1.15.0
4
- Summary: A Model Context Protocol (MCP) server for Kubernetes with 127+ tools, 8 resources, and 8 prompts
3
+ Version: 1.17.0
4
+ Summary: A Model Context Protocol (MCP) server for Kubernetes with 220+ tools, 8 resources, and 8 prompts
5
5
  Home-page: https://github.com/rohitg00/kubectl-mcp-server
6
6
  Author: Rohit Ghumare
7
7
  Author-email: ghumare64@gmail.com
@@ -70,7 +70,7 @@ Talk to your clusters like you talk to a DevOps expert. Debug crashed pods, opti
70
70
  [![PyPI](https://img.shields.io/pypi/v/kubectl-mcp-server?color=blue&label=PyPI)](https://pypi.org/project/kubectl-mcp-server/)
71
71
  [![npm](https://img.shields.io/npm/v/kubectl-mcp-server?color=green&label=npm)](https://www.npmjs.com/package/kubectl-mcp-server)
72
72
  [![Docker](https://img.shields.io/docker/pulls/rohitghumare64/kubectl-mcp-server.svg)](https://hub.docker.com/r/rohitghumare64/kubectl-mcp-server)
73
- [![Tests](https://img.shields.io/badge/tests-216%20passed-success)](https://github.com/rohitg00/kubectl-mcp-server)
73
+ [![Tests](https://img.shields.io/badge/tests-234%20passed-success)](https://github.com/rohitg00/kubectl-mcp-server)
74
74
  [![agentregistry](https://img.shields.io/badge/agentregistry-verified-blue?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0id2hpdGUiIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTE1Ljk5MiA2LjAzN2wtMy4wMjEtLjQzOS0xLjM1LTIuNzM2Yy0uMzQ2LS43MDItMS41MDQtLjcwMi0xLjg1IDBMOC40MjEgNS41OTggNS40IDYuMDM3Yy0uNzc2LjExMy0xLjA4OCAxLjA1My0uNTI4IDEuNTkzbDIuMTg2IDIuMTI5LS41MTYgMy4wMWMtLjEzMy43NzUuNjgyIDEuMzY2IDEuMzc4Ljk5OGwyLjcwMi0xLjQyIDIuNzAyIDEuNDJjLjY5Ni4zNjggMS41MTEtLjIyMyAxLjM3OC0uOTk4bC0uNTE2LTMuMDEgMi4xODYtMi4xMjljLjU2LS41NCAwLjI0OC0xLjQ4LS41MjgtMS41OTN6Ii8+PC9zdmc+)](https://aregistry.ai)
75
75
 
76
76
  ---
@@ -155,7 +155,7 @@ Simply ask your AI assistant in natural language:
155
155
  - Interactive HTML dashboards with live metrics
156
156
  - Visual timeline of events and resource usage
157
157
 
158
- **131 powerful tools** | **8 workflow prompts** | **8 data resources** | **Works with all major AI assistants**
158
+ **224 powerful tools** | **8 workflow prompts** | **8 data resources** | **Works with all major AI assistants**
159
159
 
160
160
  ## Why kubectl-mcp-server?
161
161
 
@@ -456,7 +456,7 @@ Add to `~/.config/roo-code/mcp.json` or `~/.config/kilo-code/mcp.json`:
456
456
 
457
457
  ## Complete Feature Set
458
458
 
459
- ### 131 MCP Tools for Complete Kubernetes Management
459
+ ### 224 MCP Tools for Complete Kubernetes Management
460
460
 
461
461
  | Category | Tools |
462
462
  |----------|-------|
@@ -481,6 +481,16 @@ Add to `~/.config/roo-code/mcp.json` or `~/.config/kilo-code/mcp.json`:
481
481
  | **Cost Optimization** | `get_resource_recommendations`, `get_idle_resources`, `get_resource_quotas_usage`, `get_cost_analysis`, `get_overprovisioned_resources`, `get_resource_trends`, `get_namespace_cost_allocation`, `optimize_resource_requests` |
482
482
  | **Advanced** | `kubectl_generic`, `kubectl_explain`, `get_api_resources`, `port_forward`, `get_resource_usage`, `node_management` |
483
483
  | **UI Dashboards** | `show_pod_logs_ui`, `show_pods_dashboard_ui`, `show_resource_yaml_ui`, `show_cluster_overview_ui`, `show_events_timeline_ui`, `render_k8s_dashboard_screenshot` |
484
+ | **GitOps (Flux/Argo)** | `gitops_apps_list`, `gitops_app_get`, `gitops_app_sync`, `gitops_app_status`, `gitops_sources_list`, `gitops_source_get`, `gitops_detect_engine` |
485
+ | **Cert-Manager** | `certs_list`, `certs_get`, `certs_issuers_list`, `certs_issuer_get`, `certs_renew`, `certs_status_explain`, `certs_challenges_list`, `certs_requests_list`, `certs_detect` |
486
+ | **Policy (Kyverno/Gatekeeper)** | `policy_list`, `policy_get`, `policy_violations_list`, `policy_explain_denial`, `policy_audit`, `policy_detect` |
487
+ | **Backup (Velero)** | `backup_list`, `backup_get`, `backup_create`, `backup_delete`, `restore_list`, `restore_create`, `restore_get`, `backup_locations_list`, `backup_schedules_list`, `backup_schedule_create`, `backup_detect` |
488
+ | **KEDA Autoscaling** | `keda_scaledobjects_list`, `keda_scaledobject_get`, `keda_scaledjobs_list`, `keda_triggerauths_list`, `keda_triggerauth_get`, `keda_hpa_list`, `keda_detect` |
489
+ | **Cilium/Hubble** | `cilium_policies_list`, `cilium_policy_get`, `cilium_endpoints_list`, `cilium_identities_list`, `cilium_nodes_list`, `cilium_status`, `hubble_flows_query`, `cilium_detect` |
490
+ | **Argo Rollouts/Flagger** | `rollouts_list`, `rollout_get`, `rollout_status`, `rollout_promote`, `rollout_abort`, `rollout_retry`, `rollout_restart`, `analysis_runs_list`, `flagger_canaries_list`, `flagger_canary_get`, `rollouts_detect` |
491
+ | **Cluster API** | `capi_clusters_list`, `capi_cluster_get`, `capi_machines_list`, `capi_machine_get`, `capi_machinedeployments_list`, `capi_machinedeployment_scale`, `capi_machinesets_list`, `capi_machinehealthchecks_list`, `capi_clusterclasses_list`, `capi_cluster_kubeconfig`, `capi_detect` |
492
+ | **KubeVirt VMs** | `kubevirt_vms_list`, `kubevirt_vm_get`, `kubevirt_vmis_list`, `kubevirt_vm_start`, `kubevirt_vm_stop`, `kubevirt_vm_restart`, `kubevirt_vm_pause`, `kubevirt_vm_unpause`, `kubevirt_vm_migrate`, `kubevirt_datasources_list`, `kubevirt_instancetypes_list`, `kubevirt_datavolumes_list`, `kubevirt_detect` |
493
+ | **Istio/Kiali** | `istio_virtualservices_list`, `istio_virtualservice_get`, `istio_destinationrules_list`, `istio_gateways_list`, `istio_peerauthentications_list`, `istio_authorizationpolicies_list`, `istio_proxy_status`, `istio_analyze`, `istio_sidecar_status`, `istio_detect` |
484
494
 
485
495
  ### MCP Resources
486
496
 
@@ -520,11 +530,12 @@ Pre-built workflow prompts for common Kubernetes operations:
520
530
 
521
531
  ### Key Capabilities
522
532
 
523
- - 🤖 **131 Powerful Tools** - Complete Kubernetes management from pods to security
533
+ - 🤖 **224 Powerful Tools** - Complete Kubernetes management from pods to security
524
534
  - 🎯 **8 AI Workflow Prompts** - Pre-built workflows for common operations
525
535
  - 📊 **8 MCP Resources** - Browsable Kubernetes data exposure
526
536
  - 🎨 **6 Interactive Dashboards** - HTML UI tools for visual cluster management
527
537
  - 🌐 **26 Browser Tools** - Web automation with cloud provider support
538
+ - 🔄 **93 Ecosystem Tools** - GitOps, Cert-Manager, Policy, Backup, KEDA, Cilium, Rollouts, CAPI, KubeVirt, Istio
528
539
  - ⚡ **Multi-Transport** - stdio, SSE, HTTP, streamable-http
529
540
  - 🔐 **Security First** - Non-destructive mode, secret masking, RBAC validation
530
541
  - 🏥 **Advanced Diagnostics** - AI-powered troubleshooting and cost optimization
@@ -759,7 +770,7 @@ EOF
759
770
  agentgateway --config gateway.yaml
760
771
  ```
761
772
 
762
- Connect clients to `http://localhost:3000/mcp` for unified access to all 131 tools.
773
+ Connect clients to `http://localhost:3000/mcp` for unified access to all 224 tools.
763
774
 
764
775
  ## In-Cluster Deployment
765
776
 
@@ -818,7 +829,7 @@ kubectl apply -f deploy/kagent/toolserver-stdio.yaml
818
829
  kagent dashboard
819
830
  ```
820
831
 
821
- Your AI agents now have access to all 131 Kubernetes tools. See [kagent quickstart](https://kagent.dev/docs/kagent/getting-started/quickstart).
832
+ Your AI agents now have access to all 224 Kubernetes tools. See [kagent quickstart](https://kagent.dev/docs/kagent/getting-started/quickstart).
822
833
 
823
834
  ## Architecture
824
835
 
@@ -836,7 +847,7 @@ The MCP server implements the [Model Context Protocol](https://github.com/modelc
836
847
  ```
837
848
  kubectl_mcp_tool/
838
849
  ├── mcp_server.py # Main server (FastMCP, transports)
839
- ├── tools/ # 131 MCP tools organized by category
850
+ ├── tools/ # 224 MCP tools organized by category
840
851
  │ ├── pods.py # Pod management & diagnostics
841
852
  │ ├── deployments.py # Deployments, StatefulSets, DaemonSets
842
853
  │ ├── core.py # Namespaces, ConfigMaps, Secrets
@@ -848,7 +859,17 @@ kubectl_mcp_tool/
848
859
  │ ├── operations.py # kubectl apply/patch/describe/etc
849
860
  │ ├── diagnostics.py # Metrics, namespace comparison
850
861
  │ ├── cost.py # Resource optimization & cost analysis
851
- └── ui.py # MCP-UI interactive dashboards
862
+ ├── ui.py # MCP-UI interactive dashboards
863
+ │ ├── gitops.py # GitOps (Flux/ArgoCD)
864
+ │ ├── certs.py # Cert-Manager
865
+ │ ├── policy.py # Policy (Kyverno/Gatekeeper)
866
+ │ ├── backup.py # Backup (Velero)
867
+ │ ├── keda.py # KEDA autoscaling
868
+ │ ├── cilium.py # Cilium/Hubble network observability
869
+ │ ├── rollouts.py # Argo Rollouts/Flagger
870
+ │ ├── capi.py # Cluster API
871
+ │ ├── kubevirt.py # KubeVirt VMs
872
+ │ └── kiali.py # Istio/Kiali service mesh
852
873
  ├── resources/ # 8 MCP Resources for data exposure
853
874
  ├── prompts/ # 8 MCP Prompts for workflows
854
875
  └── cli/ # CLI interface
@@ -860,7 +881,7 @@ Seamlessly manage multiple Kubernetes clusters through natural language. **Every
860
881
 
861
882
  ### Context Parameter (v1.15.0)
862
883
 
863
- All 131 tools accept an optional `context` parameter to target specific clusters:
884
+ All 224 tools accept an optional `context` parameter to target specific clusters:
864
885
 
865
886
  **Talk to your AI assistant:**
866
887
  ```
@@ -949,13 +970,13 @@ pytest tests/ -v -m unit
949
970
  tests/
950
971
  ├── __init__.py # Test package
951
972
  ├── conftest.py # Shared fixtures and mocks
952
- ├── test_tools.py # Unit tests for 131 MCP tools
973
+ ├── test_tools.py # Unit tests for 224 MCP tools
953
974
  ├── test_resources.py # Tests for 8 MCP Resources
954
975
  ├── test_prompts.py # Tests for 8 MCP Prompts
955
976
  └── test_server.py # Server initialization tests
956
977
  ```
957
978
 
958
- **216 tests covering**: tool registration, resource exposure, prompt generation, server initialization, non-destructive mode, secret masking, error handling, transport methods, CLI commands, and browser automation.
979
+ **234 tests covering**: tool registration, resource exposure, prompt generation, server initialization, non-destructive mode, secret masking, error handling, transport methods, CLI commands, browser automation, and ecosystem tools.
959
980
 
960
981
  ### Code Quality
961
982
 
@@ -12,7 +12,7 @@ Talk to your clusters like you talk to a DevOps expert. Debug crashed pods, opti
12
12
  [![PyPI](https://img.shields.io/pypi/v/kubectl-mcp-server?color=blue&label=PyPI)](https://pypi.org/project/kubectl-mcp-server/)
13
13
  [![npm](https://img.shields.io/npm/v/kubectl-mcp-server?color=green&label=npm)](https://www.npmjs.com/package/kubectl-mcp-server)
14
14
  [![Docker](https://img.shields.io/docker/pulls/rohitghumare64/kubectl-mcp-server.svg)](https://hub.docker.com/r/rohitghumare64/kubectl-mcp-server)
15
- [![Tests](https://img.shields.io/badge/tests-216%20passed-success)](https://github.com/rohitg00/kubectl-mcp-server)
15
+ [![Tests](https://img.shields.io/badge/tests-234%20passed-success)](https://github.com/rohitg00/kubectl-mcp-server)
16
16
  [![agentregistry](https://img.shields.io/badge/agentregistry-verified-blue?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0id2hpdGUiIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTE1Ljk5MiA2LjAzN2wtMy4wMjEtLjQzOS0xLjM1LTIuNzM2Yy0uMzQ2LS43MDItMS41MDQtLjcwMi0xLjg1IDBMOC40MjEgNS41OTggNS40IDYuMDM3Yy0uNzc2LjExMy0xLjA4OCAxLjA1My0uNTI4IDEuNTkzbDIuMTg2IDIuMTI5LS41MTYgMy4wMWMtLjEzMy43NzUuNjgyIDEuMzY2IDEuMzc4Ljk5OGwyLjcwMi0xLjQyIDIuNzAyIDEuNDJjLjY5Ni4zNjggMS41MTEtLjIyMyAxLjM3OC0uOTk4bC0uNTE2LTMuMDEgMi4xODYtMi4xMjljLjU2LS41NCAwLjI0OC0xLjQ4LS41MjgtMS41OTN6Ii8+PC9zdmc+)](https://aregistry.ai)
17
17
 
18
18
  ---
@@ -97,7 +97,7 @@ Simply ask your AI assistant in natural language:
97
97
  - Interactive HTML dashboards with live metrics
98
98
  - Visual timeline of events and resource usage
99
99
 
100
- **131 powerful tools** | **8 workflow prompts** | **8 data resources** | **Works with all major AI assistants**
100
+ **224 powerful tools** | **8 workflow prompts** | **8 data resources** | **Works with all major AI assistants**
101
101
 
102
102
  ## Why kubectl-mcp-server?
103
103
 
@@ -398,7 +398,7 @@ Add to `~/.config/roo-code/mcp.json` or `~/.config/kilo-code/mcp.json`:
398
398
 
399
399
  ## Complete Feature Set
400
400
 
401
- ### 131 MCP Tools for Complete Kubernetes Management
401
+ ### 224 MCP Tools for Complete Kubernetes Management
402
402
 
403
403
  | Category | Tools |
404
404
  |----------|-------|
@@ -423,6 +423,16 @@ Add to `~/.config/roo-code/mcp.json` or `~/.config/kilo-code/mcp.json`:
423
423
  | **Cost Optimization** | `get_resource_recommendations`, `get_idle_resources`, `get_resource_quotas_usage`, `get_cost_analysis`, `get_overprovisioned_resources`, `get_resource_trends`, `get_namespace_cost_allocation`, `optimize_resource_requests` |
424
424
  | **Advanced** | `kubectl_generic`, `kubectl_explain`, `get_api_resources`, `port_forward`, `get_resource_usage`, `node_management` |
425
425
  | **UI Dashboards** | `show_pod_logs_ui`, `show_pods_dashboard_ui`, `show_resource_yaml_ui`, `show_cluster_overview_ui`, `show_events_timeline_ui`, `render_k8s_dashboard_screenshot` |
426
+ | **GitOps (Flux/Argo)** | `gitops_apps_list`, `gitops_app_get`, `gitops_app_sync`, `gitops_app_status`, `gitops_sources_list`, `gitops_source_get`, `gitops_detect_engine` |
427
+ | **Cert-Manager** | `certs_list`, `certs_get`, `certs_issuers_list`, `certs_issuer_get`, `certs_renew`, `certs_status_explain`, `certs_challenges_list`, `certs_requests_list`, `certs_detect` |
428
+ | **Policy (Kyverno/Gatekeeper)** | `policy_list`, `policy_get`, `policy_violations_list`, `policy_explain_denial`, `policy_audit`, `policy_detect` |
429
+ | **Backup (Velero)** | `backup_list`, `backup_get`, `backup_create`, `backup_delete`, `restore_list`, `restore_create`, `restore_get`, `backup_locations_list`, `backup_schedules_list`, `backup_schedule_create`, `backup_detect` |
430
+ | **KEDA Autoscaling** | `keda_scaledobjects_list`, `keda_scaledobject_get`, `keda_scaledjobs_list`, `keda_triggerauths_list`, `keda_triggerauth_get`, `keda_hpa_list`, `keda_detect` |
431
+ | **Cilium/Hubble** | `cilium_policies_list`, `cilium_policy_get`, `cilium_endpoints_list`, `cilium_identities_list`, `cilium_nodes_list`, `cilium_status`, `hubble_flows_query`, `cilium_detect` |
432
+ | **Argo Rollouts/Flagger** | `rollouts_list`, `rollout_get`, `rollout_status`, `rollout_promote`, `rollout_abort`, `rollout_retry`, `rollout_restart`, `analysis_runs_list`, `flagger_canaries_list`, `flagger_canary_get`, `rollouts_detect` |
433
+ | **Cluster API** | `capi_clusters_list`, `capi_cluster_get`, `capi_machines_list`, `capi_machine_get`, `capi_machinedeployments_list`, `capi_machinedeployment_scale`, `capi_machinesets_list`, `capi_machinehealthchecks_list`, `capi_clusterclasses_list`, `capi_cluster_kubeconfig`, `capi_detect` |
434
+ | **KubeVirt VMs** | `kubevirt_vms_list`, `kubevirt_vm_get`, `kubevirt_vmis_list`, `kubevirt_vm_start`, `kubevirt_vm_stop`, `kubevirt_vm_restart`, `kubevirt_vm_pause`, `kubevirt_vm_unpause`, `kubevirt_vm_migrate`, `kubevirt_datasources_list`, `kubevirt_instancetypes_list`, `kubevirt_datavolumes_list`, `kubevirt_detect` |
435
+ | **Istio/Kiali** | `istio_virtualservices_list`, `istio_virtualservice_get`, `istio_destinationrules_list`, `istio_gateways_list`, `istio_peerauthentications_list`, `istio_authorizationpolicies_list`, `istio_proxy_status`, `istio_analyze`, `istio_sidecar_status`, `istio_detect` |
426
436
 
427
437
  ### MCP Resources
428
438
 
@@ -462,11 +472,12 @@ Pre-built workflow prompts for common Kubernetes operations:
462
472
 
463
473
  ### Key Capabilities
464
474
 
465
- - 🤖 **131 Powerful Tools** - Complete Kubernetes management from pods to security
475
+ - 🤖 **224 Powerful Tools** - Complete Kubernetes management from pods to security
466
476
  - 🎯 **8 AI Workflow Prompts** - Pre-built workflows for common operations
467
477
  - 📊 **8 MCP Resources** - Browsable Kubernetes data exposure
468
478
  - 🎨 **6 Interactive Dashboards** - HTML UI tools for visual cluster management
469
479
  - 🌐 **26 Browser Tools** - Web automation with cloud provider support
480
+ - 🔄 **93 Ecosystem Tools** - GitOps, Cert-Manager, Policy, Backup, KEDA, Cilium, Rollouts, CAPI, KubeVirt, Istio
470
481
  - ⚡ **Multi-Transport** - stdio, SSE, HTTP, streamable-http
471
482
  - 🔐 **Security First** - Non-destructive mode, secret masking, RBAC validation
472
483
  - 🏥 **Advanced Diagnostics** - AI-powered troubleshooting and cost optimization
@@ -701,7 +712,7 @@ EOF
701
712
  agentgateway --config gateway.yaml
702
713
  ```
703
714
 
704
- Connect clients to `http://localhost:3000/mcp` for unified access to all 131 tools.
715
+ Connect clients to `http://localhost:3000/mcp` for unified access to all 224 tools.
705
716
 
706
717
  ## In-Cluster Deployment
707
718
 
@@ -760,7 +771,7 @@ kubectl apply -f deploy/kagent/toolserver-stdio.yaml
760
771
  kagent dashboard
761
772
  ```
762
773
 
763
- Your AI agents now have access to all 131 Kubernetes tools. See [kagent quickstart](https://kagent.dev/docs/kagent/getting-started/quickstart).
774
+ Your AI agents now have access to all 224 Kubernetes tools. See [kagent quickstart](https://kagent.dev/docs/kagent/getting-started/quickstart).
764
775
 
765
776
  ## Architecture
766
777
 
@@ -778,7 +789,7 @@ The MCP server implements the [Model Context Protocol](https://github.com/modelc
778
789
  ```
779
790
  kubectl_mcp_tool/
780
791
  ├── mcp_server.py # Main server (FastMCP, transports)
781
- ├── tools/ # 131 MCP tools organized by category
792
+ ├── tools/ # 224 MCP tools organized by category
782
793
  │ ├── pods.py # Pod management & diagnostics
783
794
  │ ├── deployments.py # Deployments, StatefulSets, DaemonSets
784
795
  │ ├── core.py # Namespaces, ConfigMaps, Secrets
@@ -790,7 +801,17 @@ kubectl_mcp_tool/
790
801
  │ ├── operations.py # kubectl apply/patch/describe/etc
791
802
  │ ├── diagnostics.py # Metrics, namespace comparison
792
803
  │ ├── cost.py # Resource optimization & cost analysis
793
- └── ui.py # MCP-UI interactive dashboards
804
+ ├── ui.py # MCP-UI interactive dashboards
805
+ │ ├── gitops.py # GitOps (Flux/ArgoCD)
806
+ │ ├── certs.py # Cert-Manager
807
+ │ ├── policy.py # Policy (Kyverno/Gatekeeper)
808
+ │ ├── backup.py # Backup (Velero)
809
+ │ ├── keda.py # KEDA autoscaling
810
+ │ ├── cilium.py # Cilium/Hubble network observability
811
+ │ ├── rollouts.py # Argo Rollouts/Flagger
812
+ │ ├── capi.py # Cluster API
813
+ │ ├── kubevirt.py # KubeVirt VMs
814
+ │ └── kiali.py # Istio/Kiali service mesh
794
815
  ├── resources/ # 8 MCP Resources for data exposure
795
816
  ├── prompts/ # 8 MCP Prompts for workflows
796
817
  └── cli/ # CLI interface
@@ -802,7 +823,7 @@ Seamlessly manage multiple Kubernetes clusters through natural language. **Every
802
823
 
803
824
  ### Context Parameter (v1.15.0)
804
825
 
805
- All 131 tools accept an optional `context` parameter to target specific clusters:
826
+ All 224 tools accept an optional `context` parameter to target specific clusters:
806
827
 
807
828
  **Talk to your AI assistant:**
808
829
  ```
@@ -891,13 +912,13 @@ pytest tests/ -v -m unit
891
912
  tests/
892
913
  ├── __init__.py # Test package
893
914
  ├── conftest.py # Shared fixtures and mocks
894
- ├── test_tools.py # Unit tests for 131 MCP tools
915
+ ├── test_tools.py # Unit tests for 224 MCP tools
895
916
  ├── test_resources.py # Tests for 8 MCP Resources
896
917
  ├── test_prompts.py # Tests for 8 MCP Prompts
897
918
  └── test_server.py # Server initialization tests
898
919
  ```
899
920
 
900
- **216 tests covering**: tool registration, resource exposure, prompt generation, server initialization, non-destructive mode, secret masking, error handling, transport methods, CLI commands, and browser automation.
921
+ **234 tests covering**: tool registration, resource exposure, prompt generation, server initialization, non-destructive mode, secret masking, error handling, transport methods, CLI commands, browser automation, and ecosystem tools.
901
922
 
902
923
  ### Code Quality
903
924
 
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kubectl-mcp-server
3
- Version: 1.15.0
4
- Summary: A Model Context Protocol (MCP) server for Kubernetes with 127+ tools, 8 resources, and 8 prompts
3
+ Version: 1.17.0
4
+ Summary: A Model Context Protocol (MCP) server for Kubernetes with 220+ tools, 8 resources, and 8 prompts
5
5
  Home-page: https://github.com/rohitg00/kubectl-mcp-server
6
6
  Author: Rohit Ghumare
7
7
  Author-email: ghumare64@gmail.com
@@ -70,7 +70,7 @@ Talk to your clusters like you talk to a DevOps expert. Debug crashed pods, opti
70
70
  [![PyPI](https://img.shields.io/pypi/v/kubectl-mcp-server?color=blue&label=PyPI)](https://pypi.org/project/kubectl-mcp-server/)
71
71
  [![npm](https://img.shields.io/npm/v/kubectl-mcp-server?color=green&label=npm)](https://www.npmjs.com/package/kubectl-mcp-server)
72
72
  [![Docker](https://img.shields.io/docker/pulls/rohitghumare64/kubectl-mcp-server.svg)](https://hub.docker.com/r/rohitghumare64/kubectl-mcp-server)
73
- [![Tests](https://img.shields.io/badge/tests-216%20passed-success)](https://github.com/rohitg00/kubectl-mcp-server)
73
+ [![Tests](https://img.shields.io/badge/tests-234%20passed-success)](https://github.com/rohitg00/kubectl-mcp-server)
74
74
  [![agentregistry](https://img.shields.io/badge/agentregistry-verified-blue?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0id2hpdGUiIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTE1Ljk5MiA2LjAzN2wtMy4wMjEtLjQzOS0xLjM1LTIuNzM2Yy0uMzQ2LS43MDItMS41MDQtLjcwMi0xLjg1IDBMOC40MjEgNS41OTggNS40IDYuMDM3Yy0uNzc2LjExMy0xLjA4OCAxLjA1My0uNTI4IDEuNTkzbDIuMTg2IDIuMTI5LS41MTYgMy4wMWMtLjEzMy43NzUuNjgyIDEuMzY2IDEuMzc4Ljk5OGwyLjcwMi0xLjQyIDIuNzAyIDEuNDJjLjY5Ni4zNjggMS41MTEtLjIyMyAxLjM3OC0uOTk4bC0uNTE2LTMuMDEgMi4xODYtMi4xMjljLjU2LS41NCAwLjI0OC0xLjQ4LS41MjgtMS41OTN6Ii8+PC9zdmc+)](https://aregistry.ai)
75
75
 
76
76
  ---
@@ -155,7 +155,7 @@ Simply ask your AI assistant in natural language:
155
155
  - Interactive HTML dashboards with live metrics
156
156
  - Visual timeline of events and resource usage
157
157
 
158
- **131 powerful tools** | **8 workflow prompts** | **8 data resources** | **Works with all major AI assistants**
158
+ **224 powerful tools** | **8 workflow prompts** | **8 data resources** | **Works with all major AI assistants**
159
159
 
160
160
  ## Why kubectl-mcp-server?
161
161
 
@@ -456,7 +456,7 @@ Add to `~/.config/roo-code/mcp.json` or `~/.config/kilo-code/mcp.json`:
456
456
 
457
457
  ## Complete Feature Set
458
458
 
459
- ### 131 MCP Tools for Complete Kubernetes Management
459
+ ### 224 MCP Tools for Complete Kubernetes Management
460
460
 
461
461
  | Category | Tools |
462
462
  |----------|-------|
@@ -481,6 +481,16 @@ Add to `~/.config/roo-code/mcp.json` or `~/.config/kilo-code/mcp.json`:
481
481
  | **Cost Optimization** | `get_resource_recommendations`, `get_idle_resources`, `get_resource_quotas_usage`, `get_cost_analysis`, `get_overprovisioned_resources`, `get_resource_trends`, `get_namespace_cost_allocation`, `optimize_resource_requests` |
482
482
  | **Advanced** | `kubectl_generic`, `kubectl_explain`, `get_api_resources`, `port_forward`, `get_resource_usage`, `node_management` |
483
483
  | **UI Dashboards** | `show_pod_logs_ui`, `show_pods_dashboard_ui`, `show_resource_yaml_ui`, `show_cluster_overview_ui`, `show_events_timeline_ui`, `render_k8s_dashboard_screenshot` |
484
+ | **GitOps (Flux/Argo)** | `gitops_apps_list`, `gitops_app_get`, `gitops_app_sync`, `gitops_app_status`, `gitops_sources_list`, `gitops_source_get`, `gitops_detect_engine` |
485
+ | **Cert-Manager** | `certs_list`, `certs_get`, `certs_issuers_list`, `certs_issuer_get`, `certs_renew`, `certs_status_explain`, `certs_challenges_list`, `certs_requests_list`, `certs_detect` |
486
+ | **Policy (Kyverno/Gatekeeper)** | `policy_list`, `policy_get`, `policy_violations_list`, `policy_explain_denial`, `policy_audit`, `policy_detect` |
487
+ | **Backup (Velero)** | `backup_list`, `backup_get`, `backup_create`, `backup_delete`, `restore_list`, `restore_create`, `restore_get`, `backup_locations_list`, `backup_schedules_list`, `backup_schedule_create`, `backup_detect` |
488
+ | **KEDA Autoscaling** | `keda_scaledobjects_list`, `keda_scaledobject_get`, `keda_scaledjobs_list`, `keda_triggerauths_list`, `keda_triggerauth_get`, `keda_hpa_list`, `keda_detect` |
489
+ | **Cilium/Hubble** | `cilium_policies_list`, `cilium_policy_get`, `cilium_endpoints_list`, `cilium_identities_list`, `cilium_nodes_list`, `cilium_status`, `hubble_flows_query`, `cilium_detect` |
490
+ | **Argo Rollouts/Flagger** | `rollouts_list`, `rollout_get`, `rollout_status`, `rollout_promote`, `rollout_abort`, `rollout_retry`, `rollout_restart`, `analysis_runs_list`, `flagger_canaries_list`, `flagger_canary_get`, `rollouts_detect` |
491
+ | **Cluster API** | `capi_clusters_list`, `capi_cluster_get`, `capi_machines_list`, `capi_machine_get`, `capi_machinedeployments_list`, `capi_machinedeployment_scale`, `capi_machinesets_list`, `capi_machinehealthchecks_list`, `capi_clusterclasses_list`, `capi_cluster_kubeconfig`, `capi_detect` |
492
+ | **KubeVirt VMs** | `kubevirt_vms_list`, `kubevirt_vm_get`, `kubevirt_vmis_list`, `kubevirt_vm_start`, `kubevirt_vm_stop`, `kubevirt_vm_restart`, `kubevirt_vm_pause`, `kubevirt_vm_unpause`, `kubevirt_vm_migrate`, `kubevirt_datasources_list`, `kubevirt_instancetypes_list`, `kubevirt_datavolumes_list`, `kubevirt_detect` |
493
+ | **Istio/Kiali** | `istio_virtualservices_list`, `istio_virtualservice_get`, `istio_destinationrules_list`, `istio_gateways_list`, `istio_peerauthentications_list`, `istio_authorizationpolicies_list`, `istio_proxy_status`, `istio_analyze`, `istio_sidecar_status`, `istio_detect` |
484
494
 
485
495
  ### MCP Resources
486
496
 
@@ -520,11 +530,12 @@ Pre-built workflow prompts for common Kubernetes operations:
520
530
 
521
531
  ### Key Capabilities
522
532
 
523
- - 🤖 **131 Powerful Tools** - Complete Kubernetes management from pods to security
533
+ - 🤖 **224 Powerful Tools** - Complete Kubernetes management from pods to security
524
534
  - 🎯 **8 AI Workflow Prompts** - Pre-built workflows for common operations
525
535
  - 📊 **8 MCP Resources** - Browsable Kubernetes data exposure
526
536
  - 🎨 **6 Interactive Dashboards** - HTML UI tools for visual cluster management
527
537
  - 🌐 **26 Browser Tools** - Web automation with cloud provider support
538
+ - 🔄 **93 Ecosystem Tools** - GitOps, Cert-Manager, Policy, Backup, KEDA, Cilium, Rollouts, CAPI, KubeVirt, Istio
528
539
  - ⚡ **Multi-Transport** - stdio, SSE, HTTP, streamable-http
529
540
  - 🔐 **Security First** - Non-destructive mode, secret masking, RBAC validation
530
541
  - 🏥 **Advanced Diagnostics** - AI-powered troubleshooting and cost optimization
@@ -759,7 +770,7 @@ EOF
759
770
  agentgateway --config gateway.yaml
760
771
  ```
761
772
 
762
- Connect clients to `http://localhost:3000/mcp` for unified access to all 131 tools.
773
+ Connect clients to `http://localhost:3000/mcp` for unified access to all 224 tools.
763
774
 
764
775
  ## In-Cluster Deployment
765
776
 
@@ -818,7 +829,7 @@ kubectl apply -f deploy/kagent/toolserver-stdio.yaml
818
829
  kagent dashboard
819
830
  ```
820
831
 
821
- Your AI agents now have access to all 131 Kubernetes tools. See [kagent quickstart](https://kagent.dev/docs/kagent/getting-started/quickstart).
832
+ Your AI agents now have access to all 224 Kubernetes tools. See [kagent quickstart](https://kagent.dev/docs/kagent/getting-started/quickstart).
822
833
 
823
834
  ## Architecture
824
835
 
@@ -836,7 +847,7 @@ The MCP server implements the [Model Context Protocol](https://github.com/modelc
836
847
  ```
837
848
  kubectl_mcp_tool/
838
849
  ├── mcp_server.py # Main server (FastMCP, transports)
839
- ├── tools/ # 131 MCP tools organized by category
850
+ ├── tools/ # 224 MCP tools organized by category
840
851
  │ ├── pods.py # Pod management & diagnostics
841
852
  │ ├── deployments.py # Deployments, StatefulSets, DaemonSets
842
853
  │ ├── core.py # Namespaces, ConfigMaps, Secrets
@@ -848,7 +859,17 @@ kubectl_mcp_tool/
848
859
  │ ├── operations.py # kubectl apply/patch/describe/etc
849
860
  │ ├── diagnostics.py # Metrics, namespace comparison
850
861
  │ ├── cost.py # Resource optimization & cost analysis
851
- └── ui.py # MCP-UI interactive dashboards
862
+ ├── ui.py # MCP-UI interactive dashboards
863
+ │ ├── gitops.py # GitOps (Flux/ArgoCD)
864
+ │ ├── certs.py # Cert-Manager
865
+ │ ├── policy.py # Policy (Kyverno/Gatekeeper)
866
+ │ ├── backup.py # Backup (Velero)
867
+ │ ├── keda.py # KEDA autoscaling
868
+ │ ├── cilium.py # Cilium/Hubble network observability
869
+ │ ├── rollouts.py # Argo Rollouts/Flagger
870
+ │ ├── capi.py # Cluster API
871
+ │ ├── kubevirt.py # KubeVirt VMs
872
+ │ └── kiali.py # Istio/Kiali service mesh
852
873
  ├── resources/ # 8 MCP Resources for data exposure
853
874
  ├── prompts/ # 8 MCP Prompts for workflows
854
875
  └── cli/ # CLI interface
@@ -860,7 +881,7 @@ Seamlessly manage multiple Kubernetes clusters through natural language. **Every
860
881
 
861
882
  ### Context Parameter (v1.15.0)
862
883
 
863
- All 131 tools accept an optional `context` parameter to target specific clusters:
884
+ All 224 tools accept an optional `context` parameter to target specific clusters:
864
885
 
865
886
  **Talk to your AI assistant:**
866
887
  ```
@@ -949,13 +970,13 @@ pytest tests/ -v -m unit
949
970
  tests/
950
971
  ├── __init__.py # Test package
951
972
  ├── conftest.py # Shared fixtures and mocks
952
- ├── test_tools.py # Unit tests for 131 MCP tools
973
+ ├── test_tools.py # Unit tests for 224 MCP tools
953
974
  ├── test_resources.py # Tests for 8 MCP Resources
954
975
  ├── test_prompts.py # Tests for 8 MCP Prompts
955
976
  └── test_server.py # Server initialization tests
956
977
  ```
957
978
 
958
- **216 tests covering**: tool registration, resource exposure, prompt generation, server initialization, non-destructive mode, secret masking, error handling, transport methods, CLI commands, and browser automation.
979
+ **234 tests covering**: tool registration, resource exposure, prompt generation, server initialization, non-destructive mode, secret masking, error handling, transport methods, CLI commands, browser automation, and ecosystem tools.
959
980
 
960
981
  ### Code Quality
961
982
 
@@ -9,9 +9,11 @@ kubectl_mcp_server.egg-info/requires.txt
9
9
  kubectl_mcp_server.egg-info/top_level.txt
10
10
  kubectl_mcp_tool/__init__.py
11
11
  kubectl_mcp_tool/__main__.py
12
+ kubectl_mcp_tool/crd_detector.py
12
13
  kubectl_mcp_tool/diagnostics.py
13
14
  kubectl_mcp_tool/k8s_config.py
14
15
  kubectl_mcp_tool/mcp_server.py
16
+ kubectl_mcp_tool/safety.py
15
17
  kubectl_mcp_tool/auth/__init__.py
16
18
  kubectl_mcp_tool/auth/config.py
17
19
  kubectl_mcp_tool/auth/scopes.py
@@ -21,21 +23,40 @@ kubectl_mcp_tool/cli/__main__.py
21
23
  kubectl_mcp_tool/cli/cli.py
22
24
  kubectl_mcp_tool/cli/errors.py
23
25
  kubectl_mcp_tool/cli/output.py
26
+ kubectl_mcp_tool/config/__init__.py
27
+ kubectl_mcp_tool/config/loader.py
28
+ kubectl_mcp_tool/config/schema.py
29
+ kubectl_mcp_tool/observability/__init__.py
30
+ kubectl_mcp_tool/observability/metrics.py
31
+ kubectl_mcp_tool/observability/stats.py
32
+ kubectl_mcp_tool/observability/tracing.py
24
33
  kubectl_mcp_tool/prompts/__init__.py
34
+ kubectl_mcp_tool/prompts/builtin.py
35
+ kubectl_mcp_tool/prompts/custom.py
25
36
  kubectl_mcp_tool/prompts/prompts.py
26
37
  kubectl_mcp_tool/resources/__init__.py
27
38
  kubectl_mcp_tool/resources/resources.py
28
39
  kubectl_mcp_tool/tools/__init__.py
40
+ kubectl_mcp_tool/tools/backup.py
29
41
  kubectl_mcp_tool/tools/browser.py
42
+ kubectl_mcp_tool/tools/capi.py
43
+ kubectl_mcp_tool/tools/certs.py
44
+ kubectl_mcp_tool/tools/cilium.py
30
45
  kubectl_mcp_tool/tools/cluster.py
31
46
  kubectl_mcp_tool/tools/core.py
32
47
  kubectl_mcp_tool/tools/cost.py
33
48
  kubectl_mcp_tool/tools/deployments.py
34
49
  kubectl_mcp_tool/tools/diagnostics.py
50
+ kubectl_mcp_tool/tools/gitops.py
35
51
  kubectl_mcp_tool/tools/helm.py
52
+ kubectl_mcp_tool/tools/keda.py
53
+ kubectl_mcp_tool/tools/kiali.py
54
+ kubectl_mcp_tool/tools/kubevirt.py
36
55
  kubectl_mcp_tool/tools/networking.py
37
56
  kubectl_mcp_tool/tools/operations.py
38
57
  kubectl_mcp_tool/tools/pods.py
58
+ kubectl_mcp_tool/tools/policy.py
59
+ kubectl_mcp_tool/tools/rollouts.py
39
60
  kubectl_mcp_tool/tools/security.py
40
61
  kubectl_mcp_tool/tools/storage.py
41
62
  kubectl_mcp_tool/tools/ui.py
@@ -46,7 +67,12 @@ tests/conftest.py
46
67
  tests/test_auth.py
47
68
  tests/test_browser.py
48
69
  tests/test_cli.py
70
+ tests/test_config.py
71
+ tests/test_ecosystem.py
72
+ tests/test_mcp_integration.py
73
+ tests/test_observability.py
49
74
  tests/test_prompts.py
50
75
  tests/test_resources.py
76
+ tests/test_safety.py
51
77
  tests/test_server.py
52
78
  tests/test_tools.py
@@ -7,7 +7,7 @@ with Kubernetes clusters through natural language commands.
7
7
  For more information, see: https://github.com/rohitg00/kubectl-mcp-server
8
8
  """
9
9
 
10
- __version__ = "1.15.0"
10
+ __version__ = "1.17.0"
11
11
 
12
12
  from .mcp_server import MCPServer
13
13
  from .diagnostics import run_diagnostics, check_kubectl_installation, check_cluster_connection
@@ -37,6 +37,7 @@ from .output import (
37
37
  format_error,
38
38
  format_success,
39
39
  )
40
+ from ..safety import SafetyMode, set_safety_mode, get_mode_info
40
41
 
41
42
  # Logging setup
42
43
  log_file = os.environ.get("MCP_LOG_FILE")
@@ -56,18 +57,49 @@ logging.basicConfig(
56
57
  logger = logging.getLogger("kubectl-mcp-cli")
57
58
 
58
59
 
59
- async def serve_stdio():
60
- server = MCPServer("kubernetes")
60
+ async def serve_stdio(
61
+ read_only: bool = False,
62
+ disable_destructive: bool = False,
63
+ config_file: Optional[str] = None,
64
+ ):
65
+ server = MCPServer(
66
+ "kubernetes",
67
+ read_only=read_only,
68
+ disable_destructive=disable_destructive,
69
+ config_file=config_file,
70
+ )
61
71
  await server.serve_stdio()
62
72
 
63
73
 
64
- async def serve_sse(host: str, port: int):
65
- server = MCPServer("kubernetes")
74
+ async def serve_sse(
75
+ host: str,
76
+ port: int,
77
+ read_only: bool = False,
78
+ disable_destructive: bool = False,
79
+ config_file: Optional[str] = None,
80
+ ):
81
+ server = MCPServer(
82
+ "kubernetes",
83
+ read_only=read_only,
84
+ disable_destructive=disable_destructive,
85
+ config_file=config_file,
86
+ )
66
87
  await server.serve_sse(host=host, port=port)
67
88
 
68
89
 
69
- async def serve_http(host: str, port: int):
70
- server = MCPServer("kubernetes")
90
+ async def serve_http(
91
+ host: str,
92
+ port: int,
93
+ read_only: bool = False,
94
+ disable_destructive: bool = False,
95
+ config_file: Optional[str] = None,
96
+ ):
97
+ server = MCPServer(
98
+ "kubernetes",
99
+ read_only=read_only,
100
+ disable_destructive=disable_destructive,
101
+ config_file=config_file,
102
+ )
71
103
  await server.serve_http(host=host, port=port)
72
104
 
73
105
 
@@ -282,12 +314,16 @@ def cmd_info(args):
282
314
  except Exception:
283
315
  pass
284
316
 
317
+ # Get safety mode info
318
+ mode_info = get_mode_info()
319
+
285
320
  print(format_server_info(
286
321
  version=__version__,
287
322
  tool_count=len(tools),
288
323
  resource_count=len(resources),
289
324
  prompt_count=len(prompts),
290
325
  context=context,
326
+ safety_mode=mode_info,
291
327
  as_json=getattr(args, 'json', False)
292
328
  ))
293
329
  return ErrorCode.SUCCESS
@@ -407,6 +443,16 @@ def cmd_doctor(args):
407
443
  except ImportError:
408
444
  checks.append({"name": "fastmcp", "status": "error", "details": "fastmcp not installed"})
409
445
 
446
+ # Check safety mode
447
+ mode_info = get_mode_info()
448
+ mode = mode_info.get("mode", "normal")
449
+ if mode == "normal":
450
+ checks.append({"name": "safety_mode", "status": "ok", "version": mode, "details": "All operations allowed"})
451
+ elif mode == "read_only":
452
+ checks.append({"name": "safety_mode", "status": "warning", "version": mode, "details": "Write operations blocked"})
453
+ else:
454
+ checks.append({"name": "safety_mode", "status": "warning", "version": mode, "details": "Destructive operations blocked"})
455
+
410
456
  print(format_doctor_results(checks, as_json=getattr(args, 'json', False)))
411
457
 
412
458
  # Return error code if any critical checks failed
@@ -453,6 +499,9 @@ Environment Variables:
453
499
  )
454
500
  serve_parser.add_argument("--host", type=str, default="0.0.0.0", help="Host for SSE/HTTP (default: 0.0.0.0)")
455
501
  serve_parser.add_argument("--port", type=int, default=8000, help="Port for SSE/HTTP (default: 8000)")
502
+ serve_parser.add_argument("--config", type=str, default=None, help="Path to TOML configuration file")
503
+ serve_parser.add_argument("--read-only", action="store_true", help="Enable read-only mode (block all write operations)")
504
+ serve_parser.add_argument("--disable-destructive", action="store_true", help="Disable destructive operations (allow create/update, block delete)")
456
505
 
457
506
  # version command (existing)
458
507
  subparsers.add_parser("version", help="Show version")
@@ -507,12 +556,37 @@ Environment Variables:
507
556
 
508
557
  try:
509
558
  if args.command == "serve":
559
+ # Log safety mode (actual mode is applied in MCPServer)
560
+ if args.read_only:
561
+ logger.info("Starting server in READ-ONLY mode")
562
+ elif args.disable_destructive:
563
+ logger.info("Starting server with destructive operations disabled")
564
+
565
+ if args.config:
566
+ logger.info(f"Loading configuration from: {args.config}")
567
+
510
568
  if args.transport == "stdio":
511
- asyncio.run(serve_stdio())
569
+ asyncio.run(serve_stdio(
570
+ read_only=args.read_only,
571
+ disable_destructive=args.disable_destructive,
572
+ config_file=args.config,
573
+ ))
512
574
  elif args.transport == "sse":
513
- asyncio.run(serve_sse(args.host, args.port))
575
+ asyncio.run(serve_sse(
576
+ host=args.host,
577
+ port=args.port,
578
+ read_only=args.read_only,
579
+ disable_destructive=args.disable_destructive,
580
+ config_file=args.config,
581
+ ))
514
582
  elif args.transport in ("http", "streamable-http"):
515
- asyncio.run(serve_http(args.host, args.port))
583
+ asyncio.run(serve_http(
584
+ host=args.host,
585
+ port=args.port,
586
+ read_only=args.read_only,
587
+ disable_destructive=args.disable_destructive,
588
+ config_file=args.config,
589
+ ))
516
590
 
517
591
  elif args.command == "version":
518
592
  from .. import __version__