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.
- {kubectl_mcp_server-1.12.0.dist-info → kubectl_mcp_server-1.13.0.dist-info}/METADATA +81 -12
- {kubectl_mcp_server-1.12.0.dist-info → kubectl_mcp_server-1.13.0.dist-info}/RECORD +12 -11
- kubectl_mcp_tool/__init__.py +1 -1
- kubectl_mcp_tool/mcp_server.py +9 -0
- kubectl_mcp_tool/tools/__init__.py +3 -0
- kubectl_mcp_tool/tools/ui.py +1068 -0
- tests/test_browser.py +2 -2
- tests/test_tools.py +9 -6
- {kubectl_mcp_server-1.12.0.dist-info → kubectl_mcp_server-1.13.0.dist-info}/WHEEL +0 -0
- {kubectl_mcp_server-1.12.0.dist-info → kubectl_mcp_server-1.13.0.dist-info}/entry_points.txt +0 -0
- {kubectl_mcp_server-1.12.0.dist-info → kubectl_mcp_server-1.13.0.dist-info}/licenses/LICENSE +0 -0
- {kubectl_mcp_server-1.12.0.dist-info → kubectl_mcp_server-1.13.0.dist-info}/top_level.txt +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kubectl-mcp-server
|
|
3
|
-
Version: 1.
|
|
4
|
-
Summary: A Model Context Protocol (MCP) server for Kubernetes with
|
|
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
|
-
###
|
|
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
|
-
#
|
|
500
|
-
|
|
549
|
+
# Start kubectl-mcp-server with streamable-http transport
|
|
550
|
+
kubectl-mcp-server --transport streamable-http --port 8000
|
|
551
|
+
```
|
|
501
552
|
|
|
502
|
-
|
|
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
|
|
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/ #
|
|
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
|
-
│
|
|
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.
|
|
2
|
-
kubectl_mcp_tool/__init__.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
41
|
-
kubectl_mcp_server-1.
|
|
42
|
-
kubectl_mcp_server-1.
|
|
43
|
-
kubectl_mcp_server-1.
|
|
44
|
-
kubectl_mcp_server-1.
|
|
45
|
-
kubectl_mcp_server-1.
|
|
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,,
|
kubectl_mcp_tool/__init__.py
CHANGED
|
@@ -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.
|
|
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
|
kubectl_mcp_tool/mcp_server.py
CHANGED
|
@@ -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
|
]
|