kubectl-mcp-server 1.12.0__py3-none-any.whl → 1.13.0__py3-none-any.whl

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.
@@ -1,14 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kubectl-mcp-server
3
- Version: 1.12.0
4
- Summary: A Model Context Protocol (MCP) server for Kubernetes with 121+ tools, 8 resources, and 8 prompts
3
+ Version: 1.13.0
4
+ Summary: A Model Context Protocol (MCP) server for Kubernetes with 127+ 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
8
8
  Project-URL: Bug Tracker, https://github.com/rohitg00/kubectl-mcp-server/issues
9
9
  Project-URL: Documentation, https://github.com/rohitg00/kubectl-mcp-server#readme
10
10
  Project-URL: Source, https://github.com/rohitg00/kubectl-mcp-server
11
- Keywords: kubernetes,mcp,model-context-protocol,kubectl,helm,ai-assistant,claude,cursor,windsurf,fastmcp,devops,cloud-native
11
+ Keywords: kubernetes,mcp,model-context-protocol,kubectl,helm,ai-assistant,claude,cursor,windsurf,fastmcp,devops,cloud-native,mcp-ui
12
12
  Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.9
14
14
  Classifier: Programming Language :: Python :: 3.10
@@ -38,6 +38,10 @@ Requires-Dist: cryptography>=42.0.2
38
38
  Requires-Dist: rich>=13.0.0
39
39
  Requires-Dist: aiohttp>=3.8.0
40
40
  Requires-Dist: aiohttp-sse>=2.1.0
41
+ Provides-Extra: ui
42
+ Requires-Dist: mcp-ui-server>=0.5.0; extra == "ui"
43
+ Provides-Extra: all
44
+ Requires-Dist: mcp-ui-server>=0.5.0; extra == "all"
41
45
  Dynamic: author
42
46
  Dynamic: author-email
43
47
  Dynamic: classifier
@@ -47,6 +51,7 @@ Dynamic: home-page
47
51
  Dynamic: keywords
48
52
  Dynamic: license-file
49
53
  Dynamic: project-url
54
+ Dynamic: provides-extra
50
55
  Dynamic: requires-dist
51
56
  Dynamic: requires-python
52
57
  Dynamic: summary
@@ -95,7 +100,7 @@ Works with all MCP-compatible AI assistants:
95
100
 
96
101
  ## Features
97
102
 
98
- ### 121 MCP Tools for Complete Kubernetes Management
103
+ ### 127 MCP Tools for Complete Kubernetes Management
99
104
 
100
105
  | Category | Tools |
101
106
  |----------|-------|
@@ -119,6 +124,7 @@ Works with all MCP-compatible AI assistants:
119
124
  | **Autoscaling** | `get_hpa`, `get_pdb` |
120
125
  | **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` |
121
126
  | **Advanced** | `kubectl_generic`, `kubectl_explain`, `get_api_resources`, `port_forward`, `get_resource_usage`, `node_management` |
127
+ | **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` |
122
128
 
123
129
  ### MCP Resources (FastMCP 3)
124
130
 
@@ -166,6 +172,7 @@ Pre-built workflow prompts for common Kubernetes operations:
166
172
  - **Helm v3**: Full Helm chart lifecycle management
167
173
  - **Cost Optimization**: Resource recommendations, idle resource detection, usage analysis
168
174
  - **FastMCP 3**: MCP Resources and Prompts for enhanced AI workflows
175
+ - **MCP-UI Support**: Interactive HTML dashboards for compatible hosts (Goose, LibreChat)
169
176
 
170
177
  ## Installation
171
178
 
@@ -189,6 +196,9 @@ npm install -g kubectl-mcp-server
189
196
  ```bash
190
197
  pip install kubectl-mcp-server
191
198
 
199
+ # With MCP-UI support (interactive dashboards)
200
+ pip install kubectl-mcp-server[ui]
201
+
192
202
  # Legacy alias (still works for backward compatibility)
193
203
  pip install kubectl-mcp-tool
194
204
  ```
@@ -389,6 +399,46 @@ python -m kubectl_mcp_tool.mcp_server --transport http --port 8000
389
399
  |----------|-------------|
