Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LEAP_HUDNoClick ripple, zoom-to-target, scroll-to-target on agent actionsfalse
LEAP_TILENoTile sessions in a grid (`true` | `master` | `false`)false
LEAP_SOUNDNoMarimba chime on intervention detection (macOS)false
LEAP_TRACENoPer-session Playwright tracing (screenshots + DOM snapshots)false
LEAP_NOTIFYNomacOS notification center alerts on intervention detectionfalse
LEAP_RECORDNoSession recording (action history export)false
LEAP_CHANNELNoSet `chrome` to use your installed Chrome
LEAP_STEALTHNoStealth mode (anti-bot evasion) — 19 patchestrue
LEAP_ALLOW_JSNoAllow JS evaluation in `extract` and `wait_for`true
LEAP_HEADLESSNoSet `false` to watch the browsertrue
LEAP_HUMANIZENoExperimental. Human-like mouse movement, typing cadence, and scroll behavior.false
LEAP_LOG_LEVELNo`debug` / `info` / `warn` / `error`info
LEAP_CDP_STEALTHNoCDP detection evasion (`Runtime.enable` filtering)true
LEAP_AUTO_CONSENTNoAuto-dismiss cookie consent banners (10 frameworks + fallback)true
LEAP_IDLE_TIMEOUTNoSession idle timeout in ms (30 min). Set `0` to disable.1800000
LEAP_MAX_SESSIONSNoMax concurrent sessions15
LEAP_PROFILES_DIRNoDirectory for persistent browser profiles~/.leapfrog/chrome-profiles
LEAP_SIDECAR_PORTNoSidecar HTTP server port (used with tiling)9222
LEAP_TILE_PADDINGNoPadding between tiled windows (px)8
LEAP_ALLOW_EXECUTENoAllow the `execute` tool (sandboxed Playwright scripts)true
LEAP_BLOCK_LOCALHOSTNoBlock localhost/127.x.x.x (allowed by default for local dev)false
LEAP_CAPTCHA_API_KEYNoAPI key for the configured CAPTCHA provider
LEAP_CAPTCHA_PROVIDERNoExternal CAPTCHA solver: `capsolver` | `2captcha` | `nopecha`
LEAP_MAX_SESSIONS_PER_CLIENTNoPer-client session pool limit

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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_list

List all active browser sessions with their URLs and idle times.

session_destroy

Close and clean up a browser session. Frees a pool slot.

session_save_profile

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_profilesB

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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