Leapfrog MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LEAP_HUD | No | Click ripple, zoom-to-target, scroll-to-target on agent actions | false |
| LEAP_TILE | No | Tile sessions in a grid (`true` | `master` | `false`) | false |
| LEAP_SOUND | No | Marimba chime on intervention detection (macOS) | false |
| LEAP_TRACE | No | Per-session Playwright tracing (screenshots + DOM snapshots) | false |
| LEAP_NOTIFY | No | macOS notification center alerts on intervention detection | false |
| LEAP_RECORD | No | Session recording (action history export) | false |
| LEAP_CHANNEL | No | Set `chrome` to use your installed Chrome | |
| LEAP_STEALTH | No | Stealth mode (anti-bot evasion) — 19 patches | true |
| LEAP_ALLOW_JS | No | Allow JS evaluation in `extract` and `wait_for` | true |
| LEAP_HEADLESS | No | Set `false` to watch the browser | true |
| LEAP_HUMANIZE | No | Experimental. Human-like mouse movement, typing cadence, and scroll behavior. | false |
| LEAP_LOG_LEVEL | No | `debug` / `info` / `warn` / `error` | info |
| LEAP_CDP_STEALTH | No | CDP detection evasion (`Runtime.enable` filtering) | true |
| LEAP_AUTO_CONSENT | No | Auto-dismiss cookie consent banners (10 frameworks + fallback) | true |
| LEAP_IDLE_TIMEOUT | No | Session idle timeout in ms (30 min). Set `0` to disable. | 1800000 |
| LEAP_MAX_SESSIONS | No | Max concurrent sessions | 15 |
| LEAP_PROFILES_DIR | No | Directory for persistent browser profiles | ~/.leapfrog/chrome-profiles |
| LEAP_SIDECAR_PORT | No | Sidecar HTTP server port (used with tiling) | 9222 |
| LEAP_TILE_PADDING | No | Padding between tiled windows (px) | 8 |
| LEAP_ALLOW_EXECUTE | No | Allow the `execute` tool (sandboxed Playwright scripts) | true |
| LEAP_BLOCK_LOCALHOST | No | Block localhost/127.x.x.x (allowed by default for local dev) | false |
| LEAP_CAPTCHA_API_KEY | No | API key for the configured CAPTCHA provider | |
| LEAP_CAPTCHA_PROVIDER | No | External CAPTCHA solver: `capsolver` | `2captcha` | `nopecha` | |
| LEAP_MAX_SESSIONS_PER_CLIENT | No | Per-client session pool limit |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| session_createA | Create a new isolated browser session with its own cookies and state. Returns a short session ID (e.g. s_k3m7x1) to pass to all other tools. Each session is a separate BrowserContext — no cookie leakage between sessions. Pool limit: 15 concurrent sessions. Sessions auto-expire after 30 minutes of inactivity. Use keep-alive pattern (periodic navigate or snapshot) for long-running sessions. |
| session_create_batchA | Create multiple isolated browser sessions concurrently — 5-10x faster than sequential session_create calls. Optionally navigate each to a URL. Returns all session IDs. A single reflow positions all windows into a unified grid after all sessions are created. |
| session_listA | List all active browser sessions with their URLs and idle times. |
| session_destroyA | Close and clean up a browser session. Frees a pool slot. |
| session_save_profileA | Save a session's cookies and auth state to disk. Use this after logging in to a site so future sessions can restore that login. Pass the returned profile path to session_create's profilePath to reuse it. |
| session_list_profilesA | List all saved authentication profiles. |
| navigateA | Navigate to a URL and return a compact accessibility snapshot with @eN refs. Refs like @e1, @e2 can be passed directly to the 'act' tool — no CSS selectors needed. Snapshots are ~200-500 tokens (vs 15,000 with Playwright MCP). |
| snapshotA | Re-snapshot the current page for fresh @eN refs. Use after 'act' when you need to re-orient, or scope to a region with 'selector'. Use 'selector' to dramatically reduce tokens (e.g. 'form', '#results'). |
| diffA | Compare the current page state against the last snapshot for this session. Returns only what changed (additions, removals, changes) — massive token savings vs a full re-snapshot. Use after 'act' instead of 'snapshot' when you just need to see what changed. On first call (no previous snapshot), returns the full snapshot with a note. Use 'selector' to scope the diff to a page region. |
| actA | Perform a browser interaction: click, fill, type, check, select, press key, scroll, hover, mousemove, drag, upload, resize, back, forward. Use @eN refs from navigate/snapshot as the target (e.g. '@e2'). CSS selectors also work. drag: requires target (source) and target2 (destination). upload: requires target (file input) and filePaths. resize: requires width and height (no target needed). holdDuration: for click, holds mouse down for N ms (long-press). Returns a fresh snapshot if the page navigated, or just the action result if it didn't. |
| screenshotB | Capture a screenshot of the current page. Returns the image inline as base64. Optionally save to disk with savePath. |
| extractA | Extract data from the page without a full snapshot. Types: text (visible text), html (markup), title, url, js (evaluate JavaScript). Use target with @eN or CSS selector for element-specific extraction. |
| pool_statusA | Show pool stats, resource usage (memory, uptime), and all active session summaries. Shows per-session idle time. Sessions approaching 30-minute idle timeout should be refreshed or saved. |
| network_logA | View captured HTTP requests/responses for a session. Shows method, status, URL, size, and timing. Filter by URL pattern, method, status range, or content-type. Network capture starts automatically when a session is created. |
| console_logA | View captured browser console messages (log, warn, error, info, debug). Console capture starts automatically when a session is created. Use level filter to focus on errors or warnings. |
| network_interceptA | Add or remove network intercept rules. Block requests (ads, trackers), mock API responses, or log specific traffic. Use action='remove' with ruleId to remove an existing rule. |
| wait_forA | Wait for a condition before proceeding. Supports: element visible, text appears, network idle, URL navigation, JS expression truthy. Returns a fresh snapshot after the wait completes. |
| tabs_listA | List all open tabs in a session. Shows index, URL, title, and which tab is active. New tabs (popups, OAuth windows) are automatically tracked. |
| tab_switchA | Switch to a different tab by index. Use -1 to switch to the most recently opened tab (useful for popups). Returns a snapshot of the newly active tab. |
| tab_closeA | Close a tab by index. Defaults to the active tab. Cannot close the last remaining tab. Returns a snapshot of the new active tab. |
| session_healthA | Check if a session is healthy (browser connected, page responsive). Omit sessionId to check all sessions. Quick diagnostic for debugging. |
| add_init_scriptA | Inject JavaScript that runs before every page load in a session. Persists across navigations (Playwright built-in behavior). Use for fingerprint overrides, custom stealth patches, or page instrumentation. |
| batch_actionsA | Execute multiple browser actions sequentially in a single MCP call. Eliminates round-trip overhead for humanization sequences (e.g. Bezier mouse paths, typed text with delays). Each action can have an optional delayAfter (ms) to pause between steps. Returns a single result with the outcome of each action. |
| executeA | Run a Playwright script with access to { page, context }. One tool call replaces 5-20 sequential MCP round trips. Use for complex flows with conditional logic, loops, error handling. NOTE: Scripts run in the Node.js process — equivalent to arbitrary code execution. Disable with LEAP_ALLOW_EXECUTE=false. |
| api_discoverA | List JSON APIs the page has called. Captured automatically from XHR/fetch traffic. Classifies into: data, tracking, auth, cdn, ads. |
| api_exportA | Generate an OpenAPI v3 spec from observed API traffic. Navigate pages first to capture traffic, then export. |
| session_memoryA | Recall what actions were performed in this session. Useful after context window compression to recover lost context. |
| profile_listA | List saved persistent browser profiles with their auth status. |
| profile_deleteA | Delete a saved persistent browser profile and all its data. |
| paginateA | Extract data across multiple pages in a single call. Handles click-next, infinite scroll, and URL-pattern pagination. Auto-detects 'next' buttons when nextSelector='auto'. Returns extracted content from each page plus metadata. Replaces 3-4 tool calls per page with one invocation. Cap: 50 pages, 100K total chars. |
| session_exportA | Export session action history as a replayable recording. Creates a JSON script from all mutating actions with @eN refs resolved to stable selectors. Use format='playwright' to get a Playwright JS script compatible with the execute tool. |
| session_replayA | Replay a recording in the current session. Executes each step directly against the browser. Override {{placeholder}} params with the params object. Set onError='skip' to continue past failures. |
| wait_for_humanA | Pause and request human intervention. Shows the @..@ overlay with your reason. Use when you encounter a CAPTCHA, login wall, or any situation requiring human action. The tool blocks until the user clicks 'Done' on the overlay. Returns success when resolved. |
| profile_warmA | Warm up a browser profile by browsing trusted sites (Google, Wikipedia, YouTube). Fresh profiles with zero history score near 0 on reCAPTCHA v3. A 60-90 second warm-up dramatically improves trust scores. Stores warm-up state in domain knowledge so it doesn't repeat. Must pass a sessionId of an existing session with a profile. |
| profile_import_from_chromeA | Connect to your real Chrome browser via CDP, capture its auth cookies, and save them as a Leapfrog profile. This gives you real Google auth, reCAPTCHA trust, and all your logged-in sessions — but in an isolated Leapfrog session, not your real browser. Start Chrome with: chrome --remote-debugging-port=9222 |
| domain_knowledgeA | Inspect what Leapfrog has learned about a website from previous visits. Shows stealth tier, wait strategy, block history, consent selector, API endpoints, and visit count. Pass no domain to list all known domains. |
| session_export_traceA | Export a Playwright trace file for a session. Requires LEAP_TRACE=true. The trace can be viewed at trace.playwright.dev for detailed action timeline. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/anthonybono21-cloud/leapfrog'
If you have feedback or need assistance with the MCP directory API, please join our Discord server