streamable-httpMITupdated 1mo ago
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.
What can you do with browser mcp?
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.
Tools
| Tool | Purpose |
|---|---|
browser_new_session() |
Spin up a session; returns sessionId. 15 min idle timeout. |
browser_close_session(sessionId) |
Clean up. |
browser_navigate(sessionId, url) |
Go to URL, wait for DOMContentLoaded. |
browser_snapshot(sessionId) |
Accessibility tree with per-element uids. |
browser_click(sessionId, uid) |
Click element by uid. |
browser_type(sessionId, uid, text) |
Fill input by uid. |
browser_press_key(sessionId, key) |
Keyboard press: Enter, Tab, Control+A, etc. |
browser_wait_for(sessionId, selector) |
Wait for CSS selector to appear. |
browser_read_page(sessionId) |
Plain-text page content (20 KB cap). |
browser_screenshot(sessionId) |
PNG as base64. |
save_credentials(domain, username, password) |
Encrypt + store login for a site. |
use_credentials(sessionId, domain, usernameSelector, passwordSelector) |
Type stored creds into a login form. Password never returned. |
list_saved_credentials() |
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:3013
Architecture
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.
Install
Add browser mcp to your client. Pick the one you use.
claude mcp add --transport http browser-mcp https://browser.regiq.in/api/mcpcodex mcp add browser-mcp --url https://browser.regiq.in/api/mcp{
"mcpServers": {
"browser-mcp": {
"url": "https://browser.regiq.in/api/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"browser-mcp": {
"type": "http",
"url": "https://browser.regiq.in/api/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"browser-mcp": {
"url": "https://browser.regiq.in/api/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"browser-mcp": {
"serverUrl": "https://browser.regiq.in/api/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance16/25
- Trust16/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 46 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint โ no local install
Version history
| Versions | Published |
|---|---|
| 0.2.0Latest | Jul 16, 2026 |