browser_assert_no_errors

MCP tool from Mochi by DevZonayed

One-call health gate: ok=false if any console error/uncaught exception or any >=400/failed request happened since the page loaded (sinceNavigation default, or sinceMs, with ignoreUrlContains). Failed-request entries include .body.

How to use it

Project documentation lists browser_assert_no_errors for the Mochi MCP server. Add the server to your MCP client (Claude Desktop, Cursor, Windsurf and others), then check which tools your installed version makes available. Tool availability can depend on configuration and credentials. A server handshake does not verify this tool’s behavior. See the full listing for setup details.

FULL MOCHI LISTING

Other tools in Mochi (39)

browser_act_and_observe

Perform one action (click/type/navigate/presskey/clickat) and classify the result: WORKS / NO-OP / ERROR / NAVIGATES. A NO-OP (clickable but nothing changed) is a dead control = defect. Returns urlChanged, domChanged, networkDelta, consoleDelta.

browser_assert

Verify url-contains, url-equals, title-contains, element-exists, element-missing, text-contains, text-equals. Returns {ok, got}.

browser_audit_interactives

Enumerate every actionable control on the page (scope:"all"\

browser_clear_emulation

Reset viewport overrides.

browser_click

Click by selector (CDP). Pass intent to cache the selector for next time.

browser_click_at

Click at pixel coords (CDP).

browser_close_tab

Close a specific session tab.

browser_console_messages

accepts sinceNavigation:true to scope to the

browser_emulate_viewport

Device Mode via CDP. Presets + custom width/height/DPR/UA.

browser_links

Compact visible links with text, href, selector ref, and box.

browser_list_tabs

List session tabs + CDP attachment state.

browser_navigate

Navigate primary tab, wait for load.

browser_network_requests

accepts sinceNavigation, sinceMs, and

browser_open_tab

Open new tab inside the session group.

browser_page_assets

Hash the live page assets (script/css/document) with sha256 + a pageHash. Confirm the live bundle hash == the built hash so you never test a stale cached deploy.

browser_playbook_delete

Remove a playbook + workflow + screenshots.

browser_playbook_get

Return one playbook with meta + body sections + workflow JSON.

browser_playbook_list

List playbooks under .continuum/playbooks/, filter by origin/tag/verifiable.

browser_playbook_match

Score-match playbooks against a URL, intent, or task description.

browser_playbook_run

Replay a playbook (with self-heal) using provided inputs; recursively executes composes/next chains; returns verdict + evidence.

browser_playbook_save

Create/update a playbook (validates frontmatter and required sections).

browser_press_key

Real keyboard event (CDP).

browser_request_attention

Post an OS notification asking the human to look (captcha, choice, or "done — come look"). Click focuses the window.

browser_screenshot

PNG/JPEG (viewport / fullPage / elementRef).

browser_scroll

Absolute {x,y} or relative {deltaX,deltaY}.

browser_session_end

Detach debugger, ungroup or close session tabs.

browser_session_health

accepts heal:true to re-attach the debugger to

browser_session_start

New tab group + primary tab. Pass newWindow:true to spawn a fresh window. Posts a click-to-focus notification instead of stealing focus.

browser_set_storage

Deterministic auth/state seeding — set localStorage, sessionStorage, and cookies (or clear) in one call so a flow starts from a known logged-in state.

browser_snapshot

ARIA tree with stable refs + pixel boxes. Defaults to compact, viewport-only, redacted, depth-limited, and 12KB capped.

browser_snapshot_node

Return one compact subtree from the stored snapshot by ref, text, or query path.

browser_snapshot_query

Search the stored snapshot by text/name/role/ref/tag and return tiny excerpts.

browser_text

Compact visible text lines, optionally filtered by query. Use before snapshot for reading/searching content.

browser_type

Focus + clear + insertText. Pass intent to cache.

browser_upload_file

Attach a file to a page target via a strategy chain: direct (DOM.setFileInputFiles) → intercept (file-chooser dialog) → drop (synthesized DataTransfer + DragEvent) → paste (synthesized ClipboardEvent). Bypasses the native OS file picker entirely. Target by selector, ref, trigger, or auto: { near }.

browser_upload_stage

Stage a file into the per-project library at .continuum/uploads/. Accepts path, https url, dataUrl, or base64. Returns a stable stashId (sha256-based, idempotent) reusable across many uploads.

browser_wait

Sleep up to 60s.

browser_wait_for_response

Block until a matching network response arrives (urlGlob/urlContains, method, statusGte/statusLt, timeoutMs). Proves a write actually persisted instead of guessing from the UI.

browser_window_resize

Resize/move/maximize the actual window (only safe with newWindow).