Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Automate browser tasks using the BrowserMCP MCP server and Chrome extension. Use for navigating websites, filling forms, clicking elements, taking screenshot...
Automate browser tasks using the BrowserMCP MCP server and Chrome extension. Use for navigating websites, filling forms, clicking elements, taking screenshot...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
This skill enables MCP Clients to automate browser interactions through the BrowserMCP protocol. It leverages a local MCP server and a Chrome extension to control the user's actual browser session, allowing for authenticated actions and bypassing common bot detection.
โก Fast: Automation happens locally without network latency ๐ Private: Browser activity stays on the device ๐ค Logged In: Uses existing browser profile with active sessions ๐ฅท Stealth: Avoids basic bot detection and CAPTCHAs via real browser fingerprint
Before using BrowserMCP automation: MCP Server: BrowserMCP server must be running (via npx) Chrome Extension: Browser MCP Chrome extension must be installed and connected Active Tab: The target browser tab must be connected via the extension [!IMPORTANT] The AI can only control tabs that are actively "Connected" via the Browser MCP extension. If you switch tabs, you must reconnect the new tab.
The standard browser automation process follows an iterative approach: flowchart TD A[Navigate to URL] --> B[Take Snapshot] B --> C[Identify Elements] C --> D[Interact: Click/Type/etc] D --> E[Wait for Changes] E --> B E --> F[Verify: Screenshot/Logs]
StepToolPurposeKey Consideration1navigateOpen the target URLEnsure extension is connected first2snapshotCapture ARIA tree to identify interactive elementsRefresh after any page changes3click / typeInteract with page elementsUse exact ref from snapshot4waitPause for dynamic content to loadEssential after navigation/clicks5screenshotVisually verify resultsUse when uncertain about state6get_console_logsDebug JavaScript errorsCheck when interactions fail
ToolUse WhenParametersnavigateOpening a new pageurl - full URL including protocolsnapshotUnderstanding page structureNone - returns ARIA accessibility treeclickActivating buttons/linkselement (description), ref (exact ID from snapshot)typeFilling input fieldselement, ref, text, submit (optional)hoverTriggering hover menuselement, refselect_optionChoosing from dropdownselement, ref, values (array)press_keyKeyboard shortcutskey - e.g., "Enter", "Escape", "ArrowDown"waitAllowing page to loadtime - seconds to waitscreenshotVisual verificationNone - returns PNG imageget_console_logsDebugging errorsNone - returns recent console outputgo_back / go_forwardNavigation historyNone
Navigation: Enter, Escape, Tab Editing: Backspace, Delete Arrows: ArrowUp, ArrowDown, ArrowLeft, ArrowRight Modifiers: Control, Alt, Shift, Meta (combine via modifiers array) Function: F1-F12 Other: Home, End, PageUp, PageDown, Space
// Step 1: Navigate to search engine navigate(url="https://google.com") // Step 2: Type search query (use snapshot to find the ref) type(element="Google search box", ref="e12", text="BrowserMCP automation", submit=true) // Alternative: Type then press Enter separately type(element="Search box", ref="e12", text="BrowserMCP automation") press_key(key="Enter")
// Step 1: Navigate to login page navigate(url="https://example.com/login") // Step 2: Get snapshot to identify form fields snapshot() // Step 3: Fill username field type(element="Username or email field", ref="e5", text="user@example.com") // Step 4: Fill password field type(element="Password field", ref="e7", text="password123") // Step 5: Click login button click(element="Sign in button", ref="e9") // Step 6: Wait for redirect wait(time=2) // Step 7: Verify successful login with screenshot screenshot()
// Navigate to documentation navigate(url="https://docs.browsermcp.io") // Wait for page load wait(time=1) // Capture accessibility tree to understand structure snapshot() // Click on a documentation link click(element="API Reference link", ref="e15") // Wait for content to load wait(time=1) // Take screenshot for verification screenshot() // Check for any JavaScript errors get_console_logs()
// Navigate to page with dynamic content navigate(url="https://example.com/dashboard") // Wait for initial load wait(time=2) // Take snapshot to see available elements snapshot() // Click element that triggers dynamic content click(element="Load more button", ref="e22") // Wait for new content to appear wait(time=2) // Refresh snapshot to see new elements snapshot() // Interact with newly loaded element click(element="New item", ref="e45")
Good: // Take snapshot first, then use exact refs snapshot() click(element="Submit button", ref="e12") Bad: // Guessing selectors without snapshot click(element="button.submit") // May not work with dynamic DOM
Dynamic web applications often load content asynchronously. Always wait after: Navigation to a new page Clicking buttons that trigger requests Submitting forms click(element="Load data button", ref="e8") wait(time=2) // Wait for data to load snapshot() // Then get fresh page structure
Before any automation: Verify the Browser MCP extension is installed Ensure the target tab is connected (user must click "Connect") If connection errors occur, remind the user to reconnect
When interactions fail: // Take screenshot to see current page state screenshot() // Check console for JavaScript errors get_console_logs() // Re-snapshot to see updated element refs snapshot()
BrowserMCP uses the user's actual browser profile Be cautious with sensitive data User remains logged into their services All actions happen locally on the device
FileContentsreferences/setup.mdDetailed installation and configuration for MCP server and Chrome extensionreferences/tools.mdComplete tool reference with parameters and detailed examplesreferences/best-practices.mdAdvanced patterns, error handling, and troubleshooting techniquesreferences/workflows.mdCommon workflow patterns (forms, authentication, scraping, etc.)
Error: "No connection to browser extension" Solution: User must click the Browser MCP extension icon in Chrome toolbar Click "Connect" button on the target tab Only connected tabs can be automated
Error: Element reference invalid or element not found Solution: Take a fresh snapshot() - the DOM may have changed Use the new ref values from the updated snapshot Dynamic content may require wait() before snapshot
Error: Click/type action didn't work as expected Solution: Take a screenshot() to see current page state Check get_console_logs() for JavaScript errors Verify element is visible and enabled in snapshot Check for browser-level popups or security prompts Ensure the page has finished loading
Note: BrowserMCP helps avoid basic bot detection by using the real browser profile. However: Some sites may still present challenges Rate limiting may apply to rapid interactions User may need to manually solve some CAPTCHAs
FeatureBrowserMCPPlaywright MCPBrowserUser's existing browserNew browser instanceProfileUses existing profile with cookiesIsolated profileAuthenticationAlready logged inMust log in each sessionBot DetectionLower (real fingerprint)HigherMulti-tabOne tab at a timeMultiple tabs supportedBest ForPersonal automation, testing logged-in flowsTesting, CI/CD, isolated sessions
Start with navigate + wait + snapshot - Establish baseline page state Use descriptive element names - Helps with debugging and clarity Take screenshots at checkpoints - Visual verification catches issues early Check console logs after errors - JavaScript errors explain many failures Wait strategically - Too short = flakiness, too long = slowness Refresh snapshots after interactions - DOM changes invalidate old refs Use submit=true for forms - Cleaner than separate press_key("Enter") Combine actions efficiently - Group related operations to minimize round-trips
BrowserMCP Website: https://browsermcp.io Documentation: https://docs.browsermcp.io Chrome Extension: Search "Browser MCP" in Chrome Web Store GitHub: https://github.com/browsermcp/mcp Based on: Playwright MCP
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.