Give AI agents eyes on the web: an MCP server that wraps Playwright for local browser search, navigation, extraction, and interaction.
Agent-eyes provides 13 tools with basic schemas and descriptions, but falls short of production quality. Most tools have descriptions (10-150 chars, below the 194-char baseline), and input schemas are present but lack depth. Parameter descriptions are sparse or missing entirely. Error handling is minimal, tools return JSON with isError flags but lack recovery guidance. No tool annotations (readOnlyHint/destructiveHint). The ai_orchestrate_workflow and ai_plan_goal tools appear to be inferred from test fixtures rather than explicitly registered, capping their scores at 50. Overall, the server reads like a working prototype rather than a production-grade agent toolkit.
Orchestrate a multi-step AI workflow for browser automation
Plan a complex goal into sub-tasks for execution
Analyze the current page structure and extract metadata
Evaluate JavaScript in the browser context
Extract content from specific page sections using CSS selectors
Extract structured data from page using schema-based extraction
Get the content of the current page
Missing tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools like browser_interact (WRITE) and browser_evaluate_js (WRITE) lack explicit destructiveHint markers, forcing LLMs to infer risk from descriptions alone.
Sparse parameter descriptions. browser_interact's 'target' param lacks guidance on CSS selector format or data-agent-id syntax. browser_evaluate_js's 'restricted' param has no explanation of what 'restricted mode' means. LLMs cannot infer constraints from names alone.
Minimal error recovery guidance. Tools return JSON with isError flags, but error messages lack actionable next steps. E.g., browser_navigate 404 error says 'Do NOT try to invent/guess URLs' but does not suggest search_users() or similar recovery paths.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2025-06-18+ | v2 |
Get network request logs from the browser
Interact with page elements (click, type, select, press, hover, scroll)
Navigate to a URL in the browser
Perform OCR on a page chunk using Tesseract
Take a screenshot of the current page
Perform a web search using the browser
ai_orchestrate_workflow and ai_plan_goal appear inferred from test fixtures (mock-ai-orchestrator-server.ts) rather than explicitly registered in the main server code. Tool definitions are not directly visible in src/index.ts or tool registration files, capping their scores at 50.
Output schemas undocumented. Tools return JSON (e.g., browser_get_content returns 'content', 'interactive_map', 'spilled' fields) but no schema is published. LLMs cannot plan downstream calls without knowing response structure.