browser-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@browser-mcpopen workit.info and search for placements"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
browser-mcp
Hosted Chrome as an MCP skill. Give any MCP-compatible agent (Claude Desktop, Cursor, custom scripts) a real Chromium browser to drive — navigate, click, type, snapshot, read pages, take screenshots. Human-like behaviour, per-user isolated sessions, encrypted credential storage so login-gated sites work without leaking passwords to the LLM.
Real Chromium on our server via Playwright. Not headless-only tricks — full browser context.
Stealth defaults — patches the most common bot-detection tells (navigator.webdriver, plugins, chrome runtime). Not bulletproof against heavy defences like Cloudflare Turnstile; v0.2 adds proxies + CAPTCHA solving.
Per-user isolation — separate BrowserContext per user, so cookies + localStorage don't leak between accounts.
Encrypted credentials — AES-256-GCM at rest.
use_credentialstypes the password into the page server-side; the LLM never sees it.No LLM in our stack — your agent is the brain. We just drive the browser.
Hosted at browser.regiq.in.
Use it
Visit https://browser.regiq.in and sign in with Google or GitHub.
Generate an MCP API key on the dashboard.
Add to Claude Desktop's
claude_desktop_config.json:{ "mcpServers": { "browser": { "url": "https://browser.regiq.in/api/mcp", "headers": { "Authorization": "Bearer YOUR_KEY_HERE" } } } }Restart Claude Desktop. Ask it: "open workit.info and search for placements in Cambridge." Your agent will call the browser tools and drive the page.
Related MCP server: monkeysee
Tools
Tool | Purpose |
| Spin up a session; returns |
| Clean up. |
| Go to URL, wait for DOMContentLoaded. |
| Accessibility tree with per-element uids. |
| Click element by uid. |
| Fill input by uid. |
| Keyboard press: |
| Wait for CSS selector to appear. |
| Plain-text page content (20 KB cap). |
| PNG as base64. |
| Encrypt + store login for a site. |
| Type stored creds into a login form. Password never returned. |
| See what's stored (domains + usernames only). |
Handling login-gated sites
Your agent sees a login form. Flow:
Check for saved creds —
list_saved_credentials().If saved for this domain — call
use_credentials(sessionId, "workit.info", "input[name=email]", "input[type=password]"). Server decrypts + types. Then click the submit button.If not saved — tell the user: "I need your workit.info login to continue. Save it at https://browser.regiq.in/dashboard, then ask me again."
For MVP the user has to save creds via the dashboard. v0.2 will let the agent request creds through a paired channel (e.g. via telegram-mcp).
Self-host
You'll need:
Docker + Compose
A Google or GitHub OAuth client
A public HTTPS domain (Cloudflare Tunnel or
ngrok http 3013)~4 GB RAM (Playwright + Chromium)
git clone https://github.com/globalion/browser-mcp
cd browser-mcp
cp .env.example .env
# fill NEXTAUTH_SECRET, GOOGLE_/GITHUB_*, PUBLIC_BASE_URL,
# and generate CRED_ENCRYPTION_KEY with `openssl rand -hex 32`
docker compose up -d
# open http://localhost:3013Architecture
Your MCP agent → /api/mcp (Bearer auth) → In-memory session Map → Playwright BrowserContext
↕
Postgres (audit + credentials, AES-256-GCM)Sessions live in the container's memory. A restart kills all active sessions — users just call browser_new_session again. Contexts auto-close after 15 min idle to free RAM.
Bot avoidance — realistic expectations
The stealth init script strips navigator.webdriver, adds fake plugins, exposes window.chrome.runtime, and patches the notifications permission oddity. Combined with a real Chromium binary (not headless-only) and realistic viewport/UA/timezone, that gets past most public sites.
Sites with serious anti-bot (Cloudflare Turnstile, PerimeterX, DataDome) will still detect. To bypass those you need:
Residential proxies (~$50/mo services like Bright Data)
CAPTCHA solving (~$0.001/solve via 2captcha)
More elaborate fingerprint spoofing
That's v0.2 territory. For now, use browser-mcp on sites that aren't actively hunting bots.
License
MIT.
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
Stealth web browser for agents: search, fetch, click, download and type in persistent MCP sessions.
Real Chrome for agents: start a browser, read pages as numbered markdown, click, type, hand off.
Browserless MCP — wraps the Browserless headless-Chromium REST API (browserless.io)
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to control the Google Chrome browser through a Node.js WebSocket bridge and a dedicated browser extension. It provides tools for capturing screenshots, executing JavaScript, managing tabs, and extracting page content via the MCP protocol.2-
- AlicenseNot gradedqualityDmaintenanceEnables MCP clients to drive a real, logged-in Chrome browser for web automation tasks like navigation, clicking, typing, and screenshotting.01MIT
- AlicenseNot gradedqualityCmaintenanceHosted Chromium browser as an MCP skill, enabling agents to navigate, click, type, snapshot, and read pages with human-like behavior and per-user isolated sessions.14 npmMIT
- AlicenseNot gradedqualityCmaintenanceProvides a headless Chromium browser through MCP, enabling AI agents to browse JavaScript-rendered pages, search the web, capture screenshots, extract tables and data, and run stateful multi-step interactions like clicking, typing, and form submission.1,236,914 npm1MIT