Playwright Tools for MCP - A Model Context Protocol server that provides browser automation capabilities using Playwright
Playwright MCP has 20 tools with significant quality gaps. Tool naming is inconsistent (browser_click appears twice with different schemas; browser_drag and browser_type also duplicated). Descriptions are minimal (10-50 chars, well below the 194-char baseline). Parameter descriptions exist but are sparse. Critical issue: tools 10-20 appear to be duplicates or variants of tools 1-9, suggesting incomplete refactoring. No output schemas documented. Error handling is basic (generic error text only). The server lacks guidance for LLM recovery from failures.
Choose one or multiple files to upload
Click left mouse button
Perform click on a web page
Close the page
Perform drag and drop between two elements
Drag left mouse button
Go back to the previous page
Go forward to the next page
Duplicate tool names with conflicting schemas. browser_click, browser_drag, and browser_type each appear twice with different parameter sets (ref-based vs xy-based vs text-only). LLMs cannot disambiguate which variant to call.
Minimal descriptions (10-50 chars vs 194-char baseline). Most tools lack context for LLM selection. E.g., 'Go back to the previous page' does not explain when to use it vs browser_navigate or when it fails (no history).
No output schemas documented. Tools return ImageContent or TextContent but LLMs cannot plan downstream calls without knowing field structure. E.g., does browser_snapshot return element references for use in browser_click?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Hover over element on page
Move mouse to a given position
Navigate to a URL
Press a key on the keyboard
Save page as PDF
Take a screenshot of the current page
Select an option in a dropdown
Capture accessibility snapshot of the current page, this is better than screenshot
Take a screenshot of the current page. You can't perform actions based on the screenshot, use browser_snapshot for actions.
Type text into editable element
Type text
Wait for a specified time in seconds
Parameter descriptions are sparse. 'ref' is described as 'Exact target element reference from the page snapshot' but does not explain format, how to obtain it, or what happens if it is stale.
Error handling is generic. CallToolRequestSchema handler returns plain text errors with no recovery guidance. E.g., 'Tool not found' does not suggest listing available tools or checking the name.