A Chrome extension that exposes Chrome browser capabilities as an MCP server, enabling AI models to control and interact with the browser
Chrome MCP Server has 25 tools with consistent naming (verb_noun pattern) and complete input schemas. However, descriptions are often generic or lack actionable context for LLM selection. Many parameters lack descriptions entirely (e.g., chrome_navigate's 'newWindow', 'width', 'height' have descriptions, but chrome_close_tabs 'url' parameter is underdescribed). Output schemas are not documented. Error handling guidance is absent. Tool composition is reasonable but some tools combine multiple concerns (e.g., chrome_screenshot handles both element and full-page capture). No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications.
Add a bookmark
Delete a bookmark
Search bookmarks
Click on an element in the current page or at specific coordinates
Close one or more browser tabs
Execute JavaScript in the browser console
Fill a form element or select an option with the specified value
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk classifications. LLMs cannot infer which tools are safe to retry or have irreversible consequences.
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., what does chrome_click_element return? Does it return coordinates for verification?).
Error handling lacks recovery guidance. No indication of retryable vs fatal errors, or what the LLM should do next (e.g., 'Element not found. Try chrome_get_interactive_elements() first.').
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | <=2025-11-25 | v2 |
Get interactive elements from the current page
Fetch content from a web page
Navigate back or forward in browser history
Get browser history
Inject and execute JavaScript in the current page
Send keyboard input to the browser
Navigate to a URL or refresh the current tab
Start capturing network requests using Chrome's Network.enable API
Stop capturing network requests and return the captured data
Start capturing network requests from a web page using Chrome Debugger API(with responseBody)
Stop capturing network requests using Chrome Debugger API and return the captured data
Send a network request from the browser with cookies and other browser context
Take a screenshot of the current page or a specific element(if you want to see the page, recommend to use chrome_get_web_content first)
Send a command to a previously injected script
Switch to a specific browser tab
Upload a file to the browser
Get all currently open browser windows and tabs
Search tab content using semantic similarity
Parameter descriptions are sparse or missing. chrome_close_tabs 'url' parameter lacks guidance on format/matching behavior. chrome_screenshot 'selector' lacks CSS selector syntax hints.
Tool composition: chrome_screenshot combines element and full-page capture; chrome_fill_or_select conflates form fill and select operations. Consider splitting for clearer single-responsibility design.