Lightweight browser automation CLI + MCP server driving your everyday Chrome via the extension chrome.debugger API — keeps your login state, no --remote-debugging-port
nekoro-browser exposes 7 tools with mixed quality. Naming is action-oriented (capture_screenshot, upload_file, close_tabs) but some tools are overly generic (cdp, exec_python). Descriptions exist but are brief (avg ~80 chars) and lack WHEN/WHY guidance. Schemas are present for all tools with proper JSON types, but parameter descriptions are minimal. Two tools (cdp, exec_python) are escape hatches that bypass normal tool composition. Error handling is absent, no guidance on retryability, user-fixable errors, or recovery paths. Output schemas are undocumented. The server prioritizes raw CDP access over high-level abstractions, which is intentional but limits LLM reasoning.
Capture a screenshot of the current page
Raw CDP command, e.g. method='Page.navigate', params={'url': 'https://example.com'}.
Close one or more browser tabs
Escape hatch: run arbitrary Python in the daemon namespace (all helpers pre-bound, top-level await allowed). Use when no single tool fits — e.g. multi-step flows in one round trip.
Open a new browser tab
Get current page information including URL, title, and other metadata
Upload a file to the current page
Escape hatch tools (cdp, exec_python) bypass composition patterns. cdp exposes raw Chrome DevTools Protocol; exec_python allows arbitrary Python execution. These undermine tool-level reasoning and make it impossible for LLMs to predict side effects or plan multi-step flows safely.
No output schemas documented. Tools return unstructured results (screenshots as base64, page_info as JSON object, etc.). LLMs cannot plan downstream calls or extract required fields without trial-and-error.
Descriptions are too brief (avg 50 chars) and lack WHEN/WHY context. 'Capture a screenshot of the current page' does not explain when to use it vs page_info, or what format the output is. Descriptions should be 50-200 chars with actionable guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
No error handling or recovery guidance. If a tool fails (e.g., file not found, tab already closed), the LLM receives no actionable error message. No distinction between retryable, user-fixable, or fatal errors.
Parameter descriptions are missing or minimal. 'path' in upload_file has a description, but 'tabs' in close_tabs and 'reuse' in new_tab lack context on valid values or constraints. LLMs cannot infer whether tabs is a list of integers or strings.