io.github.Glittering/ai-browser · version 2.5.2 · 3,454 weekly npm downloads · audited 2026-11-03
Notes
No hidden-instruction or invisible-character findings in any tool, prompt, or resource description.
Checks the directory's published tool requirements that are visible from tools/list. Passing them does not guarantee acceptance.
browse_navigate, browse_get_tree, browse_act, browse_evaluate, browse_scroll, browse_wait, browse_auth_state, browse_screenshot, browse_tabs, browse_network, browse_canvas, browse_diff, browse_capabilities, browse_repaint, browse_downloads, browse_errors, browse_quitNot a vulnerability by itself. It tells you what an injected prompt could ask this server to do, so you can decide which tools need approval.
| Name | Title | Hint | Description |
|---|---|---|---|
browse_navigate | Navigate tab | writes | Navigate your tab to a URL. Returns at the requested milestone (default: DOM ready) — it does not wait for load, which SPAs often never fire. |
browse_get_tree | Read semantic tree | read-only | Return the page semantic tree (roles, labels, actions, bounds). Root adds editors (primary) when 2+ editable. |
browse_act | Act on element | writes | Act on a data-ai-id element. type appends at caret, setContent replaces all. page_changed:false = dispatched but page unchanged (wrapper). |
browse_evaluate | Run page JavaScript | writes | Run a JS expression in the page context and return its value. Promises are awaited (async IIFEs return their resolved value, not {}). |
browse_scroll | Scroll page | writes | Scroll the page or an element into view. |
browse_wait | Wait for condition | read-only | Poll the page until a condition holds or timeout. Conditions: button_enabled, modal_appeared, text_contains, url_contains. |
browse_auth_state | Check login / auth-wall state | read-only | Is this tab still logged in, or bounced to a login wall? auth_wall.detected=true means stop debugging and re-authenticate first. logged_in is heuristic; auth_wall is the signal to trust. |
browse_screenshot | Screenshot the viewport | read-only | Screenshot the viewport (base64). Use FIRST when an action misbehaves: the tree cannot show overlays, canvas, occlusion or glitches. Warns about visible password inputs. |
browse_tabs | Tabs | writes | Tabs: list/new/close/switch/window. Yours are grouped and capped. switch = default; add show:true. new never steals the view unless show:true. window = hide/show. |
browse_network | Inspect network | writes | Query captured HTTP requests: list/get/clear/configure. Captures headers and POST bodies; sensitive headers redacted. Each op reads its own group: filters / include / body_offset / configure. |
browse_canvas | Read canvas | writes | Read <canvas> via captured draw calls (not pixels): list, read texts/regions, configure, or capture a PNG fallback. 2D text comes from fillText, so no OCR; WebGL is opaque. |
browse_diff | Snapshot and diff | read-only | Prove an action changed the page: snapshot a baseline, then diff to get added/removed/changed paths with before/after values. Success is not evidence. |
browse_capabilities | Probe capabilities | read-only | Probe how to operate a page: DOM vs canvas, iframes, app objects on window, JSON endpoints, plus a plan. deep=true also probes closure-hidden models (canvas editors that report none). |
browse_repaint | Force repaint | writes | Force the compositor to redraw a tab's BrowserView when the window shows a stale page; returns repaint_count so the repaint is provable. |
browse_downloads | List downloads | read-only | List a tab's downloads with on-disk paths. Downloads are async: poll this after clicking export/download instead of expecting the path in the click response. |
browse_errors | Read error log | read-only | Read the main-process error log: uncaught exceptions, crashes, failed navigations, RPC errors. Each entry includes recent calls as context. Returns the on-disk JSONL path. |
browse_quit | Quit browser | destructive | Gracefully shut down the AI Browser (releases resources). |
npx mcpvetter scan --liveAdd this to a README:
[](https://mcpvetter.com/servers/glittering0717-ai-browser)Get the MCPVetter verified badge, a re-audit within 24 hours of every npm release, and an email whenever tools, findings, or Claude directory readiness change. $29 per server per month. You prove ownership first, free.