navigate hands back @eN refs that act takes directly, and diff answers the question act leaves open — what changed — without a second full snapshot. The reach is bounded in ways worth knowing before a long run: the pool holds 15 concurrent sessions, a session auto-expires after 30 minutes of inactivity unless something touches it, and paginate stops at 50 pages or 100K total chars. execute is the sharp edge — the description calls it equivalent to arbitrary code execution in the Node.js process, which is why it has its own off switch.
A Playwright-backed browser automation server covering 37 tools, over isolated sessions that each carry their own cookies, saved auth profile, console output and captured network traffic.
- Isolated sessions from a pool: session_create returns a short session id and takes proxy, viewport, locale, timezoneId, geolocation, permissions and stealth options, session_create_batch opens several at once, and session_list, session_health, pool_status and session_destroy cover the rest of their life.
- Page work addressed by @eN refs: navigate returns a compact accessibility snapshot at ~200-500 tokens, snapshot re-reads it, diff returns only the additions, removals and changes since the last one, act performs click, fill, type, select, press, scroll, hover, drag, upload and resize, and wait_for blocks on an element, text, network idle or a JS expression.
- Traffic already captured when the session opened: network_log filters requests by URL pattern, method, status range or content type, console_log filters messages by level, network_intercept blocks or mocks a request, api_discover classifies the JSON endpoints the page called, and api_export turns them into an OpenAPI v3 spec.
- Logins that survive the run: session_save_profile writes cookies and auth state to disk for session_create's profilePath, profile_import_from_chrome copies them out of a real Chrome over CDP, profile_warm browses trusted sites first, and session_list_profiles, profile_list and profile_delete manage what is stored.
- Whole flows in one call: batch_actions runs a sequence with per-step delays, paginate walks click-next, infinite-scroll and URL-pattern pagination up to 50 pages and 100K total chars, execute runs a Playwright script with page and context, and session_export and session_replay turn a session's history into a replayable recording.
- Ways out when a page will not cooperate: wait_for_human pauses behind an overlay until a person clicks through a CAPTCHA or login wall, domain_knowledge reports the stealth tier, wait strategy, block history and consent selector learned for a site, add_init_script injects JavaScript before every page load, and session_memory recalls what the session already did.
No account and no key for the browser tools themselves. profile_import_from_chrome needs a Chrome already listening for CDP on port 9222, session_export_trace needs LEAP_TRACE=true, and execute — which runs a Playwright script inside the server's Node.js process — is turned off with LEAP_ALLOW_EXECUTE=false.
One command — npm i leapfrog-mcp
