Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
bilalmk avatar

Browser Use

  • 15 installs
  • 1 repo stars
  • Updated January 27, 2026
  • bilalmk/todo_correct

browser-use is a skill that automates browser interactions through a Playwright MCP server so an agent can navigate, fill forms, screenshot, and extract data.

About

browser-use is a skill for browser automation through a Playwright MCP server. It lets an agent navigate websites, take accessibility snapshots, click and type using element refs, fill forms, run JavaScript, and take screenshots. A developer uses it for web browsing, form submission, web scraping, or UI testing tasks. It manages the Playwright MCP server lifecycle with helper scripts and requires a shared browser context to keep state across calls.

  • Automates browser interactions through a Playwright MCP server
  • Navigate, snapshot, click, fill forms, screenshot, and extract data
  • Includes start/stop scripts and an mcp-client helper for tool calls

Browser Use by the numbers

  • 15 all-time installs (skills.sh)
  • Ranked #1,404 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

browser-use capabilities & compatibility

free

Capabilities
browser automation · web scraping · form automation · ui testing
Works with
playwright
Use cases
web scraping · testing · web search
Runs
Runs locally
Pricing
Free
From the docs

What browser-use says it does

Browser automation using Playwright MCP. Navigate websites, fill forms, click elements, take screenshots, and extract data.
SKILL.md
The `--shared-browser-context` flag is required to maintain browser state across multiple mcp-client.py calls.
SKILL.md
Use `ref` from snapshot output to target elements:
SKILL.md
npx skills add https://github.com/bilalmk/todo_correct --skill browser-use

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs15
repo stars1
Last updatedJanuary 27, 2026
Repositorybilalmk/todo_correct

What it does

Give an agent Playwright-driven browser automation for navigation, form submission, scraping, and UI testing.

Who is it for?

Agent-driven web browsing, form filling, scraping, and UI testing

Skip if: Tasks needing no browser interaction

When should I use this skill?

Tasks require web browsing, form submission, web scraping, or UI testing

What you get

A running Playwright MCP browser the agent can navigate, fill, screenshot, and scrape.

  • Running Playwright MCP browser session
  • Extracted page data and screenshots

By the numbers

  • Playwright MCP server runs on port 8808
  • Documented workflows for form submission and data extraction

Files

SKILL.mdMarkdownGitHub ↗

Browser Automation

Automate browser interactions via Playwright MCP server.

Server Lifecycle

Start Server

# Using helper script (recommended)
bash scripts/start-server.sh

# Or manually
npx @playwright/mcp@latest --port 8808 --shared-browser-context &

Stop Server

# Using helper script (closes browser first)
bash scripts/stop-server.sh

# Or manually
python3 scripts/mcp-client.py call -u http://localhost:8808 -t browser_close -p '{}'
pkill -f "@playwright/mcp"

When to Stop

  • End of task: Stop when browser work is complete
  • Long sessions: Keep running if doing multiple browser tasks
  • Errors: Stop and restart if browser becomes unresponsive

Important: The --shared-browser-context flag is required to maintain browser state across multiple mcp-client.py calls. Without it, each call gets a fresh browser context.

Quick Reference

Navigation

# Go to URL
python3 scripts/mcp-client.py call -u http://localhost:8808 -t browser_navigate \
  -p '{"url": "https://example.com"}'

# Go back
python3 scripts/mcp-client.py call -u http://localhost:8808 -t browser_navigate_back -p '{}'

Get Page State

# Accessibility snapshot (returns element refs for clicking/typing)
python3 scripts/mcp-client.py call -u http://localhost:8808 -t browser_snapshot -p '{}'

# Screenshot
python3 scripts/mcp-client.py call -u http://localhost:8808 -t browser_take_screenshot \
  -p '{"type": "png", "fullPage": true}'

Interact with Elements

Use ref from snapshot output to target elements:

# Click element
python3 scripts/mcp-client.py call -u http://localhost:8808 -t browser_click \
  -p '{"element": "Submit button", "ref": "e42"}'

# Type text
python3 scripts/mcp-client.py call -u http://localhost:8808 -t browser_type \
  -p '{"element": "Search input", "ref": "e15", "text": "hello world", "submit": true}'

# Fill form (multiple fields)
python3 scripts/mcp-client.py call -u http://localhost:8808 -t browser_fill_form \
  -p '{"fields": [{"ref": "e10", "value": "john@example.com"}, {"ref": "e12", "value": "password123"}]}'

# Select dropdown
python3 scripts/mcp-client.py call -u http://localhost:8808 -t browser_select_option \
  -p '{"element": "Country dropdown", "ref": "e20", "values": ["US"]}'

Wait for Conditions

# Wait for text to appear
python3 scripts/mcp-client.py call -u http://localhost:8808 -t browser_wait_for \
  -p '{"text": "Success"}'

# Wait for time (ms)
python3 scripts/mcp-client.py call -u http://localhost:8808 -t browser_wait_for \
  -p '{"time": 2000}'

Execute JavaScript

python3 scripts/mcp-client.py call -u http://localhost:8808 -t browser_evaluate \
  -p '{"function": "return document.title"}'

Multi-Step Playwright Code

For complex workflows, use browser_run_code to run multiple actions in one call:

python3 scripts/mcp-client.py call -u http://localhost:8808 -t browser_run_code \
  -p '{"code": "async (page) => { await page.goto(\"https://example.com\"); await page.click(\"text=Learn more\"); return await page.title(); }"}'

Tip: Use browser_run_code for complex multi-step operations that should be atomic (all-or-nothing).

Workflow: Form Submission

1. Navigate to page 2. Get snapshot to find element refs 3. Fill form fields using refs 4. Click submit 5. Wait for confirmation 6. Screenshot result

Workflow: Data Extraction

1. Navigate to page 2. Get snapshot (contains text content) 3. Use browser_evaluate for complex extraction 4. Process results

Tool Reference

See references/playwright-tools.md for complete tool documentation.

Troubleshooting

IssueSolution
Element not foundRun browser_snapshot first to get current refs
Click failsTry browser_hover first, then click
Form not submittingUse "submit": true with browser_type
Page not loadingIncrease wait time or use browser_wait_for

Related skills

FAQ

Why is --shared-browser-context required?

It maintains browser state across multiple mcp-client.py calls; without it each call gets a fresh browser context.

How do I target elements to click?

Run browser_snapshot first to get element refs, then pass the ref to browser_click or browser_type.

Automation & Workflowsautomationagents

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.