390
400
  | `MCP_BROWSER_ENABLED` | Enable browser automation tools (default: `false`) |
391
401
 
402
+ ## MCP-UI Tools (Interactive Dashboards)
403
+
404
+ Enable rich HTML dashboards in MCP-UI compatible hosts (Goose, LibreChat, Nanobot).
405
+
406
+ ### Installation
407
+
408
+ ```bash
409
+ # Install with MCP-UI support
410
+ pip install kubectl-mcp-server[ui]
411
+ ```
412
+
413
+ ### 6 UI Dashboard Tools
414
+
415
+ | Tool | Description |
416
+ |------|-------------|
417
+ | `show_pod_logs_ui` | Interactive log viewer with search and filtering |
418
+ | `show_pods_dashboard_ui` | Pods table with status, restarts, and filtering |
419
+ | `show_resource_yaml_ui` | YAML viewer with syntax highlighting |
420
+ | `show_cluster_overview_ui` | Cluster dashboard with nodes, namespaces, workloads |
421
+ | `show_events_timeline_ui` | Events timeline with severity filtering |
422
+ | `render_k8s_dashboard_screenshot` | Render any dashboard as PNG screenshot |
423
+
424
+ ### Features
425
+
426
+ - **Dark theme**: Catppuccin-style dark UI optimized for terminals
427
+ - **Graceful fallback**: Returns JSON data if MCP-UI not supported
428
+ - **Screenshot rendering**: Works with agent-browser for universal compatibility
429
+ - **No external dependencies**: Pure HTML/CSS/JS dashboards
430
+
431
+ ### Compatibility
432
+
433
+ | Host | MCP-UI Support | Fallback |
434
+ |------|----------------|----------|
435
+ | Goose | ✅ Full | - |
436
+ | LibreChat | ✅ Full | - |
437
+ | Nanobot | ✅ Full | - |
438
+ | Claude Desktop | ❌ | JSON + Screenshot |
439
+ | Cursor | ❌ | JSON + Screenshot |
440
+ | Other MCP Clients | ❌ | JSON + Screenshot |
441
+
392
442
  ## Browser Tools (Optional Module)
393
443
 
