MCP server for monitoring browser console logs and network requests using Playwright
Four tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. Tool names follow verb_noun convention (open_browser, get_console_logs, get_network_requests, close_browser), which is good. However, descriptions lack actionable detail about when to use each tool, dependencies between them, and what fields to expect in responses. Parameter descriptions are present but minimal. No error handling guidance. Output schemas are not formally documented, responses are inferred from code comments rather than explicit schema declarations. The server lacks pagination support despite tools that could return large result sets (get_console_logs, get_network_requests).
Close the browser and clean up resources. Returns: A confirmation message
Get console logs from the currently open browser page. Repeated messages are deduplicated and shown with a count of repetitions. Args: last_n: Number of log entries to return, prioritizing the most recent ones. Use a large number to get all logs. Returns: A list of console log entries with type, text, location, timestamp, and count for repeated messages
Get network requests from the currently open browser page. Args: last_n: Number of network request entries to return, prioritizing the most recent ones. Use a large number to get all requests. Returns: A list of network request entries with URL, method, headers, and response data
Open a browser at the specified URL and start monitoring console logs and network requests. Args: url: String, the URL to open in the browser headless: Boolean, whether to run the browser in headless mode Returns: A confirmation message
Output schemas not formally documented. get_console_logs and get_network_requests return complex objects (with nested 'response' fields, timestamps, counts) but no JSON Schema is provided. LLMs cannot reliably extract fields or plan downstream operations without explicit output documentation.
No pagination support. get_console_logs and get_network_requests accept last_n but do not return total_count, next_cursor, or has_more. Large result sets will blow context windows; agents cannot reliably iterate through all logs/requests.
Descriptions lack actionable context. 'Get console logs from the currently open browser page' does not explain when to call this vs get_network_requests, what 'deduplication' means in practice, or what the 'count' field represents. Descriptions should guide LLM tool selection.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
No error handling guidance. If open_browser fails (network unreachable, invalid URL), the tool returns no recovery hint. Descriptions should state 'If the URL is invalid, check the protocol (http vs https)' or similar.
Parameter 'last_n' lacks constraints. No minimum/maximum specified. LLMs could pass 0, negative numbers, or 1000000, causing unexpected behavior. Descriptions should state 'last_n: integer, 1 - 10000, default 100'.