MCP server that lets AI tools browse in your own Chrome: native messaging host and setup wizard for the Yurei extension
Yurei provides 13 browser automation tools with explicit schemas and descriptions. However, most descriptions are terse (10-40 chars), parameter descriptions lack detail on constraints/formats, and output schemas are not documented. Tools like 'computer' combine multiple actions (click, type, scroll, screenshot) into one, violating single-responsibility. No error recovery guidance. Naming is verb-forward but some tools are overloaded (e.g., 'computer' with 10+ action types). Schema definitions are present but minimal, most parameters lack format/range constraints. This is typical of community automation servers: functional but not LLM-optimized.
Perform computer actions like clicking, typing, scrolling, and taking screenshots
Find elements on the page by text or role
Fill in form fields
Get all text content from the page
Execute JavaScript in the page context
Navigate a tab to a URL
Read console messages from the page
Tool 'computer' violates single-responsibility principle: combines screenshot, click, type, scroll, drag, key, hover, wait into one tool with 10+ action types. Should split into separate tools (take_screenshot, click_element, type_text, scroll_page, etc.) so agents can compose them independently.
Descriptions are too terse (10-50 chars). E.g., 'Get context about open tabs' lacks WHEN to use it, WHAT it returns, and HOW it differs from read_page.
Output schemas are not documented. Tools like read_page, find, read_console_messages return structured data but the response format is not visible in the provided code. LLMs cannot plan downstream calls without knowing what fields to expect.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Read network requests made by the page
Read the page structure and content
Resize the browser window
Close one or more tabs
Get context about open tabs
Create a new tab with a given URL
Parameter descriptions lack format/range constraints. E.g., 'coordinate' is described as 'Optional [x, y] coordinate' but does not specify pixel range, whether it's relative to viewport or page, or what happens if out-of-bounds. 'action' in computer tool lists 10+ values but no enum constraint.
No error recovery guidance. Tools like navigate, form_input, javascript_tool can fail (invalid URL, element not found, JS error) but descriptions do not explain what to do next or how to self-correct. Per pattern:recovery-guide, errors should guide the LLM to retry or use an alternative tool.