394
444
  Enable browser automation for web-based K8s operations using [agent-browser](https://github.com/vercel-labs/agent-browser).
@@ -493,16 +543,35 @@ arctl mcp install io.github.rohitg00/kubectl-mcp-server
493
543
 
494
544
  ### agentgateway Integration
495
545
 
496
- Use with [agentgateway](https://github.com/agentgateway/agentgateway) for unified MCP routing:
546
+ Use with [agentgateway](https://github.com/agentgateway/agentgateway) for unified MCP routing to multiple MCP servers.
497
547
 
498
548
  ```bash
499
- # Install agentgateway
500
- cargo install agentgateway
549
+ # Start kubectl-mcp-server with streamable-http transport
550
+ kubectl-mcp-server --transport streamable-http --port 8000
551
+ ```
501
552
 
502
- # Configure kubectl-mcp-server as upstream
553
+ Create `gateway.yaml`:
554
+
555
+ ```yaml
556
+ binds:
557
+ - port: 3000
558
+ listeners:
559
+ - routes:
560
+ - backends:
561
+ - mcp:
562
+ targets:
563
+ - name: kubectl-mcp-server
564
+ mcp:
565
+ host: http://localhost:8000/mcp
566
+ ```
567
+
568
+ ```bash
569
+ # Run agentgateway
503
570
  agentgateway --config gateway.yaml
504
571
  ```
505
572
 
573
+ Connect MCP clients to `http://localhost:3000/mcp`. All 127 tools are discoverable through the gateway.
574
+
506
575
  ## Kubernetes Deployment
507
576
 
508
577
  Deploy kubectl-mcp-server directly in your Kubernetes cluster for centralized access.
@@ -569,7 +638,7 @@ See [deploy/](deploy/) for full manifests and configuration options.
569
638
 
570
639
  ### kagent Integration (AI Agents)
571
640
 
572
- [kagent](https://github.com/kagent-dev/kagent) is a Kubernetes-native AI agent framework (CNCF project). Register kubectl-mcp-server as a ToolServer to give your agents 121 K8s management tools.
641
+ [kagent](https://github.com/kagent-dev/kagent) is a Kubernetes-native AI agent framework (CNCF project). Register kubectl-mcp-server as a ToolServer to give your agents 127 K8s management tools.
573
642
 
574
643
  ```bash
575
644
  # Install kagent
@@ -601,7 +670,7 @@ The MCP server implements the [Model Context Protocol](https://github.com/modelc
601
670
  ```
602
671
  kubectl_mcp_tool/
603
672
  ├── mcp_server.py # Main server (FastMCP, transports)
604
- ├── tools/ # 121 MCP tools organized by category
673
+ ├── tools/ # 127 MCP tools organized by category
605
674
  │ ├── pods.py # Pod management & diagnostics
606
675
  │ ├── deployments.py # Deployments, StatefulSets, DaemonSets
607
676
  │ ├── core.py # Namespaces, ConfigMaps, Secrets
@@ -612,7 +681,8 @@ kubectl_mcp_tool/
612
681
  │ ├── helm.py # Complete Helm v3 operations
613
682
  │ ├── operations.py # kubectl apply/patch/describe/etc
614
683
  │ ├── diagnostics.py # Metrics, namespace comparison
615
- └── cost.py # Resource optimization & cost analysis
684
+ ├── cost.py # Resource optimization & cost analysis
685
+ │ └── ui.py # MCP-UI interactive dashboards
616
686
  ├── resources/ # 8 MCP Resources for data exposure
617
687
  ├── prompts/ # 8 MCP Prompts for workflows
618
688
  └── cli/ # CLI interface
@@ -707,5 +777,4 @@ MIT License - see [LICENSE](LICENSE) for details.
707
777
  - [PyPI Package](https://pypi.org/project/kubectl-mcp-server/)
708
778
  - [npm Package](https://www.npmjs.com/package/kubectl-mcp-server)
709
779
  - [Docker Hub](https://hub.docker.com/r/rohitghumare64/kubectl-mcp-server)
710
- - [agentregistry](https://aregistry.ai) - MCP Server Registry
711
780
  - [GitHub Issues](https://github.com/rohitg00/kubectl-mcp-server/issues)
@@ -1,9 +1,9 @@
1
- kubectl_mcp_server-1.12.0.dist-info/licenses/LICENSE,sha256=nH9Z0W0WNH2oQ4cPrBAU8ldDcHfeI6NUbkSGiazYWgQ,1070
2
- kubectl_mcp_tool/__init__.py,sha256=Z_IyVF0iPum8NzMC_5yXS1P_1vwrW9yQUalEfCEjjzs,580
1
+ kubectl_mcp_server-1.13.0.dist-info/licenses/LICENSE,sha256=nH9Z0W0WNH2oQ4cPrBAU8ldDcHfeI6NUbkSGiazYWgQ,1070
2
+ kubectl_mcp_tool/__init__.py,sha256=vSKEsUXD6nvbpSu2otStmS9W2mKfF07Yj7WE1lyY-N8,580
3
3
  kubectl_mcp_tool/__main__.py,sha256=CE6cTD6PA71Ap0i5_gE17Pb9FcedOJmtGRNzZ5-TFSc,1490
4
4
  kubectl_mcp_tool/diagnostics.py,sha256=uwolSoHadRkB-J8PAsabbexfj6sTNCIIRRrABBRXoTU,11776
5
5
  kubectl_mcp_tool/k8s_config.py,sha256=StM6Bb1SAVbFgNg5wKRmb_9aQ1wxEHtriCTIjvEFc5U,7853
6
- kubectl_mcp_tool/mcp_server.py,sha256=OUrW04BRVpmsr1-8NDTjC1vaJ0VQCbjkcXkavy9lzVs,20927
6
+ kubectl_mcp_tool/mcp_server.py,sha256=T1ZQWw9c69VDM11ECxavTc6NYWcjy4q1FpkqW23fiwc,21309
7
7
  kubectl_mcp_tool/auth/__init__.py,sha256=ot8ivZZkDtV8Rg0y1UYruwobKCPyxX1svqh35wWxKvY,347
8
8
  kubectl_mcp_tool/auth/config.py,sha256=wi3wuJNMyDqMeluDHL0MaJyedIFv5CFVxiUaEVaTvzk,2267
9
9
  kubectl_mcp_tool/auth/scopes.py,sha256=KPmuGO0SrTkjzlElWFOV29ie9apTdMklOCkiA-965lI,6147
@@ -15,7 +15,7 @@ kubectl_mcp_tool/prompts/__init__.py,sha256=BacBNfoVxow6aci8Zzcfam3m1oM7yYzM0IRT
15
15
  kubectl_mcp_tool/prompts/prompts.py,sha256=ZfmTCio8NqOYYxF8VVo9f6VWGCS34J8tvmBfhNblr58,22942
16
16
  kubectl_mcp_tool/resources/__init__.py,sha256=ERkn0ErlaGi9-dybv4wrAaT8WretvNp6K002h7Agjno,83
17
17
  kubectl_mcp_tool/resources/resources.py,sha256=kvK4OM3Ox5cFvWDqJBTXOfBgnRYdoqdvvjsdCg0PJfY,12713
18
- kubectl_mcp_tool/tools/__init__.py,sha256=mlvnz6P99jKwj6S8NJuX9UyaOLU1ARa5-CCkcc-3ju0,958
18
+ kubectl_mcp_tool/tools/__init__.py,sha256=tlm6TtwzHbGqQhIAQNAByLjgpDiim3eqdP89Y3JZfiA,1057
19
19
  kubectl_mcp_tool/tools/browser.py,sha256=PDT7Uj7CCBQI9CFAaMSM_3i6v3NXIAf-mwd1y7iESa8,15193
20
20
  kubectl_mcp_tool/tools/cluster.py,sha256=qQh6bET3-KQ8nkB2GnB8A7gohbJLrx6_K11TPYR6AII,11956
21
21
  kubectl_mcp_tool/tools/core.py,sha256=zL0bGCxPGocH34ueZlSsBVsNp_tUL0C2gqyjlJljMXY,15009
@@ -28,18 +28,19 @@ kubectl_mcp_tool/tools/operations.py,sha256=egYhlmqVZygddCkDJ2GDr89EjApps_PssWra
28
28
  kubectl_mcp_tool/tools/pods.py,sha256=7Ezk9khxoKsJYw8xEyBMjFdpLXmisGGrnKVVJ3rbhLE,23801
29
29
  kubectl_mcp_tool/tools/security.py,sha256=Tu5SFPoeSgXkoc7WEpnnmdrMDJaB5znDoIVyyAy1Rho,12550
30
30
  kubectl_mcp_tool/tools/storage.py,sha256=lXWp7131P39eTAsaMFrrJbWPuOGfDolVbD6npTBy1eQ,5124
31
+ kubectl_mcp_tool/tools/ui.py,sha256=HHi0KM2JTvZFpQjo5V6XkJf02hxFoasec7uyNY5wuuo,39702
31
32
  kubectl_mcp_tool/utils/__init__.py,sha256=CHBCpaXwt994DlqyRFkkRky2TK8OmmDl0Gyc28369gI,348
32
33
  kubectl_mcp_tool/utils/helpers.py,sha256=W--wiVSKKqmjpxxdLT0J6rmhOQcp1OFk9jLrtQUVpGw,2444
33
34
  tests/__init__.py,sha256=qZPXYXv3whkkWhi61Ngzj09GHnIFlVSZrajE0XRk55o,290
34
35
  tests/conftest.py,sha256=6054YlpuGleV3Wg8BnVj4lnKWhGk-Eqc9JYTXxOmsXs,10782
35
36
  tests/test_auth.py,sha256=PoESfWiN92wSGUdVwLL3Z1AP6C1zUsVmgTI7Q8ZdlxM,11074
36
- tests/test_browser.py,sha256=Oav6N4ivr_DW9038bVl31eAACt6vQORTr0uRgfeLs9A,14074
37
+ tests/test_browser.py,sha256=kgkcsTzOtToCpkmoG2w8iLCpW1xKrYqXjdGjF8UmwoY,14074
37
38
  tests/test_prompts.py,sha256=3TcJUvSNxhTqfySW6DCrW9MwiMDumciLQRjjbucwqlA,17803
38
39
  tests/test_resources.py,sha256=Z0Ex8WdRz-B3VZa1s0eAaDDGbhy7dRdqy1uFVOe2Qbo,12689
39
40
  tests/test_server.py,sha256=lLvgbqutnivSgQMNrki0O48whBQt0UXjdwT047nf0nw,14415
40
- tests/test_tools.py,sha256=MYJn8YlZIg2boX0OGTXyONRuA3M7vYZEATkwSVsya0c,30241
41
- kubectl_mcp_server-1.12.0.dist-info/METADATA,sha256=Czr2PxQzTXEnV2Lc0d4d-wezu5rDBkSj_Fry1pajS_Q,23715
42
- kubectl_mcp_server-1.12.0.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
43
- kubectl_mcp_server-1.12.0.dist-info/entry_points.txt,sha256=zeOxQGaNC4r58deEmqsLCU5hfMjF0VqFUt9P5wWsKEM,109
44
- kubectl_mcp_server-1.12.0.dist-info/top_level.txt,sha256=o5IpfOGG-lqU8rVWJeK9aYC0r4f6qEX09QiBhZlYbkQ,23
45
- kubectl_mcp_server-1.12.0.dist-info/RECORD,,
41
+ tests/test_tools.py,sha256=bQMcVrXvWh1PpchcEI1aMkIFXlHmF_trJDI3Lg8kKIk,30516
42
+ kubectl_mcp_server-1.13.0.dist-info/METADATA,sha256=v_5xuIS0PK1G2iQ1RAHBJMTkdt3FcKuC81hejJlzV7k,26011
43
+ kubectl_mcp_server-1.13.0.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
44
+ kubectl_mcp_server-1.13.0.dist-info/entry_points.txt,sha256=zeOxQGaNC4r58deEmqsLCU5hfMjF0VqFUt9P5wWsKEM,109
45
+ kubectl_mcp_server-1.13.0.dist-info/top_level.txt,sha256=o5IpfOGG-lqU8rVWJeK9aYC0r4f6qEX09QiBhZlYbkQ,23
46
+ kubectl_mcp_server-1.13.0.dist-info/RECORD,,
@@ -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.12.0"
10
+ __version__ = "1.13.0"
11
11
 
12
12
  from .mcp_server import MCPServer
13
13
  from .diagnostics import run_diagnostics, check_kubectl_installation, check_cluster_connection
@@ -43,6 +43,8 @@ from kubectl_mcp_tool.tools import (
43
43
  register_cost_tools,
44
44
  register_browser_tools,
45
45
  is_browser_available,
46
+ register_ui_tools,
47
+ is_ui_available,
46
48
  )
47
49
  from kubectl_mcp_tool.resources import register_resources
48
50
  from kubectl_mcp_tool.prompts import register_prompts
@@ -187,6 +189,13 @@ class MCPServer:
187
189
  else:
188
190
  logger.debug("Browser tools disabled (set MCP_BROWSER_ENABLED=true to enable)")
189
191
 
192
+ # Register MCP-UI tools for interactive dashboards (optional)
193
+ if is_ui_available():
194
+ register_ui_tools(self.server, self.non_destructive)
195
+ logger.info("MCP-UI tools enabled (mcp-ui-server installed)")
196
+ else:
197
+ logger.debug("MCP-UI tools disabled (install mcp-ui-server to enable)")
198
+
190
199
  def setup_resources(self):
191
200
  """Set up MCP resources for Kubernetes data exposure."""
192
201
  register_resources(self.server)
@@ -10,6 +10,7 @@ from .operations import register_operations_tools
10
10
  from .diagnostics import register_diagnostics_tools
11
11
  from .cost import register_cost_tools
12
12
  from .browser import register_browser_tools, is_browser_available
13
+ from .ui import register_ui_tools, is_ui_available
13
14
 
14
15
  __all__ = [
15
16
  "register_helm_tools",
@@ -25,4 +26,6 @@ __all__ = [
25
26
  "register_cost_tools",
26
27
  "register_browser_tools",
27
28
  "is_browser_available",
29
+ "register_ui_tools",
30
+ "is_ui_available",
28
31
  ]