k8s-browser
Browser automation for Kubernetes dashboards and web UIs. Use when interacting with Kubernetes Dashboard, Grafana, ArgoCD UI, or other web interfaces. Requires MCP_BROWSER_ENABLED=true.
Best use case
k8s-browser is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Browser automation for Kubernetes dashboards and web UIs. Use when interacting with Kubernetes Dashboard, Grafana, ArgoCD UI, or other web interfaces. Requires MCP_BROWSER_ENABLED=true.
Teams using k8s-browser should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/k8s-browser/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How k8s-browser Compares
| Feature / Agent | k8s-browser | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Browser automation for Kubernetes dashboards and web UIs. Use when interacting with Kubernetes Dashboard, Grafana, ArgoCD UI, or other web interfaces. Requires MCP_BROWSER_ENABLED=true.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Browser Automation for Kubernetes
Automate Kubernetes web UIs using kubectl-mcp-server's browser tools (26 tools).
## When to Apply
Use this skill when:
- User mentions: "dashboard", "Grafana", "ArgoCD UI", "web interface", "screenshot"
- Operations: navigating K8s dashboards, capturing screenshots, automating web UIs
- Keywords: "browser", "click", "screenshot", "web", "UI automation"
## Priority Rules
| Priority | Rule | Impact | Tools |
|----------|------|--------|-------|
| 1 | Enable MCP_BROWSER_ENABLED first | CRITICAL | Environment variable |
| 2 | Open URL before interactions | HIGH | `browser_open` |
| 3 | Wait for elements before clicking | HIGH | `browser_wait_for_selector` |
| 4 | Take screenshots for verification | MEDIUM | `browser_screenshot` |
## Quick Reference
| Task | Tool | Example |
|------|------|---------|
| Open URL | `browser_open` | `browser_open(url)` |
| Click element | `browser_click` | `browser_click(selector)` |
| Take screenshot | `browser_screenshot` | `browser_screenshot(path)` |
| Wait for element | `browser_wait_for_selector` | `browser_wait_for_selector(selector)` |
## Prerequisites
- **Browser Tools Enabled**: Required
```bash
export MCP_BROWSER_ENABLED=true
```
## Enable Browser Tools
```bash
export MCP_BROWSER_ENABLED=true
# Optional: Cloud provider
export MCP_BROWSER_PROVIDER=browserbase # or browseruse
export BROWSERBASE_API_KEY=bb_...
```
## Basic Navigation
```python
# Open URL
browser_open(url="http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/")
# Open with auth headers
browser_open_with_headers(
url="https://grafana.example.com",
headers={"Authorization": "Bearer token123"}
)
# Navigate
browser_navigate(url="https://argocd.example.com/applications")
# Go back/forward
browser_back()
browser_forward()
# Refresh
browser_refresh()
```
## Screenshots and Content
```python
# Take screenshot
browser_screenshot(path="dashboard.png")
# Full page screenshot
browser_screenshot(path="full-page.png", full_page=True)
# Get page content
browser_content()
# Get page title
browser_title()
# Get current URL
browser_url()
```
## Interactions
```python
# Click element
browser_click(selector="button.submit")
browser_click(selector="text=Deploy")
browser_click(selector="#sync-button")
# Type text
browser_type(selector="input[name=search]", text="my-deployment")
browser_type(selector=".search-box", text="nginx")
# Fill form
browser_fill(selector="#namespace", text="production")
# Select dropdown
browser_select(selector="select#cluster", value="prod-cluster")
# Press key
browser_press(key="Enter")
browser_press(key="Escape")
```
## Waiting
```python
# Wait for element
browser_wait_for_selector(selector=".loading", state="hidden")
browser_wait_for_selector(selector=".data-table", state="visible")
# Wait for navigation
browser_wait_for_navigation()
# Wait for network idle
browser_wait_for_load_state(state="networkidle")
```
## Session Management
```python
# List sessions
browser_session_list()
# Switch session
browser_session_switch(session_id="my-session")
# Close browser
browser_close()
```
## Viewport and Device
```python
# Set viewport size
browser_set_viewport(width=1920, height=1080)
# Emulate device
browser_set_viewport(device="iPhone 12")
```
## Kubernetes Dashboard Workflow
```python
# 1. Start kubectl proxy
# kubectl proxy &
# 2. Open dashboard
browser_open(url="http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/")
# 3. Navigate to workloads
browser_click(selector="text=Workloads")
# 4. Take screenshot
browser_screenshot(path="workloads.png")
# 5. Search for deployment
browser_type(selector="input[placeholder*=search]", text="nginx")
browser_press(key="Enter")
```
## Grafana Dashboard Workflow
```python
# 1. Open Grafana
browser_open_with_headers(
url="https://grafana.example.com/d/k8s-cluster",
headers={"Authorization": "Bearer admin-token"}
)
# 2. Set time range
browser_click(selector="button[aria-label='Time picker']")
browser_click(selector="text=Last 1 hour")
# 3. Screenshot dashboard
browser_screenshot(path="grafana-cluster.png", full_page=True)
```
## ArgoCD UI Workflow
```python
# 1. Open ArgoCD
browser_open(url="https://argocd.example.com")
# 2. Login
browser_fill(selector="input[name=username]", text="admin")
browser_fill(selector="input[name=password]", text="password")
browser_click(selector="button[type=submit]")
# 3. Navigate to app
browser_wait_for_selector(selector=".applications-list")
browser_click(selector="text=my-application")
# 4. Sync application
browser_click(selector="button.sync-button")
browser_click(selector="text=Synchronize")
```
## Related Skills
- [k8s-gitops](../k8s-gitops/SKILL.md) - ArgoCD CLI tools
- [k8s-diagnostics](../k8s-diagnostics/SKILL.md) - Cluster analysisRelated Skills
k8s-vind
Manage vCluster (virtual Kubernetes clusters) instances using vind. Use when creating, managing, or operating lightweight virtual clusters for development, testing, or multi-tenancy.
k8s-troubleshoot
Debug Kubernetes pods, nodes, and workloads. Use when pods are failing, containers crash, nodes are unhealthy, or users mention debugging, troubleshooting, or diagnosing Kubernetes issues.
k8s-storage
Kubernetes storage management for PVCs, storage classes, and persistent volumes. Use when provisioning storage, managing volumes, or troubleshooting storage issues.
k8s-service-mesh
Manage Istio service mesh for traffic management, security, and observability. Use for traffic shifting, canary releases, mTLS, and service mesh troubleshooting.
k8s-security
Audit Kubernetes RBAC, enforce policies, and manage secrets. Use for security reviews, permission audits, policy enforcement with Kyverno/Gatekeeper, and secret management.
k8s-rollouts
Progressive delivery with Argo Rollouts and Flagger. Use when implementing canary deployments, blue-green deployments, or traffic shifting strategies.
k8s-policy
Kubernetes policy management with Kyverno and Gatekeeper. Use when enforcing security policies, validating resources, or auditing policy compliance.
k8s-operations
kubectl operations for applying, patching, deleting, and executing commands on Kubernetes resources. Use when modifying resources, running commands in pods, or managing resource lifecycle.
k8s-networking
Kubernetes networking management for services, ingresses, endpoints, and network policies. Use when configuring connectivity, load balancing, or network isolation.
k8s-multicluster
Manage multiple Kubernetes clusters, switch contexts, and perform cross-cluster operations. Use when working with multiple clusters, comparing environments, or managing cluster lifecycle.
k8s-kubevirt
Virtual machine management with KubeVirt on Kubernetes. Use when creating, managing, or troubleshooting VMs running on Kubernetes clusters.
k8s-kind
Manage kind (Kubernetes IN Docker) local clusters. Use when creating, testing, or developing with local Kubernetes clusters in Docker containers.