Skip to content

Browser ​

Domain: browser

Primary browser control and DOM interaction domain; the usual entry point for most workflows.

Profiles ​

  • workflow
  • full

Typical scenarios ​

  • Navigate pages
  • Interact with the DOM and capture screenshots
  • Work with tabs and storage

Common combinations ​

  • browser + network
  • browser + instrumentation
  • browser + workflow

Full tool list (85) ​

ToolDescription
get_detailed_dataRetrieve large data by detailId.
get_offloaded_dataRetrieve the original bytes of a field that was offloaded to disk (see the _offload.path in a placeholder). Returns base64 by default for binary blobs (e.g. decoded data: URIs); use encoding="utf8" for text.
browser_attachConnect to a running browser.
browser_list_tabsList open browser tabs with URLs and titles.
browser_list_cdp_targetsList CDP targets with optional type/URL/title filters.
browser_select_tabSwitch active tab by index, URL pattern, or title pattern.
browser_attach_cdp_targetAttach to a CDP target by targetId.
browser_detach_cdp_targetDetach the current CDP target session.
browser_evaluate_cdp_targetEvaluate JS in the attached CDP target.
browser_list_workersEnumerate Service Worker / Shared Worker / dedicated Web Worker targets via Target.getTargets. Use browser_worker_scripts(targetId=...) afterwards to dump a worker's loaded scripts — essential for inspecting PWA / SW-backed auth code.
browser_worker_scriptsAttach a CDP session to a worker target and dump its parsed scripts (equivalent to get_all_scripts, but scoped to a worker). Debugger.scriptParsed is replayed on Debugger.enable, so already-loaded worker scripts are returned.
browser_font_fingerprintEnumerate locally-installed fonts for fingerprint analysis. Primary path is the Local Font Access API (queryLocalFonts, Chromium 103+); when unavailable or denied, falls back to a small document.fonts.check probe set. Returns the detected font set, a stable hash for comparison, and optionally spoofs the font fingerprint.
browser_launchLaunch Chromium/Camoufox or connect to a running browser.
browser_closeClose the browser and release all resources.
browser_statusReport browser status: running, tab count, version.
page_navigateNavigate the page to a URL with wait and network options.
page_reloadReload the current page.
page_backNavigate back in browser history.
page_forwardNavigate forward in browser history.
page_list_framesList page frames for frame targeting.
page_clickClick a page element by CSS selector.
page_typeType text into an element.
page_upload_filesUpload one or more local files into an <input type="file"> element.
page_selectSelect option(s) in a <select> element.
page_hoverHover over an element by CSS selector.
page_scrollScroll to absolute or relative coordinates.
page_wait_for_selectorWait for an element to appear.
page_evaluateExecute JavaScript in page context.
page_screenshotCapture a page or element screenshot.
get_all_scriptsList all scripts loaded by the page with optional source.
get_script_sourceRetrieve source code of a script by ID or URL pattern.
console_monitorToggle console log capture (log, warn, error, info, debug).
console_get_logsRetrieve captured console logs with type and time filters.
console_executeEvaluate a JS expression in the browser console context.
page_inject_scriptInject JavaScript to run on every page load.
page_coverage_startStart JS+CSS code coverage collection on the active page. Coverage tracks which bytes of each loaded script/stylesheet are actually executed. Use page_coverage_stop to stop collection and retrieve results.
page_coverage_stopStop coverage collection and return per-script JS+CSS coverage results. Includes total bytes, used bytes, and coverage percentage per URL.
page_block_scriptManage script blocking rules by URL pattern. Blocked scripts are prevented from loading/executing. Actions: add/block (add a rule), remove/unblock (remove a rule), list (show all rules), clear (remove all).
page_cookiesManage page cookies; clear requires matching expectedCount.
page_set_viewportSet the browser viewport dimensions.
page_emulate_deviceEmulate a mobile device profile.
page_local_storageRead, write, delete, or clear localStorage entries for the current origin.
page_session_storageRead, write, delete, or clear sessionStorage entries for the current origin.
page_storage_infoQuery navigator.storage.estimate() for {usage, quota} and navigator.storage.persisted() to inspect the origin storage budget and persistence status (offline/PWA reverse engineering).
browser_passkey_seedSeed a WebAuthn/Passkey credential into the browser for test automation.
page_press_keySimulate a key press by name.
page_handle_dialogControl how JavaScript dialogs (alert/confirm/prompt/beforeunload) are answered. By default installs a persistent handler that auto-dismisses all dialogs. Set dismissAll=false for one-shot handling of the next dialog.
service_worker_deliver_pushDeliver a synthetic push message to a service worker via CDP ServiceWorker.deliverPushMessage. Requires an attached CDP session on a SW target.
service_worker_dispatch_syncDispatch a Background Sync event to a service worker via CDP ServiceWorker.dispatchSyncEvent. Requires an attached CDP session on a SW target.
captcha_detectDetect CAPTCHAs on the current page.
captcha_waitBlock until the user manually solves the CAPTCHA.
captcha_configConfigure CAPTCHA detection sensitivity and solver backend.
stealth_injectInject anti-detection scripts to reduce bot fingerprint exposure.
stealth_set_user_agentSet User-Agent and fingerprint.
stealth_configure_jitterConfigure CDP timing jitter.
stealth_generate_fingerprintGenerate a browser fingerprint.
stealth_verifyRun anti-detection checks.
camoufox_geolocationGet geolocation for a locale.
camoufox_serverStart, close, or check status of a Camoufox anti-detect server.
framework_state_extractExtract React/Vue/Svelte/Solid component state and meta-framework info.
indexeddb_dumpExport IndexedDB databases and records. Supports keyRange queries (IDBKeyRange.bound/lower/upper), indexName (query a specific index), count (count-only mode), and cursor pagination (stream large stores in batches).
js_heap_searchSearch JS heap for strings matching a pattern.
tab_workflowCross-tab coordination.
browser_codegen_startStart recording browser actions as replayable steps.
browser_codegen_stopStop recording browser actions and return cleaned replay steps.
browser_performance_observerAtomic primitive: subscribe to PerformanceObserver entry types in the active page and return both buffered and live entries observed during a collection window. Entry types are passed through to PerformanceObserver.observe({ type }) verbatim (e.g. largest-contentful-paint, layout-shift, longtask, event, long-animation-frame); unsupported entry types are skipped silently. One observer per type — the API does not accept multiple types in a single observe() call.
browser_resource_timingAtomic primitive: read Resource Timing API entries for the active page and decompose each resource into dns / connect / tls / ttfb / download phases plus transfer and body sizes. Optionally include Server-Timing headers and filter by URL substring. A read-only snapshot — no observers or listeners are installed.
browser_cdp_performance_metricsAtomic primitive: fetch browser runtime metrics via CDP Performance.getMetrics() on the active page. Returns raw CDP-level counters (LayoutCount, RecalcStyleCount, ScriptDuration, TaskDuration, JSHeapUsedSize, Nodes, Documents, Frames, ...) — not Web Vitals (use browser_get_metrics for those).
v8_type_profileAtomic primitive: start or stop V8 type profiling via CDP Profiler.startTypeProfile() / takeTypeProfile() / stopTypeProfile(). Type profiles record the runtime types flowing through each function entry (type:Array, type:Object, type:number, ...) — the raw material for deobfuscating VM dispatchers or polymorphic call sites. action="stop" returns per-script entries and optionally persists the raw profile to a JSON artifact (artifacts/profiles/).
browser_get_metricsAtomic primitive: collect page performance metrics via PerformanceMonitor — Web Vitals (FCP, LCP, CLS, TTFB), DOM timing (domContentLoaded, loadComplete), engine-level counters (scriptDuration, layoutDuration, recalcStyleDuration) and JS heap sizes (usedJSHeapSize / totalJSHeapSize / jsHeapSizeLimit). Optionally include the raw performance timeline entries. Replaces the legacy network-domain performance_get_metrics (still working as a backward-compat alias).
browser_trace_startAtomic primitive: begin a Chrome performance trace on the active page via page.tracing.start(). Pair with browser_trace_stop to save the trace to disk. Use a sensible categories list when you have a specific hypothesis (e.g. ["devtools.timeline","v8.execute","blink.user_timing"]); the default set covers most profiling needs.
browser_trace_stopAtomic primitive: stop the Chrome performance trace started by browser_trace_start and persist it to artifacts/traces/ (or to a custom path). Returns event count, file size, and a Chrome DevTools hint. Fails clearly if tracing was never started or has already been stopped.
browser_cpu_profile_startAtomic primitive: begin CDP CPU profiling on the active page (Profiler.start). Pair with browser_cpu_profile_stop to save the .cpuprofile. Set samplingInterval to 30-100 µs for high-resolution profiles (default 1000 µs / 1 ms).
browser_cpu_profile_stopAtomic primitive: stop CDP CPU profiling, rank hot functions by sample count, and persist the raw profile to artifacts/profiles/ (or a custom path). The hot function list is derived from the samples array — modern Chrome profiles do not populate hitCount. Fails clearly if profiling was never started.
human_mouseMove mouse along a Bezier curve with jitter.
human_scrollScroll with randomized speed and pauses to mimic human behavior.
human_typingType text with human-like speed and occasional typos.
captcha_solver_capabilitiesReport CAPTCHA solving mode availability.
captcha_vision_solveSolve a CAPTCHA with manual flow or a configured external service.
widget_challenge_solveSolve a widget challenge with hook, manual, or configured external service.
browser_jsdom_parseParse HTML into an in-memory JSDOM session. No browser needed.
browser_jsdom_queryQuery a JSDOM session with a CSS selector.
browser_jsdom_executeEvaluate JS inside a JSDOM session. Requires explicit authorization — arbitrary code execution.
browser_jsdom_serializeSerialize a JSDOM session to HTML.
browser_jsdom_cookiesManage cookies on a JSDOM session. Isolated from the attached browser.

Released under AGPL-3.0-only