Install
openclaw skills install surfagentControl a real Chrome browser via SurfAgent — navigate, click, type, screenshot, extract data, crawl sites, and automate web workflows. Uses your persistent Chrome profile with real cookies and sessions. Works through SurfAgent's MCP server or direct HTTP API.
openclaw skills install surfagentGive your AI agent a real, persistent Chrome browser. No headless browsers, no cloud, no bot detection issues.
hermes mcp add surfagent --command npx --args -y surfagent-mcphttp://localhost:7201| Tool | What it does |
|---|---|
browser_navigate | Open a URL |
browser_back | Go back in history |
browser_forward | Go forward in history |
browser_click | Click an element (selector, text, or coordinates) |
browser_type | Type text into an element |
browser_fill_form | Fill multiple form fields at once |
browser_select | Select dropdown option |
browser_scroll | Scroll page or to element |
browser_screenshot | Capture page screenshot (PNG) |
browser_get_text | Get visible text content |
browser_get_html | Get page HTML |
browser_get_url | Get current URL |
browser_get_title | Get page title |
browser_find_elements | Find elements by CSS selector |
browser_evaluate | Run JavaScript in page |
browser_wait | Wait for element to appear |
browser_cookies | Get or set cookies |
browser_list_tabs | List open tabs |
browser_new_tab | Open new tab |
browser_switch_tab | Switch to tab by id/title |
browser_close_tab | Close a tab |
browser_extract | Extract structured data (markdown, JSON, links) |
browser_crawl | BFS crawl a domain |
browser_map | Discover all URLs on a site |
browser_navigate to open a URLbrowser_screenshot to see the pagebrowser_click or browser_type to interactbrowser_get_text to read contentbrowser_extract with a URL to get markdown + linksprompt and schema fields for LLM-powered structured extractionbrowser_crawl for multi-page extractionbrowser_map for quick URL discoverybrowser_navigate to go to the form pagebrowser_fill_form with field label/name → value mappingsbrowser_click + browser_type for individual fieldsbrowser_select for dropdownsbrowser_list_tabs to see what's openbrowser_new_tab to open a new tabbrowser_switch_tab to change focusbrowser_close_tab when done — always clean up tabsIf MCP isn't available, call the daemon directly:
# Navigate
curl -X POST http://localhost:7201/browser/navigate \
-H 'Content-Type: application/json' \
-d '{"url": "https://example.com"}'
# Screenshot
curl -s http://localhost:7201/browser/screenshot --output screenshot.png
# List tabs
curl -s http://localhost:7201/browser/tabs
# Extract page data
curl -X POST http://localhost:7201/browser/extract \
-H 'Content-Type: application/json' \
-d '{"url": "https://example.com", "formats": ["markdown", "links"]}'
browser_wait or a short delay after navigation/browser/resolve-blockerbrowser_get_url returns the expected URL after navigationbrowser_screenshot shows the expected page contentbrowser_get_text contains the expected textcurl http://localhost:7201/health returns {"ok": true}