Self-hosted Chromium MCP server for ChatGPT with OAuth and human approval
Cloud Browser MCP defines 14 tools with complete input schemas and descriptions. Naming follows verb_noun convention (browser_*). However, descriptions are inconsistent in depth, some are terse (browser_list_tabs: 47 chars) while others are detailed (browser_observe: 120+ chars). Parameter descriptions are present but often lack constraint details (e.g., max_chars range 256-100000 is documented, but many enum values lack explanation). Output schemas are not documented in the source. Error handling exists (BrowserError class) but recovery guidance is minimal. Security patterns (lease_id, confirmation_token) are present but not explained in tool descriptions. Tool composition is sound, each tool has a single responsibility and output IDs chain to downstream tools.
Perform an action on the page (click, type, scroll, etc.) with optional approval and completion conditions.
Retrieve artifacts (downloads, screenshots, etc.) from the browser session.
Read from or write to the browser's clipboard.
Close a browser session or tab.
Configure browser session settings like viewport size and capture options.
Hand off control to a human operator for manual intervention.
Output schemas not documented. Tools return complex objects (page revision, artifacts, logs) but LLMs cannot infer what fields to expect. Forces agents to guess downstream field names.
Parameter descriptions lack constraint details. 'configuration' object in browser_configure and 'action' object in browser_act are documented as generic objects without specifying valid keys, types, or examples.
Security parameters (lease_id, confirmation_token) lack explanation in descriptions. LLMs cannot determine when these are required or how to obtain them.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2025-06-18+ | v2 |
List existing tabs without selecting or refreshing them.
Retrieve console logs and network logs from the browser session.
Navigate an explicitly requested HTTP(S) URL or browsing history.
Observe rendered text, visible elements and/or an actual MCP image. Cursor is revision-bound.
Create a browser session, or reuse it and optionally create a new tab.
List and invoke native WebMCP tools exposed by the page.
Get current browser status, resource usage, and session information.
Wait for a condition to be met on the page.
Error handling exists (BrowserError class with INVALID_INPUT, UNSUPPORTED_OPERATION) but recovery guidance is absent. Errors do not suggest next steps or alternative tools.
Descriptions vary widely in length (47 - 120+ chars). Shorter descriptions (browser_list_tabs, browser_status) lack context for LLM selection. Inconsistency suggests incomplete documentation.