Control your local Chrome browser from a remote VPS - works on Windows, macOS, Linux. MCP compatible.
VPS Browser MCP has critical definition gaps. Tool descriptions are present but minimal (10-30 chars), falling well below the 50-200 char baseline for LLM-optimized descriptions. Input schemas exist for most tools but lack depth: parameters have type and description, but no enums, ranges, or validation constraints. Output schemas are completely undocumented, LLMs cannot infer what fields to expect from responses. Error handling is absent; no recovery guidance or error classification. The execute_js tool is particularly dangerous with no safety constraints or warnings. Tool composition is reasonable (6 focused tools), but naming could be clearer (e.g., 'get_dom' vs 'get_page_html'). No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels.
Click element by CSS selector
Execute JavaScript in tab context
Get DOM HTML or elements, optionally filtered by selector
Get current tab URL and title
Take screenshot of current tab
Type text into input field by CSS selector
Output schemas completely undocumented. LLMs cannot infer response structure (fields, types, pagination). Forces agents to guess what data is available.
Tool descriptions are 10-30 characters, far below 50-200 char baseline. 'Get current tab URL and title' and 'Click element by CSS selector' lack context for when/why to use each tool. No dependency hints or prerequisites.
execute_js tool has no safety constraints, warnings, or error guidance. Arbitrary JavaScript execution is high-risk; description must warn about side effects and document what is/isn't allowed.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
No error handling or recovery guidance. Tools lack error classification (retryable vs fatal), actionable error messages, or next-step hints. Agents cannot self-correct on failure.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Risk levels are known (READ_ONLY vs WRITE) but not exposed to the MCP protocol, limiting agent safety planning.