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

Browsing With Playwright

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

browsing-with-playwright is an agent skill for |

About

| The browsing-with-playwright skill documents workflows and patterns from the repository SKILL.md. --- name: browsing-with-playwright description: | 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. NOT when only fetching static content (use curl/wget instead). --- # Browser Automation Automate browser interactions via Playwright MCP server. ## Server Lifecycle ### Start Server ```bash # Using helper script (recommended) bash scripts/start-server.sh # Or manually npx @playwright/mcp@latest --port 8808 --shared-browser-context & ``` ### Stop Server ```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" ``` ### 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.

  • Using helper script (recommended)
  • Using helper script (closes browser first)
  • **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

Browsing With Playwright by the numbers

  • 1,687 all-time installs (skills.sh)
  • Ranked #450 of 2,153 Testing & QA skills by installs in the Skillselion catalog
  • Security screen: HIGH risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

browsing-with-playwright capabilities & compatibility

Capabilities
using helper script (recommended) · using helper script (closes browser first) · **end of task**: stop when browser work is compl · **long sessions**: keep running if doing multipl · **errors**: stop and restart if browser becomes
Use cases
documentation
From the docs

What browsing-with-playwright says it does

--- name: browsing-with-playwright description: | Browser automation using Playwright MCP.
SKILL.md
Navigate websites, fill forms, click elements, take screenshots, and extract data.
SKILL.md
Use when tasks require web browsing, form submission, web scraping, UI testing, or any browser interaction.
SKILL.md
NOT when only fetching static content (use curl/wget instead).
SKILL.md
npx skills add https://github.com/bilalmk/todo_correct --skill browsing-with-playwright

Add your badge

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

Listed on Skillselion
Installs1.7k
repo stars1
Security audit1 / 3 scanners passed
Last updatedJanuary 27, 2026
Repositorybilalmk/todo_correct

What problem does browsing-with-playwright solve for developers using the documented workflows?

|

Who is it for?

Developers working with browsing-with-playwright patterns described in the skill documentation.

Skip if: Skip when docs are empty or the task is outside the skill documented scope.

When should I use this skill?

|

What you get

Grounded guidance and workflows from SKILL.md for browsing-with-playwright.

  • Running Playwright MCP server
  • Browser automation session outputs and screenshots

By the numbers

  • Documents Playwright MCP startup on port 8808 with shared browser context

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

Verification

Run: python3 scripts/verify.py

Expected: ✓ Playwright MCP server running

If Verification Fails

1. Run diagnostic: pgrep -f "@playwright/mcp" 2. Check: Server process running on port 8808 3. Try: bash scripts/start-server.sh 4. Stop and report if still failing - do not proceed with downstream steps

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
Server not respondingStop and restart: bash scripts/stop-server.sh && bash scripts/start-server.sh

Related skills

How it compares

Choose browsing-with-playwright over curl-based fetching when pages require JavaScript rendering, form interaction, or visual UI verification.

FAQ

Who is Browsing With Playwright for?

Developers and software engineers working with browsing-with-playwright patterns from the skill documentation.

When should I use Browsing With Playwright?

|

Is Browsing With Playwright safe to install?

Review the Security Audits panel on this page before installing in production.

This week in AI coding

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

unsubscribe anytime.