Install
openclaw skills install @agentossoftware/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 @agentossoftware/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}