{"_id":"leapfrog","_rev":"2-6864275ba85d58daecf45e03aa604db4","name":"leapfrog","dist-tags":{"latest":"0.2.0"},"versions":{"0.0.1":{"name":"leapfrog","version":"0.0.1","keywords":["mcp","browser","playwright","ai","agent","automation","stealth","multi-session"],"author":{"name":"leapfrogai"},"license":"MIT","_id":"leapfrog@0.0.1","maintainers":[{"name":"leapfrogai","email":"anthonybono21@gmail.com"}],"homepage":"https://github.com/leapfrog-mcp/leapfrog#readme","bugs":{"url":"https://github.com/leapfrog-mcp/leapfrog/issues"},"dist":{"shasum":"d71c8029cac09f9ee2216d9161ac62fac560bad0","tarball":"https://registry.npmjs.org/leapfrog/-/leapfrog-0.0.1.tgz","fileCount":1,"integrity":"sha512-Ta+9sVJpJs5y+i/xqCsmA3QuvEbQlNNUedXAfKwyTA0qpFdlTEnZG6VOKIqPnlaBDJTnTIwSELxLhtxZ20zXEQ==","signatures":[{"sig":"MEQCIEHU3Lg+DyqOI/XLe/hahrNdIw9EmF1Ga+khvGVXQ54KAiBKRP+ict3DCeFq9keHyvYos6FkA2cRW30QHLETPyhj4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":434},"_npmUser":{"name":"leapfrogai","email":"anthonybono21@gmail.com"},"repository":{"url":"git+https://github.com/leapfrog-mcp/leapfrog.git","type":"git"},"_npmVersion":"10.9.4","description":"Multi-session browser MCP server for AI agents — up to 10x fewer tokens than Playwright, stealth mode, crash recovery","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/leapfrog_0.0.1_1775070509721_0.874330856770664","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"leapfrog","version":"0.2.0","description":"Multi-session browser MCP for AI agents — 19 tools, up to 10x fewer tokens than Playwright, stealth mode","type":"module","main":"dist/index.js","types":"dist/types.d.ts","bin":{"leapfrog":"dist/index.js"},"scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js","test":"vitest run","prepublishOnly":"npm run build && npm test","postinstall":"npx playwright install chromium"},"keywords":["mcp","browser","playwright","ai","agent","automation","headless","multi-session","claude","cursor"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/anthonybono21-cloud/leapfrog.git"},"homepage":"https://github.com/anthonybono21-cloud/leapfrog#readme","bugs":{"url":"https://github.com/anthonybono21-cloud/leapfrog/issues"},"dependencies":{"@modelcontextprotocol/sdk":"^1.11.0","playwright":"^1.59.0","zod":"^3.23.0"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.6.0","vitest":"^4.1.2"},"engines":{"node":">=18.0.0"},"_id":"leapfrog@0.2.0","gitHead":"79c476e029ad9bb360228245420ca2d6fb37767f","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-O5MmJgKJZa31K958Rn5fwzqvudT6Y3LwHA3T3efV2XuGVDSKQ0L6kWVYHrjpLdhhFHYRbu3LtbH64hWN1CM5LQ==","shasum":"f3198f96d649b8871673df25d10b6bbe254cdc86","tarball":"https://registry.npmjs.org/leapfrog/-/leapfrog-0.2.0.tgz","fileCount":21,"unpackedSize":120465,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEOg6wPrseDE5Sf+FzMYjEDCy9Mb+c44NrNUcIMM2tOtAiAIOliNbEU39HcDY8waYqhu5RE/UjVEWLqSb/7Cb6HA2g=="}]},"_npmUser":{"name":"leapfrogai","email":"anthonybono21@gmail.com"},"directories":{},"maintainers":[{"name":"leapfrogai","email":"anthonybono21@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/leapfrog_0.2.0_1775075957381_0.6969413168450413"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-01T19:08:29.655Z","modified":"2026-04-01T20:39:18.013Z","0.0.1":"2026-04-01T19:08:29.871Z","0.2.0":"2026-04-01T20:39:17.560Z"},"bugs":{"url":"https://github.com/anthonybono21-cloud/leapfrog/issues"},"license":"MIT","homepage":"https://github.com/anthonybono21-cloud/leapfrog#readme","keywords":["mcp","browser","playwright","ai","agent","automation","headless","multi-session","claude","cursor"],"repository":{"type":"git","url":"git+https://github.com/anthonybono21-cloud/leapfrog.git"},"description":"Multi-session browser MCP for AI agents — 19 tools, up to 10x fewer tokens than Playwright, stealth mode","maintainers":[{"name":"leapfrogai","email":"anthonybono21@gmail.com"}],"readme":"<p align=\"center\">\n<pre align=\"center\">\n        @..@\n       (----)\n      / >  < \\\n     |        |\n     | \\    / |\n     \\  '--'  /\n      '.    .'\n     /| `--` |\\\n    / |        | \\\n   '  '.____.'  '\n        |  |\n</pre>\n</p>\n\n<h1 align=\"center\">Leapfrog</h1>\n<p align=\"center\"><strong>Multi-session browser MCP for AI agents.</strong><br/>19 tools. 15 parallel sessions. Up to 10x fewer tokens.</p>\n\n<p align=\"center\">\n<code>npm i leapfrog</code>&nbsp;&nbsp;|&nbsp;&nbsp;Works with Claude Code, Cursor, Windsurf\n</p>\n\n---\n\n## The Problem\n\nPlaywright MCP sends **~14,000 tokens** for a content-heavy page like Hacker News. Most of that is noise. Your context window fills up. Your agent gets confused. You pay for it.\n\nLeapfrog sends **~1,400 tokens**. Same page. Same information. Up to 10x less noise.\n\n```\n┌─────────────────────────────────────────────────────┐\n│  Playwright MCP                                     │\n│  ████████████████████████████████████████  ~14,000   │\n│                                                     │\n│  Leapfrog                                           │\n│  █████                                    ~1,400    │\n└─────────────────────────────────────────────────────┘\n          tokens per page (Hacker News, real test)\n```\n\nSavings range from 2-10x depending on page complexity. Content-heavy pages see the biggest wins. Dense forms see the smallest. The median across real-world sites is **~4-5x**.\n\n## Quick Start\n\n```bash\nnpx leapfrog --doctor   # verify everything works\nnpx leapfrog --config   # print MCP config to paste\n```\n\nAdd to `~/.mcp.json` (Claude Code) or your editor's MCP config:\n\n```json\n{\n  \"leapfrog\": {\n    \"command\": \"npx\",\n    \"args\": [\"-y\", \"leapfrog\"],\n    \"env\": {\n      \"LEAP_MAX_SESSIONS\": \"15\"\n    }\n  }\n}\n```\n\nChromium installs automatically. If it fails: `npx playwright install chromium`\n\n## Feature Matrix\n\n| | Leapfrog | Playwright MCP | agent-browser |\n|---|:---:|:---:|:---:|\n| Tokens per page | **~1,200-2,500** | ~3,800-15,000 | ~300 |\n| Parallel sessions | **15** | 1 | 1 |\n| Session isolation | Yes | No | No |\n| Multi-tab / popups | Yes | No | No |\n| Network intercept | Yes | No | No |\n| Console capture | Yes | Yes | No |\n| Stealth / anti-bot | Yes | No | No |\n| Smart wait (5 types) | Yes | Basic | No |\n| Crash recovery | Yes | No | No |\n| Auth profile reuse | Yes | No | No |\n| SSRF protection | Yes | No | No |\n\n## The Ecosystem\n\nLeapfrog uses pond metaphors to keep things memorable. Your agent is the frog.\n\n| Concept | Leapfrog term | What it means |\n|---|---|---|\n| Sessions | **Ponds** | Isolated browser contexts — cookies, storage, state |\n| Tabs | **Lily pads** | Where the frog lands within a pond |\n| Navigate | **Leap** | Jump to a URL, get a compact snapshot back |\n| Snapshots | **Surface** | What you see on the surface — interactive `@eN` refs |\n| Network traffic | **Ripple** | HTTP requests flowing under the surface |\n| Console errors | **Croak** | Something went wrong in the browser |\n| Stealth mode | **Camouflage** | Anti-bot evasion patches |\n\n## All 19 Tools\n\n### Pond Management (7)\n\n| Tool | What it does |\n|---|---|\n| `session_create` | Open a new pond — isolated cookies, state, viewport |\n| `session_destroy` | Drain a pond and free the slot |\n| `session_list` | See all active ponds with URLs and idle times |\n| `session_save_profile` | Save auth state to disk for future ponds |\n| `session_list_profiles` | List saved auth profiles |\n| `pool_status` | Pool stats, memory, uptime |\n| `session_health` | Is the pond healthy? Browser connected, page responsive? |\n\n### Navigation & Snapshots (6)\n\n| Tool | What it does |\n|---|---|\n| `navigate` | Leap to a URL, return a compact `@eN` snapshot |\n| `snapshot` | Re-read the surface (scope with CSS selector) |\n| `act` | Click, fill, type, check, select, press, scroll, hover, back, forward |\n| `wait_for` | Wait for element / text / network idle / navigation / JS expression |\n| `screenshot` | Capture PNG (full page or element) |\n| `extract` | Pull text, HTML, title, URL, or evaluate JS |\n\n### Tab Management (3)\n\n| Tool | What it does |\n|---|---|\n| `tabs_list` | List all pads in a pond |\n| `tab_switch` | Hop to another pad (-1 for most recent popup) |\n| `tab_close` | Close a pad (can't close the last one) |\n\n### Network Intelligence (3)\n\n| Tool | What it does |\n|---|---|\n| `network_log` | See HTTP traffic — filter by URL, method, status, content-type |\n| `console_log` | Read browser console output, filtered by level |\n| `network_intercept` | Block, mock, or log requests by URL pattern |\n\n## Environment Variables\n\n| Variable | Default | Description |\n|---|---|---|\n| `LEAP_MAX_SESSIONS` | `15` | Max concurrent sessions |\n| `LEAP_IDLE_TIMEOUT` | `300000` | Session idle timeout in ms (5 min) |\n| `LEAP_HEADLESS` | `true` | Set `false` to watch the browser |\n| `LEAP_ALLOW_JS` | `true` | Allow JS evaluation in `extract` and `wait_for` |\n| `LEAP_STEALTH` | `true` | Stealth mode (anti-bot evasion) |\n| `LEAP_LOG_LEVEL` | `info` | `debug` / `info` / `warn` / `error` |\n\n## Tests\n\n```\n 74 passing across 5 suites\n```\n\nSession management, snapshot engine, network intelligence, tab management, security (SSRF, URL scheme blocking, path traversal).\n\n```bash\nnpm test\n```\n\n## Requirements\n\n- Node.js >= 18\n- Chromium (auto-installed via Playwright)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}