smithery.ai

mcp-playwright

This skill provides guidance for using Playwright MCP for browser automation. Use when navigating web pages, interacting with web elements, taking screenshots, filling forms, running browser tests, or automating any browser-based tasks.

First seen Mar 11, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,965 B
  • docs SUMMARY.md 258 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 13 installs

SKILL.md

Playwright MCP

Overview

This skill enables browser automation using Playwright through MCP. Playwright provides powerful browser control capabilities including navigation, element interaction, screenshots, and form handling.

When to Use This Skill

  • Navigating and interacting with web pages
  • Taking screenshots of web content
  • Filling out forms and submitting data
  • Testing web applications
  • Extracting information from web pages
  • Automating repetitive browser tasks

Quick Start Workflow

  1. Navigate to a page: browser_navigate
  2. Take a snapshot to get element refs: browser_snapshot
  3. Interact with elements using refs from snapshot: browserclick, browsertype

Core Tools

Navigation

browser_navigate - Navigate to a URL

mcp__playwright__browser_navigate({ url: "https://example.com" })

browsernavigateback - Go back to previous page

mcp__playwright__browser_navigate_back({})

Page Analysis

browser_snapshot - Get accessibility tree (preferred for interaction)

mcp__playwright__browser_snapshot({})

browsertakescreenshot - Capture visual screenshot

mcp__playwright__browser_take_screenshot({
  type: "png",
  fullPage: true,
  filename: "screenshot.png"
})

Element Interaction

browser_click - Click an element (requires ref from snapshot)

mcp__playwright__browser_click({
  element: "Submit button",
  ref: "button[ref='submit']"
})

browser_type - Type text into an element

mcp__playwright__browser_type({
  element: "Search input",
  ref: "input[ref='search']",
  text: "search query",
  submit: true
})

browser_hover - Hover over an element

mcp__playwright__browser_hover({
  element: "Menu item",
  ref: "li[ref='menu']"
})

Form Handling

browserfillform - Fill multiple form fields

mcp__playwright__browser_fill_form({
  fields: [
    { name: "Username", type: "textbox", ref: "input[name='user']", value: "john" },
    { name: "Remember", type: "checkbox", ref: "input[name='remember']", value: "true" }
  ]
})

browserselectoption - Select dropdown option

mcp__playwright__browser_select_option({
  element: "Country",
  ref: "select[ref='country']",
  values: ["JP"]
})

Waiting and Dialogs

browserwaitfor - Wait for conditions

mcp__playwright__browser_wait_for({ text: "Loading complete" })
mcp__playwright__browser_wait_for({ textGone: "Please wait..." })
mcp__playwright__browser_wait_for({ time: 2 })

browserhandledialog - Handle browser dialogs

mcp__playwright__browser_handle_dialog({ accept: true, promptText: "input" })

Page Management

browser_tabs - Manage tabs

mcp__playwright__browser_tabs({ action: "list" })
mcp__playwright__browser_tabs({ action: "new" })
mcp__playwright__browser_tabs({ action: "select", index: 0 })

browser_close - Close page

mcp__playwright__browser_close({})

Advanced

browser_evaluate - Execute JavaScript

mcp__playwright__browser_evaluate({ function: "() => document.title" })

browserpresskey - Press keyboard key

mcp__playwright__browser_press_key({ key: "Enter" })

Best Practices

  1. Always snapshot first: Use browser_snapshot before interacting to get element refs
  2. Use descriptive element names: Provide clear descriptions in element parameter
  3. Wait for content: Use browserwaitfor before interacting with dynamic content
  4. Handle dialogs: Check for dialog prompts and handle appropriately
  5. Clean up: Close browser when done with browser_close

References

For complete tool parameters, see references/tools.md.