npx claudepluginhub serkan-ozal/browser-devtools-claude --plugin browser-devtools-mcpWant just this skill?
Then install: npx claudepluginhub u/[userId]/[slug]
Automated browser testing and debugging using Browser DevTools MCP. Use when testing web pages, debugging frontend issues, verifying UI behavior, or automating browser interactions.
This skill uses the workspace's default tool permissions.
Browser Testing Skill
Automated browser testing and debugging skill using Browser DevTools MCP.
Page structure: To understand what is on a page, use ARIA snapshot first (a11y_take-aria-snapshot or a11y_take-ax-tree-snapshot), not screenshot. Use screenshot only when you need to verify how something looks visually (e.g. design check, visual bug).
When to Use
This skill activates when:
- User asks to test a web page or application
- User wants to debug frontend issues
- User needs to verify UI behavior
- User asks about page performance or accessibility
- User wants to automate browser interactions
Capabilities
Ref-Based Workflow (Recommended)
- ARIA snapshot first (
a11y_take-aria-snapshot) — Returns refs (e1, e2, …) and a refs map. Options:interactiveOnly,cursorInteractive(for div/span buttons),selector(scope). - Use refs in interactions — Click, fill, hover, etc. accept CSS selector or ref (e.g.
e1,@e1). Refs valid until next snapshot or navigation. - Annotated screenshot —
content_take-screenshotwithannotate: trueoverlays labels [1],[2],… mapping to e1,e2,…
Navigation & Interaction
- Navigate to URLs (
navigation_go-to) — returns ARIA snapshot and refs by default; use response refs for interactions without callinga11y_take-aria-snapshotagain - Same for
navigation_go-back-or-forwardandnavigation_reload(includeSnapshot: true) - Click, fill, hover — selector or ref (e.g.
e1,#submit) - Press keys (
interaction_press-key), scroll (interaction_scroll), drag (interaction_drag)
Content Capture
- Screenshots (
content_take-screenshot) — optionalannotate,annotateContent,cursorInteractive - HTML/text content, PDF
Debugging & Observability
- Get console messages (
o11y_get-console-messages) - Monitor HTTP requests (
o11y_get-http-requests) - Get Web Vitals (
o11y_get-web-vitals) - OpenTelemetry tracing (
o11y_get-trace-id,o11y_set-trace-id)
Accessibility
- ARIA snapshot (
a11y_take-aria-snapshot) — returns refs; options:interactiveOnly,cursorInteractive,selector - AX tree (
a11y_take-ax-tree-snapshot) — bounding box, occlusion, styles
Mocking & Stubbing
- Intercept HTTP requests (
stub_intercept-http-request) - Mock HTTP responses (
stub_mock-http-response) - List stubs (
stub_list) - Clear stubs (
stub_clear)
React DevTools
- Get React component for element (
react_get-component-for-element) - Get element for React component (
react_get-element-for-component)
Code Execution
- Run JavaScript in browser: use execute with
page.evaluate()(e.g.return await page.evaluate(() => document.title)). See commands/browser/execute.md forcallToolandpage. - Run JavaScript in server VM: use execute (no
page; use built-ins andcallTool). On Node platform, execute runs in the session VM (callTool only).
Batch Execution (advanced)
execute— Run custom JavaScript that can call multiple tools in one request viaawait callTool(name, input, returnOutput?). Use to batch click/fill/select/navigation and reduce round-trips. Code runs in async IIFE (no wrapper); browser platform exposespage(Playwright). Prefer when you have a fixed sequence of steps; use individual tools when you need to inspect results between steps. Also supported: browser-devtools-mcp CLI subcommandrun execute, and daemon HTTP API (POST/callwithtoolName: "execute").
Best Practices
- ARIA snapshot first — Do not use screenshot to understand page structure. After navigation, use the refs returned by go-to/go-back-or-forward/reload; otherwise call
a11y_take-aria-snapshot, then use refs (e1, e2) in interactions or take annotated screenshots. - Wait for network idle after navigation before interacting
- Use refs for interactions — Refs from ARIA snapshot are stable; prefer refs over CSS selectors when available
- Annotated screenshots — Use
annotate: truewhen you need visual labels that match refs for vision-driven actions - Re-snapshot after navigation — Refs are invalid after navigation or major DOM changes
Similar Skills
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.