mcpcheck · demo

@playwright/mcp degraded

npx -y @playwright/mcp@latest --headless
free preview run · last run 5 d ago (2026-09-02 17:57 UTC)
mcpcheck badge
Clean install pass
1/1 hosts
Clients pass
Claude, Cursor, VS Code, Python SDK
OAuth n/a
n/a (stdio)
Tool catalog pass
24 tools
Error ergonomics warn
22/100
Protocol n/a
n/a

Clean install pass

Fresh npm/uv cache, start over stdio (or connect for remote URLs), initialize + tools/list, on GitHub-hosted Linux, macOS and Windows runners.

HostStatusNodeServerToolsTimeResult
local macOS (local probe)passv22.23.2Playwright 1.63.0-alpha-2026-08-31246.6 s24 tools in 6.6 s

Client compatibility pass

ClaudeCursor inferredVS Code inferredPython SDK

Cursor and VS Code embed the official TypeScript SDK client; their chips are inferred from the TypeScript SDK rows (no GUI automation). Claude Code is verified with a claude mcp list health check — a real handshake over its own transport.

Clientlocal macOS
TypeScript SDK client (current)
v1.30.0
embedded by Cursor, VS Code, Claude Desktop, Windsurf
pass
24 tools via ts-sdk 1.30.0
TypeScript SDK client (previous minor)
v1.29.0
embedded by Cursor, VS Code
pass
24 tools via ts-sdk 1.29.0
Python SDK client (current)
v2.1.1
pass
24 tools via mcp 2.1.1
Python SDK client (previous minor)
v2.0.1
pass
24 tools via mcp 2.0.1
Claude Code (`claude mcp list`)
v2.1.196
embedded by Claude Code
pass
Claude Code 2.1.196 connected (24 tools in the catalog)

OAuth conformance n/a

Package specs run over stdio; there is no HTTP endpoint to authorize.

Tool catalog pass

24 tools · hash 9f7489d4fe8c3ec0 · captured 6 d ago · Playwright 1.63.0-alpha-2026-08-31

ToolDescriptionArguments
browser_clickPerform click on a web page5 (1 required)
browser_closeClose the page0
browser_console_messagesReturns all console messages3 (1 required)
browser_dragPerform drag and drop between two elements4 (2 required)
browser_dropDrop files or MIME-typed data onto an element, as if dragged from outside the page. At least one of "paths" or "data" must be provided.4 (1 required)
browser_evaluateEvaluate JavaScript expression on page or element4 (1 required)
browser_file_uploadUpload one or multiple files1
browser_fill_formFill multiple form fields1 (1 required)
browser_findSearch the accessibility snapshot of the current page for text or a regular expression. Returns matching snapshot nodes with a few lines of …2
browser_handle_dialogHandle a dialog2 (1 required)
browser_hoverHover over element on page2 (1 required)
browser_navigateNavigate to a URL1 (1 required)
browser_navigate_backGo back to the previous page in the history0
browser_network_requestReturns full details (headers and body) of a single network request, or a single part if `part` is set. Use the number from browser_network_…3 (1 required)
browser_network_requestsReturns a numbered list of network requests since loading the page. Use browser_network_request with the number to get full details.3 (1 required)
browser_press_keyPress a key on the keyboard1 (1 required)
browser_resizeResize the browser window2 (2 required)
browser_run_code_unsafeRun a Playwright code snippet. Unsafe: executes arbitrary JavaScript in the Playwright server process and is RCE-equivalent.2
browser_select_optionSelect an option in a dropdown3 (2 required)
browser_snapshotCapture accessibility snapshot of the current page, this is better than screenshot4
browser_tabsList, create, close, or select a browser tab.3 (1 required)
browser_take_screenshotTake a screenshot of the current page. You can't perform actions based on the screenshot, use browser_snapshot for actions.6 (1 required)
browser_typeType text into editable element5 (2 required)
browser_wait_forWait for text to appear or disappear or a specified time to pass3

Error ergonomics warn 22/100

10 malformed inputs per tool (missing/mistyped/null/out-of-range/unknown fields …). Each error response is graded on code · cause · fix · retryable; 24 distinct error shapes graded by the judge ($0.0000), cached.

ToolScoreErrorsAcceptedCases
browser_click25/10010010
browser_close75/1005510
browser_console_messages35/10010010
browser_drag20/10010010
browser_drop15/10010010
browser_evaluate15/10010010
browser_file_upload20/10010010
browser_fill_form35/10010010
browser_find5/10010010
browser_handle_dialog25/10010010
browser_hover10/10010010
browser_navigate23/10010010
browser_navigate_back38/10010010
browser_network_request30/10010010
browser_network_requests10/10010010
browser_press_key23/10010010
browser_resize40/10010010
browser_run_code_unsafe5/10010010
browser_select_option18/10010010
browser_snapshot10/10010010
browser_tabs35/10010010
browser_take_screenshot25/10010010
browser_type23/10010010
browser_wait_for8/10010010

Weakest errors

Tool · caseGradeResponse
browser_console_messages
required field `level` missing
✗ code · ✗ cause · ✗ fix · ✗ retryable
llm
### Error
Error: browserBackend.callTool: Target page, context or browser has been closed
browser_handle_dialog
`promptText` is a 20000-character string
✗ code · ✗ cause · ✗ fix · ✗ retryable
llm
### Error
Error: browserBackend.callTool: Protocol error (Target.createTarget): Failed to open a new tab
browser_evaluate
`target` is an empty string
✗ code · ✗ cause · ✗ fix · ✗ retryable
llm
### Error
Error: browserBackend.callTool: Target page, context or browser has been closed
Browser logs:

<launching> /Applications/Google Chrome.app/Contents/MacOS/Google Chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding…
browser_wait_for
`time` is negative
✗ code · ✗ cause · ✗ fix · ✗ retryable
llm
### Error
Error: No open pages available.
browser_resize
`width` is negative
✗ code · ✓ cause · ✗ fix · ✗ retryable
llm
### Error
Error: browserBackend.callTool: viewportSize.height: expected integer, got float 1.5
browser_resize
`height` is negative
✗ code · ✓ cause · ✗ fix · ✗ retryable
llm
### Error
Error: browserBackend.callTool: viewportSize.width: expected integer, got float 1.5
browser_resize
empty arguments {}
✗ code · ✓ cause · ✗ fix · ✗ retryable
heuristic
### Error
Invalid arguments for tool "browser_resize":
✖ Invalid input: expected number, received undefined
  → at width
✖ Invalid input: expected number, received undefined
  → at height
browser_console_messages
`all` has the wrong type ("yes")
✗ code · ✓ cause · ✗ fix · ✗ retryable
heuristic
### Error
Invalid arguments for tool "browser_console_messages":
✖ Invalid input: expected boolean, received string
  → at all

Protocol conformance n/a

Not applicable to stdio package specs.

Badge

mcpcheck badge

[![mcpcheck](https://agentwares-agentcheck.vercel.app/mcpcheck/demo/badge/playwright.svg)](https://agentwares-agentcheck.vercel.app/mcpcheck/demo/playwright)

Machine-readable: report.json · trust.json