| name | cursor-browser |
| description | Inspect UI via cursor-ide-browser (Cursor Browser tab); fall back to user-playwright if internal browser MCP is unavailable. Use for @Browser, open tab, layout checks, localhost — or when user explicitly asks for Playwright. |
Cursor IDE Browser
Use this skill for Browser panel / UI verification in the repo.
MCP priority
- Primary:
cursor-ide-browser — user's open Cursor Browser tabs.
- Fallback:
user-playwright — when internal browser MCP is missing or failing,
or user explicitly wants Playwright (headless / E2E / isolated session).
On fallback, state briefly that you are not on the user's Cursor tab.
Workflow (cursor-ide-browser)
- List tabs:
browser_tabs with action: "list".
- Pick tab: Use
viewId from the list, or browser_tabs select if needed.
- Lock (existing tab):
browser_lock with action: "lock" before interactions.
- Inspect:
browser_snapshot (structure), browser_take_screenshot (visual).
- Act:
browser_click, browser_fill, browser_type, browser_scroll, etc.
- Navigate:
browser_navigate — omit position unless the user wants the browser revealed.
- Unlock:
browser_lock with action: "unlock" when finished.
Read each tool's schema in the MCP folder before first use in a session.
Fallback workflow (user-playwright)
Try cursor-ide-browser first. If unavailable:
- Use
user-playwright tools (browser_navigate, browser_snapshot, etc.).
- Navigate to the URL the user cares about (e.g.
http://localhost:5000/...).
- Note that login state may differ from the user's Cursor tab.
Common mistakes
- Using Playwright while
cursor-ide-browser is available and the user meant their open tab.
- Assuming Playwright URLs match the user's Cursor Browser without checking
browser_tabs.
- Using
browser_navigate with position: "active" when a background check is enough.
Persistent rule: .cursor/rules/cursor-browser-mcp.mdc (always applied).