Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Browser automation using Playwright MCP. Navigate websites, fill forms, click elements, take screenshots, and extract data. Use when tasks require web browsing, form submission, web scraping, UI testing, or any browser interaction.
.claude/skills/aiskillstore-browser-use/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -4% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 49% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 11% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -11% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -20% | 0% |
Automate browser interactions via Playwright MCP server.
bash# Using helper script (recommended) bash scripts/start-server.sh # Or manually npx @playwright/mcp@latest --port 8808 --shared-browser-context &
bash# 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"
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.
bash# 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 '{}'
bash# 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}'
Use ref from snapshot output to target elements:
bash# 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"]}'
bash# 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}'
bashpython3 scripts/mcp-client.py call -u http://localhost:8808 -t browser_evaluate \ -p '{"function": "return document.title"}'
For complex workflows, use browser_run_code to run multiple actions in one call:
bashpython3 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).
See references/playwright-tools.md for complete tool documentation.
| Issue | Solution | |-------|----------| | Element not found | Run browser_snapshot first to get current refs | | Click fails | Try browser_hover first, then click | | Form not submitting | Use "submit": true with browser_type | | Page not loading | Increase wait time or use browser_wait_for |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 10,024 | 3,106 | -69% | 1 | 1 | 0% | 1,700 | 1,638 | -4% | 0 | 0 | — |
case-02 | fail→pass | 7,779 | 5,298 | -32% | 1 | 1 | 0% | 1,556 | 2,314 | +49% | 0 | 0 | — |
case-03 | fail→pass | 9,295 | 3,630 | -61% | 1 | 1 | 0% | 1,700 | 1,894 | +11% | 0 | 0 | — |
case-04 | pass→pass | 7,922 | 7,150 | -10% | 1 | 1 | 0% | 1,402 | 2,424 | +73% | 0 | 0 | — |
case-05 | pass→pass | 14,286 | 10,141 | -29% | 1 | 1 | 0% | 2,823 | 3,206 | +14% | 0 | 0 | — |
case-06 | pass→pass | 12,841 | 9,939 | -23% | 1 | 1 | 0% | 2,375 | 2,981 | +26% | 0 | 0 | — |
case-07 | fail→pass | 11,945 | 4,288 | -64% | 1 | 1 | 0% | 2,008 | 1,781 | -11% | 0 | 0 | — |
case-08 | fail→pass | 10,942 | 1,550 | -86% | 1 | 1 | 0% | 1,778 | 1,427 | -20% | 0 | 0 | — |
case-09 | fail→pass | 4,717 | 3,794 | -20% | 1 | 1 | 0% | 792 | 1,903 | +140% | 0 | 0 | — |
case-14 | pass→pass | 7,200 | 1,668 | -77% | 1 | 1 | 0% | 1,009 | 1,428 | +42% | 0 | 0 | — |
case-10 | fail→pass | 8,641 | 2,646 | -69% | 1 | 1 | 0% | 1,503 | 1,746 | +16% | 0 | 0 | — |
case-11 | fail→pass | 7,898 | 1,922 | -76% | 1 | 1 | 0% | 1,474 | 1,534 | +4% | 0 | 0 | — |
case-12 | fail→pass | 10,016 | 2,687 | -73% | 1 | 1 | 0% | 1,666 | 1,548 | -7% | 0 | 0 | — |
case-13 | fail→pass | 5,182 | 1,407 | -73% | 1 | 1 | 0% | 875 | 1,431 | +64% | 0 | 0 | — |
case-15 | fail→pass | 7,161 | 2,472 | -65% | 1 | 1 | 0% | 1,178 | 1,547 | +31% | 0 | 0 | — |
case-16 | fail→pass | 11,975 | 3,460 | -71% | 1 | 1 | 0% | 2,002 | 1,846 | -8% | 0 | 0 | — |
case-17 | fail→pass | 7,939 | 1,846 | -77% | 1 | 1 | 0% | 1,371 | 1,364 | -1% | 0 | 0 | — |
case-18 | fail→pass | 3,355 | 1,775 | -47% | 1 | 1 | 0% | 480 | 1,397 | +191% | 0 | 0 | — |
case-19 | pass→pass | 11,596 | 4,621 | -60% | 1 | 1 | 0% | 1,811 | 1,963 | +8% | 0 | 0 | — |
case-20 | fail→pass | 4,578 | 3,192 | -30% | 1 | 1 | 0% | 774 | 1,701 | +120% | 0 | 0 | — |
case-21 | fail→pass | 9,511 | 3,244 | -66% | 1 | 1 | 0% | 1,738 | 1,683 | -3% | 0 | 0 | — |
case-22 | fail→pass | 7,647 | 2,105 | -72% | 1 | 1 | 0% | 1,197 | 1,482 | +24% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +77 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.