A Chrome extension and native server that exposes Chrome browser capabilities as MCP tools, enabling AI agents to control and interact with the browser
Critical failures across naming, descriptions, and schemas. 15 of 23 tools (65%) have empty input schemas with no visible parameter definitions. 8 tools have descriptions under 20 characters or are completely missing descriptions. Tool names lack clarity (e.g., 'chrome_keyboard', 'chrome_history', 'chrome_console' are vague about what they do). No output schemas documented. Error handling is absent, no recovery guidance or actionable error messages visible in code. This server is not production-ready.
Add a bookmark
Delete a bookmark
Search browser bookmarks
Click on an element in the current page or at specific coordinates
Close one or more browser tabs
Execute commands in the browser console
Fill a form element or select an option with the specified value
8 tools have completely empty input schemas (required=[], properties={}). These tools are not callable without parameter definitions.
8 tools have zero or missing descriptions (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 call these tools.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=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 JavaScript code into a web 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 injected scripts
Get all currently open browser windows and tabs
Search tab content using vector similarity
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. Pattern baseline: 100% of A+ tools have documented return types. This server documents zero.
Naming ambiguity: 'chrome_fill_or_select' violates single-responsibility principle (pattern:tool). This tool does two things, split into chrome_fill_input and chrome_select_option. Similarly, 'chrome_go_back_or_forward' should be two tools: chrome_go_back and chrome_go_forward.
No error handling or recovery guidance visible. Tools like chrome_close_tabs (DESTRUCTIVE) and chrome_inject_script (WRITE) have no confirmation, dry-run, or error classification. Pattern baseline: error responses must tell LLM what to do next (pattern:recovery-guide).