io.github.anthonybono21-cloud/leapfrog
NPM · LEAPFROG-MCP · SCANNED AUG 3
Multi-session browser MCP — 15 parallel isolated browsers, 37 tools, stealth, self-improvement.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (98 of 102), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (98 of 102), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 116 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability76
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3957 tokens (~106/item across 37 items; 37 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage99
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 96% of tool parameters carry a description.Partial
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · leapfrog-mcp
claude mcp add anthonybono21-cloud-leapfrog -- npx -y leapfrog-mcp
codex mcp add anthonybono21-cloud-leapfrog -- npx -y leapfrog-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"anthonybono21-cloud-leapfrog": {
"type": "local",
"command": [
"npx",
"-y",
"leapfrog-mcp"
],
"enabled": true
}
}
} openclaw mcp add anthonybono21-cloud-leapfrog --command npx --arg -y --arg leapfrog-mcp
mcp_servers:
anthonybono21-cloud-leapfrog:
command: "npx"
args: ["-y", "leapfrog-mcp"] {
"mcpServers": {
"anthonybono21-cloud-leapfrog": {
"command": "npx",
"args": [
"-y",
"leapfrog-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Aug 26 +60
- Provenance: unverified → fail ▼ security
- Known CVEs: unverified → partial ▲ security
- Install scripts: unverified → pass ▲ security
- Malware scan: unverified → pass ▲ security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- MCP protocol: unverified → pass ▲ functional
- Maintenance: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- License: unverified → pass ▲ functional
- Schema quality: unverified → excellent ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- Licence: MIT functional
- 1 Aug 26 −23
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 31 Jul 26 −18
- Malware scan: pass → unverified ▼ security
- 30 Jul 26 +18
- Dependency health: partial → unverified ▼ functional
- Tool coverage: unverified → 100 ▲ functional
- 28 Jul 26 −18
- Tool coverage: 100 → unverified ▼ functional
- Dependency health: unverified → partial ▲ functional
- First check of Schema quality: unverified functional
- 27 Jul 26 46
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/[email protected]
Provenance none
Ecosystem: npm · Outcome: none
Dependencies 98 packages
98 packages in the resolved dependency tree · 97 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
act Browser Action ~404
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.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Interaction to perform. |
| filePaths | — | — | File path(s) for upload action. Single string or array of strings. |
| height | integer | — | Viewport height for resize action. |
| holdDuration | integer | — | Hold duration in ms for click action (long-press). Uses mouse.down() + wait + mouse.up(). |
| key | string | — | Key name for press (e.g. 'Enter', 'Tab', 'Control+a'). |
| scrollAmount | integer | — | Pixels to scroll. Default: 300. |
| scrollDirection | string | — | Scroll direction. Default: down. |
| sessionId | string | yes | Session ID. |
| target | string | — | @eN ref or CSS selector. Required for click, fill, type, check, select, hover. |
| target2 | string | — | Drop destination for drag action. @eN ref or CSS selector. |
| typeDelay | number | — | Delay in ms between keystrokes for action='type'. Enables human-like typing speed. |
| value | string | — | Text for fill/type, option value for select. |
| width | integer | — | Viewport width for resize action. |
| x | number | — | X coordinate for mousemove action. |
| y | number | — | Y coordinate for mousemove action. |
No output schema declared.
No examples provided.
add_init_script Add Init Script ~78
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.
| Name | Type | Req | Description |
|---|---|---|---|
| script | string | yes | JavaScript code to inject. Runs in page context before any page scripts. |
| sessionId | string | yes | Session ID. |
No output schema declared.
No examples provided.
api_discover Discover Page APIs ~77
List JSON APIs the page has called. Captured automatically from XHR/fetch traffic. Classifies into: data, tracking, auth, cdn, ads.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | — |
| minConfidence | number | — | Minimum classification confidence (0-1). Default: 0. |
| sessionId | string | yes | — |
No output schema declared.
No examples provided.
api_export Export OpenAPI Spec ~65
Generate an OpenAPI v3 spec from observed API traffic. Navigate pages first to capture traffic, then export.
| Name | Type | Req | Description |
|---|---|---|---|
| includeTracking | boolean | — | Include tracking/analytics endpoints. Default: false. |
| sessionId | string | yes | — |
| title | string | — | API spec title. |
No output schema declared.
No examples provided.
batch_actions Batch Actions ~94
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.
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | yes | Array of actions to execute sequentially. |
| sessionId | string | yes | Session ID. |
No output schema declared.
No examples provided.
console_log Console Log ~74
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.
| Name | Type | Req | Description |
|---|---|---|---|
| level | string | — | Filter by level: error, warn, log, info, debug. |
| sessionId | string | yes | Session ID. |
No output schema declared.
No examples provided.
diff Snapshot Diff ~118
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.
| Name | Type | Req | Description |
|---|---|---|---|
| selector | string | — | CSS selector to scope snapshot to a page region. |
| sessionId | string | yes | Session ID. |
No output schema declared.
No examples provided.
domain_knowledge Domain Knowledge ~74
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.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | — | Domain to inspect (e.g. 'github.com'). Omit to list all. |
No output schema declared.
No examples provided.
execute Execute Script ~135
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.
| Name | Type | Req | Description |
|---|---|---|---|
| script | string | yes | JavaScript async function body with access to { page, context }. Example: 'await page.goto("..."); return await page.title();' |
| sessionId | string | yes | — |
| timeout | number | — | Timeout in ms. Default: 60000, max: 300000. |
No output schema declared.
No examples provided.
extract Extract Data ~117
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.
| Name | Type | Req | Description |
|---|---|---|---|
| js | string | — | JavaScript expression for type='js'. |
| maxChars | integer | — | Max output characters. |
| sessionId | string | yes | Session ID. |
| target | string | — | @eN ref or CSS selector. Omit for page-level. |
| type | string | — | What to extract. |
No output schema declared.
No examples provided.
navigate Navigate & Snapshot ~155
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).
| Name | Type | Req | Description |
|---|---|---|---|
| autoRetry | boolean | — | Auto-retry with stealth escalation when blocked. Default: true. |
| maxRetryLevel | integer | — | Max escalation level (0-5). Level 3+ rotates session. Default: 3. |
| sessionId | string | yes | Session ID. |
| url | string | yes | Full URL including https:// |
| waitUntil | string | — | Wait strategy. Use networkidle for SPAs. |
No output schema declared.
No examples provided.
network_intercept Network Intercept ~156
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.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Intercept action. |
| mockBody | string | — | Response body for mock responses. |
| mockContentType | string | — | Content-type for mock responses. Default: application/json. |
| mockStatus | integer | — | HTTP status for mock responses. |
| ruleId | string | yes | Unique rule ID. Use for adding and removing rules. |
| sessionId | string | yes | Session ID. |
| urlPattern | string | — | URL glob pattern to match (e.g. '**/analytics/**'). Required for block/log/mock. |
No output schema declared.
No examples provided.
network_log Network Log ~141
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.
| Name | Type | Req | Description |
|---|---|---|---|
| contentType | string | — | Content-type filter (e.g. 'json'). |
| method | string | — | HTTP method filter (GET, POST, etc). |
| sessionId | string | yes | Session ID. |
| statusMax | integer | — | Maximum status code. |
| statusMin | integer | — | Minimum status code (e.g. 400 for errors). |
| urlPattern | string | — | Regex or substring to filter URLs. |
No output schema declared.
No examples provided.
paginate Pagination Extraction ~278
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.
| Name | Type | Req | Description |
|---|---|---|---|
| delayMs | integer | — | Delay between pages in ms. Default: 1000. |
| extractJs | string | — | JavaScript expression for extractType='js'. |
| extractTarget | string | — | CSS selector to scope extraction to a specific container. |
| extractType | string | — | What to extract from each page. |
| maxCharsPerPage | integer | — | Max characters per page extraction. Default: 5000. |
| maxPages | integer | — | Maximum pages to extract. Default: 10. |
| nextSelector | string | — | CSS selector for the next button, or 'auto' to detect automatically. |
| paginationType | string | — | Pagination strategy: click (next button), scroll (infinite scroll), url (URL pattern). |
| sessionId | string | yes | Session ID. |
| stopWhen | string | — | Stop condition. Default: auto (all heuristics). |
| urlPattern | string | — | URL pattern with {page} placeholder for paginationType='url'. |
No output schema declared.
No examples provided.
pool_status Pool Status & Resources ~44
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
profile_delete Delete Auth Profile ~30
Delete a saved persistent browser profile and all its data.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Profile name to delete. |
No output schema declared.
No examples provided.
profile_import_from_chrome Import Profile from Chrome ~144
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
| Name | Type | Req | Description |
|---|---|---|---|
| cdp | string | — | CDP endpoint. Default: http://localhost:9222 |
| domains | array | — | Only capture cookies from these domains. Omit for all cookies. |
| name | string | yes | Profile name to save as (e.g. 'google-auth', 'my-chrome'). |
No output schema declared.
No examples provided.
profile_list List Auth Profiles ~18
List saved persistent browser profiles with their auth status.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
profile_warm Warm Browser Profile ~97
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.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session ID (must be a profile-based session). |
No output schema declared.
No examples provided.
screenshot Screenshot ~95
Capture a screenshot of the current page. Returns the image inline as base64. Optionally save to disk with savePath.
| Name | Type | Req | Description |
|---|---|---|---|
| fullPage | boolean | — | Capture full scrollable page. |
| savePath | string | — | Optional file path to save the screenshot to disk. If omitted, image is returned inline only. |
| selector | string | — | CSS selector to capture a specific element. |
| sessionId | string | yes | Session ID. |
No output schema declared.
No examples provided.
session_create Create Browser Session ~440
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.
| Name | Type | Req | Description |
|---|---|---|---|
| acceptDownloads | boolean | — | Whether to accept downloads. Default: true. |
| cdp | string | — | CDP endpoint URL to connect to a running Chrome instance (e.g. 'http://localhost:9222'). |
| clientId | string | — | Client identifier for per-client pool partitioning. Used with LEAP_MAX_SESSIONS_PER_CLIENT. |
| colorScheme | string | — | Preferred color scheme. |
| extensions | array | — | Paths to unpacked Chrome extensions to load. |
| geolocation | object | — | Geolocation to emulate. |
| headed | boolean | — | Run browser with visible UI for this session. Overrides LEAP_HEADED env var. |
| locale | string | — | Browser locale (e.g. 'en-US', 'fr-FR'). |
| permissions | array | — | Permissions to grant (e.g. ['geolocation', 'notifications']). |
| pinned | boolean | — | Pin this session to prevent idle timeout cleanup. |
| profile | string | — | Profile shorthand name (e.g. 'github', 'gmail'). Uses persistent Chrome profile at ~/.leapfrog/chrome-profiles/{name}/. |
| profilePath | string | — | Path to a Playwright storageState JSON file for pre-authenticated sessions. |
| proxy | object | — | Per-session proxy configuration. Each session can use a different proxy. |
| stealth | boolean | — | Enable/disable stealth mode for this session. Default: true (uses global setting). |
| timezoneId | string | — | Timezone ID (e.g. 'America/New_York', 'Europe/London'). |
| userAgent | string | — | Custom user agent string. |
| viewport | object | — | Custom viewport. Default: 1280x720. |
No output schema declared.
No examples provided.
session_create_batch Create Multiple Browser Sessions ~70
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.
| Name | Type | Req | Description |
|---|---|---|---|
| sessions | array | yes | Array of sessions to create. |
No output schema declared.
No examples provided.
session_destroy Destroy Browser Session ~34
Close and clean up a browser session. Frees a pool slot.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session ID to destroy. |
No output schema declared.
No examples provided.
session_export Export Session Recording ~112
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.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | Output format. Default: json. |
| keepExtracts | boolean | — | Include extract steps in the recording. Default: false. |
| name | string | — | Recording name. Default: auto-generated. |
| sessionId | string | yes | Session ID. |
No output schema declared.
No examples provided.
session_export_trace Export Session Trace ~50
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.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session ID. |
No output schema declared.
No examples provided.
session_health Session Health Check ~51
Check if a session is healthy (browser connected, page responsive). Omit sessionId to check all sessions. Quick diagnostic for debugging.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | — | Session ID. Omit to check all. |
No output schema declared.
No examples provided.
session_list List Browser Sessions ~20
List all active browser sessions with their URLs and idle times.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
session_list_profiles List Saved Profiles ~15
List all saved authentication profiles.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
session_memory Session Action History ~53
Recall what actions were performed in this session. Useful after context window compression to recover lost context.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Number of recent actions to return. Default: 20. |
| sessionId | string | yes | — |
No output schema declared.
No examples provided.
session_replay Replay Session Recording ~101
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.
| Name | Type | Req | Description |
|---|---|---|---|
| onError | string | — | Error handling: stop (default) or skip. |
| params | object | — | Parameter overrides for {{placeholder}} values. |
| recording | string | yes | Recording JSON string (from session_export). |
| sessionId | string | yes | Session ID. |
No output schema declared.
No examples provided.
session_save_profile Save Session Profile ~86
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.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Profile name (e.g. 'google', 'github'). Overwrites if exists. |
| sessionId | string | yes | Session ID to save. |
No output schema declared.
No examples provided.
snapshot Page Snapshot ~97
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').
| Name | Type | Req | Description |
|---|---|---|---|
| maxChars | integer | — | Max output chars. |
| selector | string | — | CSS selector to scope snapshot to a page region. |
| sessionId | string | yes | Session ID. |
No output schema declared.
No examples provided.
tab_close Close Tab ~66
Close a tab by index. Defaults to the active tab. Cannot close the last remaining tab. Returns a snapshot of the new active tab.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session ID. |
| tabIndex | integer | — | Tab index to close. Omit to close the active tab. |
No output schema declared.
No examples provided.
tab_switch Switch Tab ~76
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.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session ID. |
| tabIndex | integer | yes | Tab index to switch to. -1 for last (most recent) tab. |
No output schema declared.
No examples provided.
tabs_list List Tabs ~52
List all open tabs in a session. Shows index, URL, title, and which tab is active. New tabs (popups, OAuth windows) are automatically tracked.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session ID. |
No output schema declared.
No examples provided.
wait_for Smart Wait ~144
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.
| Name | Type | Req | Description |
|---|---|---|---|
| condition | string | yes | What to wait for. |
| js | string | — | JS expression that should return truthy (for js condition). |
| sessionId | string | yes | Session ID. |
| target | string | — | @eN ref or CSS selector (for element/text conditions). |
| text | string | — | Text to find (for text condition) or URL pattern (for navigation). |
| timeout | integer | — | Max wait time in ms. Default 10000, max 30000. |
No output schema declared.
No examples provided.
wait_for_human Wait for Human ~96
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.
| Name | Type | Req | Description |
|---|---|---|---|
| reason | string | yes | Why human help is needed (e.g. 'CAPTCHA detected', 'Login required'). |
| sessionId | string | yes | Session ID. |
No output schema declared.
No examples provided.