MCP server that enables Claude to control and interact with Chromium browsers via native messaging and Chrome DevTools Protocol
Server has 19 tools with complete input schemas and descriptions, but quality is inconsistent. Naming follows verb_noun convention well (read_page, get_page_text, find_elements, click, type, press_key, set_form_value, take_screenshot, navigate, go_back, go_forward, get_console_messages, get_network_requests, evaluate_javascript, get_tabs, create_tab, close_tab, scroll, hover). Descriptions are present but brief (avg ~60 chars, below 194-char baseline). Parameter descriptions exist but lack detail on constraints, formats, and valid ranges. No output schemas documented. Error handling is minimal, no recovery guidance or error classification. No tool annotations (readOnlyHint/destructiveHint). Security concern: evaluate_javascript accepts arbitrary code with no warnings. Composition is reasonable, tools are single-purpose and chainable via tab_id.
Click on an element identified by reference or coordinates
Close a tab in the browser
Create a new tab in the browser
Evaluate JavaScript code in the context of the current tab
Find elements on the page matching a text query
Get console messages from the current tab
Get network requests from the current tab
Extract the main text content from the current page
No output schemas documented. LLMs cannot infer what fields to expect from tool responses, forcing them to guess at downstream data extraction and chaining.
Parameter descriptions lack constraint details. E.g., 'depth' has no min/max; 'max_chars' has no range; 'key' in press_key has no format guidance (e.g., 'Enter', 'ctrl+a'). LLMs will pass invalid values.
evaluate_javascript accepts arbitrary code with no security warnings or sandboxing guidance. Description does not warn about XSS, data exfiltration, or side effects. Critical for browser automation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Get list of available tabs in the browser
Navigate back in the browser history
Navigate forward in the browser history
Hover over an element on the page
Navigate to a URL in the current tab
Press a keyboard key or key combination
Generate an accessibility tree of the current page, optionally filtered to interactive elements only
Scroll the page in a specified direction
Set the value of a form input element
Take a screenshot of the current tab
Type text into a focused input element
No error handling guidance. Tools do not document what errors are retryable, what require user intervention, or what are fatal. Agents cannot plan recovery.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes without explicit hints.