MCP Server vs Playwright E2E MCP

A side-by-side look at the MCP Server and Playwright E2E MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

MCP Server logoMCP ServerBrowser Automation · Local subprocess (stdio)BrowserStack's Official MCP Server65GreatAuth: not declaredPlaywright E2E MCP logoPlaywright E2E MCPBrowser Automation · Local subprocess (stdio)Diagnose and fix failing Playwright tests: trace analysis, verified locator fixes, flaky ranking.61GoodAuth: not declared

Verdict: choose MCP Server for browser automation work as a local process; choose Playwright E2E MCP for browser automation as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

MCP Server logoChoose MCP Server when

  • You need dedicated capabilities in the Browser Automation domain.
  • You prefer a local stdio subprocess transport.
  • You have the keys it needs: BROWSERSTACK_USERNAME, BROWSERSTACK_ACCESS_KEY.
  • You want tools like accessibilityExpert, startAccessibilityScan, createAccessibilityAuthConfig.
Explore MCP Server

Playwright E2E MCP logoChoose Playwright E2E MCP when

  • You need dedicated capabilities in the Browser Automation domain.
  • You prefer a local stdio subprocess transport.
  • You have the keys it needs: PW_MCP_STORAGE_STATE.
  • You want tools like run-test, get-run-status, get-failure.
Explore Playwright E2E MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecMCP Server logoMCP ServerPlaywright E2E MCP logoPlaywright E2E MCP
CategoryBrowser AutomationBrowser Automation
Quality signal65/100 · Great61/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredNot declared
PricingNot declaredFree
Required env varsBROWSERSTACK_USERNAMEBROWSERSTACK_ACCESS_KEYPW_MCP_STORAGE_STATE
Verified ownerCommunity listingCommunity listing
GitHub stars1550
Directory activity 1 views 0 installs 0 upvotes 1 views 0 installs 0 upvotes
Tools5212

Tools & capabilities

MCP Server tools 52

  • accessibilityExpertAnswer accessibility, a11y, and WCAG questions using BrowserStack's accessibility knowledge base.
  • startAccessibilityScanStart an accessibility scan via BrowserStack and retrieve a local CSV report path.
  • createAccessibilityAuthConfigCreate an authentication configuration for accessibility scans. Supports both form-based and basic authentication.
  • getAccessibilityAuthConfigRetrieve an existing authentication configuration by ID. Requires the numeric id returned by createAccessibilityAuthConfig. No tool here lists existing configurations, so if you do not have the id, create one rather than guessing.
  • fetchAccessibilityIssuesFetch accessibility issues from a completed scan with pagination support. Use cursor parameter to get subsequent pages of results. Requires the ids of a completed scan, which are returned by startAccessibilityScan. No tool here lists past scans, so if you do not have the ids, start a new scan rather than guessing.
  • setupBrowserStackAutomateTestsSet up and run automated web-based tests on BrowserStack using the BrowserStack SDK. Use this tool for functional or integration test setup on BrowserStack only. For any visual testing or Percy integration, use the dedicated Percy setup tool. Example prompts: run this test on browserstack; set up this project for browserstack.
  • percyVisualTestIntegrationAgentIntegrate Percy visual testing into new projects and demonstrate visual change detection through a step-by-step simulation. This tool handles initial Percy integration, setup, and creates a working demonstration for new users. Primary tool for prompts like: "Integrate percy for this project", "Integrate percy in this project {project_name}"
  • expandPercyVisualTestingSet up or expand Percy visual testing configuration with comprehensive coverage for existing projects that might have Percy integrated. This supports both Percy Web Standalone and Percy Automate. Example prompts: Expand percy coverage for this project {project_name}
  • addPercySnapshotCommandsAdds Percy snapshot commands to the specified test files.
  • listTestFilesLists all test files for a given set of directories.
  • runPercyScanRun a Percy visual test scan. Example prompts : Run this Percy build/scan. Never run percy scan/build without this tool
  • fetchPercyChangesRetrieves and summarizes all visual changes detected by Percy AI between the latest and previous builds, helping quickly review what has changed in your project.
  • +40 more on the listing page

