A Model Context Protocol (MCP) server that provides web development tools for AI assistants. Enables browser automation, DOM inspection, network monitoring, and console analysis through Playwright.
The server defines 13 tools with consistent naming patterns and generally good descriptions. All tools have clear verb-noun names (browser-navigate, click-element, fill-input, etc.) and descriptions between 34-298 characters, within the 10-1024 baseline. Input schemas are present for all tools with proper type definitions and parameter descriptions. However, several critical gaps prevent a higher score: (1) Output schemas are completely undocumented, no tool definition shows what fields are returned; (2) Error handling guidance is absent, no tools describe recovery paths or validation constraints; (3) No tool describes pagination for list-returning tools like browser-console and network-requests; (4) Parameter constraints (enums, ranges, formats) are minimal, most numeric parameters lack min/max bounds; (5) No tool definitions declare permission requirements or explain state-mutation side effects (e.g., browser-navigate clears console). The server benefits from strong naming and parameter descriptions but lacks the output documentation and error-recovery patterns needed for production agent integration.
Retrieve all console messages (logs, errors, warnings) from the current page
Navigate the browser to a specific URL and start monitoring the page
Reload the current page and refresh console logs
Capture a PNG screenshot of the current page for visual verification of canvas, WebGL, layout, or animation state that DOM inspection cannot show. Captures the viewport by default, the full scrollable page with fullPage, or a single element with selector.
Click on an element (button, link, etc.) using a CSS selector
Extract raw HTML markup of elements for testing or analysis (similar to React Testing Library queries)
No output schemas documented for any tool. LLMs cannot determine what fields to expect in responses, making it impossible to plan downstream tool chains or extract specific data without hallucinating field names.
No pagination or result-limiting guidance. browser-console, network-requests, and inspect-elements return lists but lack page/offset, limit, or total_count parameters. Uncontrolled results can blow the context window.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | C | 61 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 53 | - | v1 |
Fill a form input field with text
Get detailed information about DOM elements including styles, position, visibility, and attributes
Clear the network request buffer to start fresh monitoring
Get detailed information about a specific network request including headers, body, and response data
List all network requests captured since page load with optional filtering by URL or status codes
Simulate keyboard input on the page: a full key press (keydown+keyup), an isolated keydown or keyup (to hold a key across multiple tool calls, e.g. holding two keys simultaneously), or a timed hold of a specific duration. Sends events to whichever element currently has focus (click an element first if needed).
Submit a form element
No error handling or recovery guidance. Tools do not describe what validation rules exist (e.g., CSS selector format, URL format, key names for press-key), what errors are retryable, or what the LLM should do if a selector matches no elements or a URL is malformed.
Mutually exclusive parameters not documented. browser-screenshot accepts both 'selector' and 'fullPage' but the description says they cannot be combined. No parameter description clarifies the mutual exclusivity constraint or what error occurs if both are provided.
Numeric parameters lack bounds. head, tail, and durationMs are positive numbers but lack max values. An LLM could pass head: 999999 or durationMs: 86400000, causing performance issues or timeout.
No declaration of state mutations or side effects. browser-navigate, browser-reload, network-clear, and all write tools do not document what state they modify (console logs cleared? network history reset?), making it unclear whether they are safe to retry or have irreversible consequences.
No permission or scope declarations. Tools do not state what browser capabilities or permissions are required (e.g., 'requires microphone access to press-key on audio inputs', 'requires network interception to use network-inspect').