MCP server for controlling Chrome via the Chrome DevTools Protocol (CDP). 52 tools covering navigation, DOM, network monitoring, input simulation, emulation, and more.
Chrome-cdp has 9 tools with basic naming and descriptions, but significant quality gaps. Tool names follow verb_noun convention (chrome_list_tabs, chrome_navigate), which is good. However, descriptions are minimal (10-50 chars) and lack context on WHEN to use tools or what they return. Parameter descriptions are sparse: chrome_reload has null descriptions for 'tabId'; chrome_go_back and chrome_go_forward have null descriptions for 'tabId'. The chrome_screenshot tool has a null description for 'clip' parameter. No output schemas are documented, LLMs cannot predict what fields to expect. Error handling is absent: no guidance on recovery, retryability, or what went wrong. No tool annotations (readOnlyHint, destructiveHint) despite clear risk distinctions (READ_ONLY vs WRITE). Schemas are present but incomplete, many parameters lack descriptions, and no structured output format is specified.
Bring a tab to the foreground
Close a browser tab
Navigate back in history
Navigate forward in history
List all open browser tabs/targets
Navigate to a URL in a tab
Open a new tab with optional URL
Reload the current page
Multiple parameters have null descriptions (chrome_reload.tabId, chrome_go_back.tabId, chrome_go_forward.tabId, chrome_screenshot.clip). LLMs cannot infer parameter meaning from names alone, null descriptions violate the tool-description pattern and force guessing.
No output schemas documented. Tools return JSON text via { type: 'text', text: JSON.stringify(...) } but LLMs have no way to know what fields to expect. This violates the response-shaper pattern and forces LLMs to parse unstructured output.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Take a screenshot of the current page
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk distinctions. chrome_list_tabs and chrome_screenshot are READ_ONLY; chrome_new_tab, chrome_close_tab, chrome_activate_tab, chrome_navigate, chrome_reload, chrome_go_back, chrome_go_forward are WRITE. Agents need this metadata to plan safely.
Descriptions are too brief (10-50 chars). Baseline for A+ tools is 50-200 chars. Current descriptions lack context on WHEN to use each tool, what it returns, or prerequisites. E.g., 'Navigate to a URL in a tab' does not explain what happens if the tab is not found or if the URL is invalid.
No error handling or recovery guidance. Tools return raw JSON or error messages without actionable next steps. E.g., if chrome_navigate fails, the LLM has no guidance on whether to retry, check the URL, or try a different tab.