k8s-browser
SKILL.md
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
export MCP_BROWSER_ENABLED=true
Enable Browser Tools
export MCP_BROWSER_ENABLED=true
# Optional: Cloud provider
export MCP_BROWSER_PROVIDER=browserbase # or browseruse
export BROWSERBASE_API_KEY=bb_...
Basic Navigation
# 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
# 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
# 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
# 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
# List sessions
browser_session_list()
# Switch session
browser_session_switch(session_id="my-session")
# Close browser
browser_close()
Viewport and Device
# Set viewport size
browser_set_viewport(width=1920, height=1080)
# Emulate device
browser_set_viewport(device="iPhone 12")
Kubernetes Dashboard Workflow
# 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
# 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
# 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 - ArgoCD CLI tools
- k8s-diagnostics - Cluster analysis
Weekly Installs
6
Repository
rohitg00/kubect…p-serverGitHub Stars
849
First Seen
Jan 28, 2026
Security Audits
Installed on
amp5
gemini-cli5
github-copilot5
codex5
kimi-cli5
opencode5