MCP Hub
Back to servers

@agent360/browser-mcp

Browser MCP — control your real Chrome from Claude Code. 28 tools, CAPTCHA solving, multi-session, human-in-the-loop.

npm101/wk
Updated
Apr 4, 2026

Quick Install

npx -y @agent360/browser-mcp

Browser MCP by Agent360

npm version npm downloads GitHub stars License: MIT MCP

Control your real Chrome from Claude Code — with your logins, cookies, and 2FA.

Browser MCP Demo

The only browser MCP with multi-session support (10 concurrent AI sessions), human-in-the-loop (2FA, CAPTCHA, credentials), and built-in provider integrations (Stripe, HubSpot, Slack, and 6 more). 25 tools total.

Install

npx @agent360/browser-mcp install

This copies the Chrome extension to ~/.browser-mcp/extension/ and configures Claude Code automatically.

Then load the extension in Chrome:

  1. Open chrome://extensions
  2. Enable Developer mode (top right)
  3. Click Load unpacked → select ~/.browser-mcp/extension/
  4. Restart Claude Code

That's it. 25 browser tools are now available in Claude Code.

Why This Over Playwright MCP / BrowserMCP?

Browser MCPPlaywright MCPBrowserMCP.io
BrowserYour real ChromeHeadless (new session)Your real Chrome
Logins/cookiesAlready authenticatedMust log in every timeAlready authenticated
Multi-session10 concurrent sessions with color-coded tab groupsSingle sessionSingle session
Human-in-the-loopbrowser_ask_user — 2FA, CAPTCHA, credential inputNoneNone
Provider integrations9 built-in (Stripe, HubSpot, Slack...)NoneNone
CORS bypassbrowser_fetch from extension backgroundN/ALimited
Network monitoringbrowser_wait_for_network via CDPBuilt-inNone
CSP-strict sitesChrome Debugger API throughoutWorks (headless)Limited
Custom dropdownsAngular Material, React Select supportWorks (headless)Limited
Installnpx @agent360/browser-mcp installnpx @anthropic-ai/mcp-playwrightManual clone

25 Tools

Navigation & Content

ToolDescription
browser_navigateNavigate to URL (reuses tab, or new_tab=true)
browser_get_page_contentGet page text or HTML
browser_screenshotScreenshot via Chrome Debugger (works even when tab isn't focused)
browser_execute_scriptRun JavaScript in page context

Interaction

ToolDescription
browser_clickClick via CSS or text selector (text=Submit, button:text(Next))
browser_fillFill input fields (works on CSP-strict sites)
browser_press_keyKeyboard events (Enter, Tab, Escape, modifiers)
browser_scrollScroll to element or by pixels
browser_waitWait for element to appear
browser_hoverHover for tooltips/dropdowns
browser_select_optionNative <select> + custom dropdowns (Angular Material, React Select)
browser_handle_dialogAccept/dismiss alert/confirm/prompt dialogs

Tabs & Frames

ToolDescription
browser_list_tabsList session's tabs only
browser_switch_tabSwitch to tab by ID
browser_close_tabClose tab (session-owned only)
browser_get_new_tabGet most recently opened tab (OAuth popups)
browser_list_framesList iframes on page
browser_select_frameExecute JS in specific iframe

Data & Network

ToolDescription
browser_get_cookiesGet cookies for domain
browser_get_local_storageRead localStorage
browser_fetchHTTP request from extension (bypasses CORS)
browser_wait_for_networkWait for specific API call to complete
browser_extract_tokenNavigate to provider dashboard + extract API token

CAPTCHA Solving

ToolDescription
browser_solve_captchaDetect and solve CAPTCHAs. Auto-detects reCAPTCHA v2/v3, hCaptcha, Turnstile, FunCaptcha. Actions: detect, click_checkbox (auto-click, ~80% pass with Google login), click_grid (AI vision guided), ask_human (fallback)

Human-in-the-Loop

ToolDescription
browser_ask_userShow overlay dialog for 2FA, CAPTCHA, credentials, or any user input

Multi-Session Support

Each Claude Code conversation gets its own MCP server on a unique port (9876-9885). The Chrome extension connects to all active servers simultaneously.

Claude Session 1 ←(stdio)→ MCP :9876 ←(WS)→
Claude Session 2 ←(stdio)→ MCP :9877 ←(WS)→  Chrome Extension → Browser
Claude Session 3 ←(stdio)→ MCP :9878 ←(WS)→
  • Session isolation — each session gets a color-coded Chrome Tab Group
  • Tab ownership — sessions can only see and control their own tabs
  • Auto-cleanup — processes exit when Claude Code closes the conversation

Built-in Provider Integrations

browser_extract_token navigates to the provider's API settings page and guides token extraction:

ProviderToken FormatDashboard
Stripesk_test_... / sk_live_...stripe.com/apikeys
HubSpotpat-...app.hubspot.com
Slackxoxb-...api.slack.com/apps
ShopifyAdmin API tokenadmin.shopify.com
PipedriveUUIDapp.pipedrive.com
CalendlyJWTcalendly.com
Mailchimp...-us1admin.mailchimp.com
GoogleOAuth Clientconsole.cloud.google.com
LinkedInClient ID/Secretlinkedin.com/developers

Architecture

extension/
  manifest.json       # Manifest V3
  background.js       # Service worker — Chrome API dispatcher, session tab groups
  offscreen.js        # Persistent WebSocket bridge (multi-port scanning)
  popup.html/js       # Status UI — sessions, tabs, action log

mcp-server/
  index.js            # MCP server (stdio) + WebSocket client
  tools.js            # 21 tool definitions
  bin/cli.js          # Install CLI

How It Works

  1. Claude Code starts → spawns MCP server via stdio
  2. MCP server binds to first available port (9876-9885)
  3. Extension's offscreen document scans ports every 2s
  4. WebSocket connection established
  5. Commands flow: Claude Code → MCP → Extension → Chrome APIs
  6. Process auto-exits when Claude Code closes (stdin detection)

Auto-Updates

The MCP server runs via npx @agent360/browser-mcp@latest — always the latest version from npm. No manual git pulls needed.

To update the extension: npx @agent360/browser-mcp install (re-copies files), then reload in chrome://extensions.

Troubleshooting

"Chrome extension not connected"

  • Check extension is loaded in chrome://extensions
  • Click the extension popup → "Reconnect"
  • Wait 2-3 seconds for port scan

Screenshot fails

  • Uses Chrome Debugger API (works even when tab isn't focused)
  • Falls back to captureVisibleTab if debugger unavailable

Click doesn't work on SPA

  • Try text selector: browser_click("text=Submit")
  • Uses real mouse events via Chrome Debugger API automatically

Stale processes

  • Processes auto-exit when Claude Code closes (stdin detection)
  • Idle timeout: 4 hours without commands → auto-exit
  • Manual cleanup: lsof -i :9876-9885 | grep LISTEN

License

MIT — Agent360

Reviews

No reviews yet

Sign in to write a review