Browser MCP

Control your real Chrome from Claude Code. 29 tools including CAPTCHA solving, file upload, multi-session, and human-in-the-loop.

Browser MCP by Agent360

npm version npm downloads GitHub stars License: MIT MCP Chrome Web Store

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). 29 tools total.

Install — 2 steps (~60 seconds)

Step 1: Configure the MCP server

npx @agent360/browser-mcp install

This copies the Chrome extension files to ~/.browser-mcp/extension/ and adds the MCP server to your Claude Code config. You'll see the path to the extension folder printed in the terminal — copy it.

Step 2: Load the extension in Chrome

Chrome won't let extensions install themselves from npm — you have to load it manually one time. After that, it auto-updates whenever you re-run the install command.

  1. Open Chrome and type chrome://extensions in the address bar
  2. Toggle "Developer mode" ON (top right corner)
  3. Click "Load unpacked" (top left, next to "Pack extension")
  4. Navigate to ~/.browser-mcp/extension/ and click "Select"
    • On Mac: Press Cmd+Shift+G in the file picker, paste ~/.browser-mcp/extension/, press Enter
    • On Windows: Paste %USERPROFILE%\.browser-mcp\extension\ in the address bar
    • On Linux: Type ~/.browser-mcp/extension/ in the path field
  5. Restart Claude Code so it picks up the new MCP server

That's it. The Browser MCP icon will appear in your toolbar, and 29 browser tools are now available in Claude Code.

Alternative: Manual zip download (no npm)

If you don't want to use npm, download the extension directly:

  1. Download browser-mcp-v1.16.1.zip from the latest GitHub release
  2. Unzip the file (anywhere — e.g. ~/Downloads/browser-mcp-extension/)
  3. Follow Step 2 above, but select the unzipped folder instead of ~/.browser-mcp/extension/
  4. Configure Claude Code manually by adding this to your ~/.claude.json (or run npx @agent360/browser-mcp install --skip-extension):
    {
      "mcpServers": {
        "browser-mcp": {
          "command": "npx",
          "args": ["@agent360/browser-mcp"]
        }
      }
    }
    

Chrome Web Store (one-click install)

Install from Chrome Web Store →

No Developer mode needed. Then run npx @agent360/browser-mcp install --skip-extension to configure 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

29 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

Data

ToolDescription
browser_get_cookiesGet cookies for a domain
browser_set_cookiesSet cookies for a domain
browser_get_local_storageRead localStorage from page
browser_set_local_storageWrite localStorage values
browser_console_logsCapture console.log/warn/error messages from page
browser_upload_fileUpload files to <input type="file"> via Chrome Debugger API (no dialog)

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            # 29 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

संबंधित सर्वर

NotebookLM Web Importer

एक क्लिक में वेब पेज और YouTube वीडियो NotebookLM में आयात करें। 200,000+ उपयोगकर्ताओं द्वारा विश्वसनीय।

Chrome एक्सटेंशन इंस्टॉल करें