Playwright E2E MCP tools 12

  • run-testRun the project's Playwright tests: stats plus each failure's file:line, kind and message. Diagnoses missing installs, dead dev servers, syntax errors, crashes and timeouts (kills the tree, keeps partial results). Reports progress; background: true returns a run id for long suites. Runs are recorded for analyze-history.
  • get-run-statusProgress (tests done/total, failures so far) or the final result of a run-test background run; the result becomes the last run for get-failure. waitSeconds waits; cancel stops it. Default: the latest run.
  • get-failureAnalyze one failure from the most recent run-test execution: full message and code frame, expected vs actual, stack trace, failed network requests (4xx/5xx and dead endpoints), console errors, failure kind (assertion/timeout/browser-crash/syntax/config/server-unreachable) and concrete next steps. Use run-test first.
  • suggest-fixPatch a failure from the last run: a drifted locator is matched against the DOM at failure (trace, or live url) and replaced with one proven unique; changed copy gets the new expected text. Returns a diff and confidence; apply: true writes it, re-runs the test and reverts if still red. Refuses when the element is truly missing (app bug).
  • inspect-pageOpen a URL headlessly and return its elements with Playwright locators proven unique on the page (role + name first), CSS selectors, visibility, text and console messages. storageState/headers open it signed in; actions click/fill first to reach a state. view 'locators' is the compact map.
  • list-testsList the Playwright tests available in the project (file, line, full title, projects), with optional filtering. Uses `playwright test --list` when Playwright works and falls back to a source scan when the install or config is broken, reporting why.
  • validate-selectorCheck a CSS selector, Playwright selector or locator (getByRole/getByTestId…, .first(), .filter()) on a live page: validity, match count (actions need exactly 1), sample matches and a sturdier verified locator for each. Accepts storageState/headers/actions.
  • audit-accessibilityRun axe-core on a live page (WCAG 2.2 AA by default) and return violations worst first, each with the offending elements as verified Playwright locators, the fix, and a regression check to paste into a spec. Accepts storageState/headers/actions to audit pages behind a login or after a step.
  • generate-e2e-testScaffold a Playwright test from a description using the project's REAL selectors. Scans the agent's recent file changes (git working tree / last commit, mtime fallback), extracts data-testid / role / label / placeholder / id locators with their source locations, optionally cross-checks them against the live page, writes a ready-to-run spec, and returns next steps.
  • compare-visual-stateVisual regression check: screenshot a live page (or element), compare it to a stored baseline, and report how many pixels changed, WHERE they changed (bounding regions), and the average color shift ("blue → red"). First call saves the baseline; later calls compare. Writes a red-highlighted diff image for review.
  • diagnose-flakyRepeat failing tests with retries disabled and return a per-test, evidence-based verdict: CONSISTENTLY FAILING (real bug), FLAKY (pass/fail counts, error-signature variance, duration spread) or NOT REPRODUCING. Runs all repetitions in one process by default. `isolate: true` also re-runs the failures with one worker to tell parallelism bugs (shared state) from flakiness inside the test; `order: true` (Playwright 1.64+) runs the files in random orders to catch tests that depend on what ran before them. Defaults to the tests that failed in the most recent run.
  • analyze-historyAnalyze the local run history (.playwright-e2e-mcp/history.jsonl, written by every run): 'flaky' ranks tests that flip pass/fail and lists broken or regressed ones; 'patterns' groups failures by cause; 'test' shows one test's timeline.

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

MCP Server

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "mcp-server-105": {
      "command": "npx",
      "args": [
        "-y",
        "@browserstack/mcp-server@latest"
      ],
      "env": {
        "BROWSERSTACK_USERNAME": "YOUR_BROWSERSTACK_USERNAME_HERE",
        "BROWSERSTACK_ACCESS_KEY": "YOUR_BROWSERSTACK_ACCESS_KEY_HERE"
      }
    }
  }
}

Playwright E2E MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "playwright-e2e-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "playwright-e2e-mcp"
      ],
      "env": {
        "PW_MCP_STORAGE_STATE": "YOUR_PW_MCP_STORAGE_STATE_HERE"
      }
    }
  }
}

Frequently asked questions

MCP Server is categorized under Browser Automation and uses a local stdio subprocess. Playwright E2E MCP belongs to Browser Automation and uses a local stdio subprocess. Pick MCP Server for browser automation work and Playwright E2E MCP for browser automation.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

MCP Server has no declared pricing — check the project's own site. Playwright E2E MCP is listed as free. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add mcp-server-105 and playwright-e2e-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, MCP Server has a quality signal of 65/100 (Great) with 1 views, 0 installs and 155 GitHub stars. Playwright E2E MCP has 61/100 (Good) with 1 views, 0 installs and 0 GitHub stars.