{"id":50518203,"url":"https://github.com/fusengine/fuse-browser","last_synced_at":"2026-06-08T00:04:57.595Z","repository":{"id":361813917,"uuid":"1255937844","full_name":"fusengine/fuse-browser","owner":"fusengine","description":"  MCP server + CLI giving AI agents a real, stealth browser — per-country identity, self-healing actions, snapshots, multi-step plans, structured extraction. Reads JS/SPA pages, drives your own browser via CDP. Built on Patchright/Playwright.","archived":false,"fork":false,"pushed_at":"2026-06-01T11:24:52.000Z","size":108,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-01T12:20:56.643Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fusengine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-01T10:03:53.000Z","updated_at":"2026-06-01T11:24:54.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fusengine/fuse-browser","commit_stats":null,"previous_names":["fusengine/fuse-browser"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/fusengine/fuse-browser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fusengine%2Ffuse-browser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fusengine%2Ffuse-browser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fusengine%2Ffuse-browser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fusengine%2Ffuse-browser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fusengine","download_url":"https://codeload.github.com/fusengine/fuse-browser/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fusengine%2Ffuse-browser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33844686,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-03T01:32:05.038Z","updated_at":"2026-06-08T00:04:57.589Z","avatar_url":"https://github.com/fusengine.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fuse-browser\n\n**Give your AI agent a real, stealth browser.** An [MCP](https://modelcontextprotocol.io)\nserver + CLI on top of [Patchright](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-nodejs)\n(stealth Chromium) with a Playwright fallback.\n\nYour agent gets a **real browser** — per-country identity (locale/currency/timezone/geo),\nstealth fingerprint, self-healing actions, an indexed snapshot with stable refs (piercing\nShadow DOM + iframes), multi-step plans, structured extraction, visual diff, and **human\nguardrails** for payments and bookings. It drives real Chromium, so it reads **Next.js / SPA**\npages after hydration — not just static HTML.\n\n\u003e 32 MCP tools · stealth + rotating proxies · virtualized-list scraping · HAR record/replay · pixel visual-diff · human handoff + live view.\n\n## Install\n\n```bash\n# Register with Claude Code (or any MCP client) — user scope = all projects\nclaude mcp add fuse-browser --scope user -- npx -y @fusengine/browser-mcp\n```\n\n```jsonc\n// …or add it to your MCP config manually:\n{ \"mcpServers\": {\n  \"fuse-browser\": { \"command\": \"npx\", \"args\": [\"-y\", \"@fusengine/browser-mcp\"] }\n}}\n```\n\nChromium installs automatically. That's it — now just ask your agent in plain language:\n\n\u003e \"Find a hotel in Annemasse this Friday under CHF 100.\"\n\u003e \"What's my Google rank for 'agence web vevey' (CH)?\"\n\u003e \"Screenshot localhost:3000 in mobile and desktop.\"\n\nPrefer a terminal? Install the CLI: `npm i -g @fusengine/browser-mcp`\n\n```bash\nfuse-browser probe https://example.com --extract-prices\nfuse-browser fetch https://books.toscrape.com/ --extract-prices   # no browser, ~10× faster\n```\n\n## How it works\n\nAn LLM runs a **perceive → decide → act** loop through the tools: `browser_open` →\n`browser_navigate` → `browser_snapshot` (indexed `ref`s + form state) → `browser_act`\n(click/fill/select/pick, returns a page diff) → `browser_wait_for` → `browser_extract` /\n`browser_screenshot`. Sensitive actions (pay / book / checkout) are **blocked** unless the\nagent passes `humanApproved`.\n\n## What you get\n\n- **Stealth** — Patchright neutralizes the real automation signals; per-country identity + rotating proxy pool.\n- **Agentic targeting** — accessibility-style snapshot with stable refs, self-healing click/fill, multi-step plans.\n- **Vision (Set-of-Marks)** — `annotate:true` on `browser_snapshot`/`browser_act`/`browser_screenshot` draws numbered badges (= each `ref`) on the page, so vision models *see* it and target by ref.\n- **Sees everything** — open Shadow DOM, same/cross-origin iframes, and **virtualized/infinite lists** (`browser_collect`).\n- **Fast-path** — `browser_fetch` impersonates a real Chrome TLS fingerprint for server-rendered HTML, no browser launch — returns clean **markdown** and optional **contacts** (`extractContacts`) at ~HTTP speed. **JSON APIs / plain text** come back verbatim (no HTML mangling). Opt-in **`browserFallback`** auto-renders client-side (SPA/CSR) pages in a real browser when the HTTP response is an empty shell (`escalated: true`). **`browser_fetch_batch`** fetches many URLs in parallel (bounded concurrency, errors isolated per URL). **`browser_crawl`** walks a whole site (bounded same-origin BFS, robots-honored) → clean markdown per page.\n- **Data out** — multi-currency prices, typed CSS extraction, **contact extraction** (emails/phones E.164, `fastPathFirst` cascade), a clean→validate→dedupe→emit pipeline, CSV export, Google SERP rank tracking.\n- **Ops** — persistent sessions, **auto crash recovery** (a crashed page is recreated in the same context and restored to its last URL between calls), opt-in **per-host circuit breaker** + **bounded probe queue/budget** + **`browser_metrics`** for mass scraping, **live view** (watch any session — even headless — in your browser), `storageState` auto-save, HAR record/replay, pixel `visual_diff`, human handoff for login/2FA.\n\n## Documentation\n\nFull reference in **[`docs/`](./docs/README.md)**:\n\n[Installation](./docs/installation.md) ·\n[CLI](./docs/cli.md) ·\n[MCP tools (32)](./docs/mcp-tools.md) ·\n[Configuration](./docs/configuration.md) ·\n[Sessions](./docs/sessions.md) ·\n[Extraction](./docs/extraction.md) ·\n[Anti-bot \u0026 proxies](./docs/anti-bot.md) ·\n[Library](./docs/library.md)\n\n## Disclaimer\n\nProvided **as-is** under MIT, no warranty. `fuse-browser` is a neutral, **dual-use** automation\ntool built for **responsible automation**: sensitive actions (payment, booking, checkout,\ndestructive operations) are gated behind **human-approval guardrails**, and compliance controls —\n`robots.txt` respect (`respectRobots`), rate limiting, contact-extraction filters — are built in\nand **opt-in**, to be configured according to your lawful basis and the target's rules.\n**You alone are responsible** for complying with applicable law, target sites' Terms of Service,\n`robots.txt`, and data-protection rules (GDPR, nLPD). The opt-in captcha solver and contact\nextraction are for **authorized, lawful use only**. See **[LEGAL.md](./LEGAL.md)**.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffusengine%2Ffuse-browser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffusengine%2Ffuse-browser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffusengine%2Ffuse-browser/lists"}