k8s-browser — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited k8s-browser (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Automate Kubernetes web UIs using kubectl-mcp-server's browser tools (26 tools).
Use this skill when:
| 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 |
| 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) |
export MCP_BROWSER_ENABLED=trueexport MCP_BROWSER_ENABLED=true
# Optional: Cloud provider
export MCP_BROWSER_PROVIDER=browserbase # or browseruse
export BROWSERBASE_API_KEY=bb_...# 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()# 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()# 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")# 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")# List sessions
browser_session_list()
# Switch session
browser_session_switch(session_id="my-session")
# Close browser
browser_close()# Set viewport size
browser_set_viewport(width=1920, height=1080)
# Emulate device
browser_set_viewport(device="iPhone 12")# 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")# 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)# 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")~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.