MCP server for browser automation using Playwright
This server has 12 tools with complete input schemas and basic descriptions, but suffers from critical naming inconsistencies, minimal parameter documentation, and missing output schema definitions. Tool names lack consistent verb-noun structure (e.g., 'broser_url_reflected_xss' has a typo). Most parameter descriptions are present but generic. No error handling guidance, no output schemas documented, and no tool annotations. The security-focused tools (XSS, SQL injection testing) lack context on when/why to use them. Average tool description length ~60 chars (below 194-char baseline). Parameters average 2-3 per tool but lack constraints (enums, ranges, format specs). This is a functional but below-average implementation.
Test whether the URL has an XSS vulnerability
Click an element on the page using CSS selector
Click an element on the page by its text content
Execute JavaScript in the browser console
Fill out an input field
Hover an element on the page using CSS selector
Hover an element on the page by its text content
Tool name typo: 'broser_url_reflected_xss' should be 'browser_url_reflected_xss'. Typos in tool names break LLM routing and cause selection failures.
No output schemas documented. LLMs cannot plan downstream calls or extract structured data. Tools return CallToolResult with text content, but no schema describes what fields/structure the response contains.
Security tools (browser_url_reflected_xss, browser_url_sql_injection) lack context on when/why to use them. Descriptions do not explain prerequisites, expected payloads, or how to interpret results. LLMs cannot determine if these are appropriate for a given task.
Parameter descriptions are minimal (avg ~30 chars vs 72-char baseline). 'selector' appears in 6 tools but is never described as 'CSS selector for element to [action]'. Generic descriptions force LLMs to infer intent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Navigate to a URL
Take a screenshot of the current page or a specific element
Select an element on the page with Select tag using CSS selector
Select an element on the page with Select tag by its text content
Test whether the URL has SQL injection vulnerabilities
No error handling guidance. If browser_navigate fails (404, timeout, SSL error), the tool returns isError:true with a text message, but does not guide the LLM on recovery (retry? try different URL? check network?). No error classification.