Browser Gateway logo

Browser Gateway

AI browser tools with Chrome CDP. Navigate, screenshot, interact. Multi-provider failover.

Install Browser Gateway

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "browser-gateway": {
      "command": "npx",
      "args": [
        "browser-gateway"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-tested— we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 3d ago

Recent health check succeeded.

5/5 checks healthy over the last 41d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 15d ago via OSV.dev · browser-gateway (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars18Stargazers on the source repository.
npm downloads4.1kPackage downloads in the last 30 days.
Last commit4d agoMost recent push to the default branch.

From the project README

browser-gateway

browser-gateway

The open router for cloud browsers.
One endpoint that routes across every browser provider you use: automatic failover, persistent profiles, session replay, REST API, MCP server, dashboard.
Works unchanged with Puppeteer, Playwright, Stagehand, browser-use, and any MCP client.

BrowserGateway is the #1 Tool of the Week on DevHunt

npm version npm downloads MIT license Node.js GitHub stars

Deploy on Railway   Deploy to Render   Deploy to DigitalOcean   Deploy to Koyeb

Website  ·  Quick start  ·  MCP  ·  Profiles  ·  Replays  ·  REST API  ·  Dashboard  ·  Discord

browser-gateway routes traffic across multiple browser providers, filling them by priority and failing over when one is saturated


Overview

One endpoint. Multiple providers. Automatic failover when one is saturated or goes down.

Your app connects to ws://gateway:9500/v1/connect. The gateway picks the best available provider based on health, capacity, and your routing strategy. Providers can be cloud CDP services, Docker containers, or local Chrome instances.


Dashboard

A web dashboard ships with every install. Open http://localhost:9500/web after starting the gateway.

Overview. Active sessions, queue depth, provider health, connection endpoint, and a copy-paste quickstart for Puppeteer, Playwright, Stagehand, browser-use, and raw CDP.

Dashboard overview page showing active sessions, queue depth, provider health, masked connection endpoint, and a tabbed quickstart with Puppeteer code

REST API. Run screenshot, content extraction, and structured scraping endpoints from a form-driven UI, with profile selection and parameter reference inline.

REST API page in the dashboard with three tabs (screenshot, content, scrape) and a form to capture a screenshot of a target URL with format and profile options

Playground. Drive any provider live from the browser. Pick a provider and profile, type into the canvas as if it were a local browser, and watch the remote session in real time.

Live playground page streaming a remote Chrome session showing yahoo.com loaded inside the dashboard canvas


Features

Routing & reliability

  • Automatic failover - the next provider takes over the instant one fails, no client changes
  • Five load-balancing strategies - priority chain, round-robin, least-connections, latency-optimized, weighted
  • Per-provider concurrency limits - the gateway enforces maxConcurrent on every backend
  • Request queue - connections wait when every provider is saturated instead of failing immediately
  • Cooldown - failing providers are skipped and recover automatically after a TTL
  • Health checks - periodic connectivity probes mark providers unhealthy before clients hit them
  • Graceful shutdown - active sessions drain cleanly on SIGTERM and SIGINT
  • Session reconnect - a dropped client reconnects with ?sessionId=<X-Session-Id>; on a provider that issues a resume token (browserserve with its resume window on) it gets the same browser back with its pages, cookies and storage, otherwise a new browser on the same provider
  • Webhooks - fire on provider down, recover, and queue-overflow events

REST API

  • Screenshot - POST /v1/screenshot returns any URL as PNG or JPEG, full-page or scoped to a selector
  • Content extraction - POST /v1/content returns markdown, plain text, HTML, or a cleaned article
  • Scrape - POST /v1/scrape extracts structured data via CSS selectors or full-page formats
  • Pooled sessions - browser connections are reused across requests, like a database pool
  • Automatic retry - failed requests retry against a fresh page

Profiles — persistent browser state

  • Survive across sessions - cookies and localStorage are captured as you leave each page and on disconnect, and replayed on the next connect with the same id (IndexedDB too on browserserve)
  • Saved on any provider - every provider can load and save any profile; pin a provider to one profile only to route that profile's sessions there
  • Profiles never mix - a browser that still holds a different profile is refused. Anything else already in a reused browser (from sessions without a profile) is saved with the profile
  • One-line opt-in - add ?profile=acme to the WebSocket URL, the rest is automatic
  • Encrypted at rest - AES-256-GCM with envelope encryption, anti-swap binding, and a scrypt-derived KEK
  • Provider-agnostic - state is captured at the CDP level, so it replays against any provider
  • Per-profile locking - concurrent connects to the same id return HTTP 409 to prevent corruption
  • Export and import - encrypted .bgp blobs are portable between gateway installs
  • One-click enable - the dashboard wizard generates a strong key in your browser and writes it to config

See the Profiles docs for the full guide, security model, REST endpoints, and limitations.

Session replay — see what the agent saw

  • Frame-accurate visual record of every routed session, captured via CDP Page.startScreencast
  • Zero injection - no script runs inside the customer page, capture is fully out-of-band
  • Provider-agnostic - works with any backend that supports page screencast
  • Dashboard player - scrub through the recorded frames, switch between captured browser targets
  • Retention controls - configurable horizon, per-session byte cap, daily cleanup

See the Replays docs for the storage layout, REST endpoints, and tuning knobs.

MCP server for AI agents

  • One-call tools - fetch_page reads any url as markdown and screenshot_page captures it, each in a single call that opens and closes its own browser
  • Session tools - browser_session, browser_navigate, browser_snapshot, browser_act, browser_extract, browser_screenshot, browser_wait, browser_tabs, browser_evaluate, browser_observe for logins, forms and multi-step work
  • Fallback for coding agents - a Claude Code plugin sends Claude to fetch_page when its built-in web fetch is blocked, empty or needs JavaScript (/plugin marketplace add browser-gateway/browser-gateway); setup for Codex, Cursor and Gemini CLI in plugins/browser-gateway
  • Zero config - auto-detects Chrome and launches it on first tool use
  • Concurrent sessions - every agent gets its own browser, no shared state
  • Raw CDP - no Playwright or Puppeteer dependency
  • Compatible - Claude Code, Cursor, and any MCP-compatible client

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Browser Gateway

browser-gateway is an MCP server that provides AI browser tools through Chrome CDP for navigation, screenshots, and interaction. It routes browser sessions across multiple providers with automatic failover and offers one endpoint for compatible MCP clients, alongside persistent profiles, session replay, a REST API, and a dashboard.

browser-gateway automatically fails over when a provider is saturated or goes down. It selects providers based on health, capacity, and the configured routing strategy, and can route across cloud CDP services, Docker containers, or local Chrome instances.

Yes, browser-gateway works unchanged with Puppeteer, Playwright, Stagehand, browser-use, and MCP clients. Applications connect through the gateway endpoint while browser sessions are routed to an available provider.

Yes, browser-gateway supports persistent profiles and session replay. These capabilities are provided alongside its browser routing, REST API, MCP server, and dashboard.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewBrowser Gateway AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/browser-gateway?style=directory)](https://allmcps.com/mcp/browser-gateway)
HTML Embed
<a href="https://allmcps.com/mcp/browser-gateway"><img src="https://allmcps.com/api/badge/browser-gateway?style=directory" alt="Browser Gateway on AllMCPs" /></a>