A Chrome extension that uses your own Chrome browser as an MCP server, enabling AI models to control and interact with Chrome through native messaging and HTTP transports
Critical failures across naming, descriptions, and schemas. 13 of 23 tools (57%) have completely empty input schemas with no properties or descriptions. Tool names lack consistent verb-noun structure (e.g., 'chrome_keyboard', 'chrome_history', 'chrome_bookmark_search' are vague). Most parameter descriptions are missing entirely. Only 10 tools have non-trivial descriptions; 13 have descriptions under 50 chars. No output schemas documented. Error handling absent. This server fails basic definition quality standards.
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
13 tools have completely empty input schemas (empty properties object, no required array). Affected: chrome_keyboard, chrome_history, chrome_bookmark_search, chrome_bookmark_add, chrome_bookmark_delete, chrome_inject_script, chrome_send_command_to_inject_script, chrome_console, search_tabs_content, and others.
13 tools lack descriptions or have descriptions under 20 characters (chrome_keyboard, chrome_history, chrome_bookmark_search, chrome_bookmark_add, chrome_bookmark_delete, chrome_inject_script, chrome_send_command_to_inject_script, chrome_console, search_tabs_content). LLMs cannot determine when to select these tools.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | <=2025-11-25 | v2 |
Get interactive elements from the current page
Fetch content from a web page
Navigate back or forward in browser history
Access browser history
Inject and execute a script in the current page
Send keyboard input to the browser
Navigate to a URL or refresh the current tab
Start capturing network requests from a web page using Chrome webRequest API(without responseBody)
Stop capturing network requests using Chrome webRequest API 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 an injected script
Get all currently open browser windows and tabs
Search tabs content using semantic similarity
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. Baseline: 100% of A+ tools have documented return types.
Naming inconsistency: 'chrome_fill_or_select' and 'chrome_go_back_or_forward' contain 'and'/'or', signaling multiple responsibilities. Should split into separate tools (e.g., chrome_fill_form, chrome_select_option; chrome_go_back, chrome_go_forward). Per pattern:tool, each tool should do exactly one thing.
No error handling guidance. Tools like chrome_navigate, chrome_click_element, chrome_network_request lack recovery hints. If a click fails, should the LLM retry? Call a different tool? No guidance provided. Per pattern:recovery-guide, errors must tell the LLM what to do next.