Back to Browse

Browser MCP Server

Developer ToolsUse Caution4.2MCP RegistryLocal
Free

Server data from the Official MCP Registry

Give AI agents control of your real, logged-in Chrome. Chrome extension + MCP server, 34 tools.

About

Give AI agents control of your real, logged-in Chrome. Chrome extension + MCP server, 34 tools.

Security Report

4.2
Use Caution4.2High Risk

Browser MCP is a well-architected Chrome extension MCP server with solid foundational security practices. The codebase demonstrates mature patterns for managing Chrome debugger API interactions, session isolation, and error handling. However, several moderate-severity issues merit attention: the extension runs with broad Chrome permissions without explicit user scoping per domain, the WebSocket bridge between extension and MCP server lacks authentication/encryption, sensitive operations like cookie/localStorage access and file uploads have minimal validation, and the file contains incomplete code that prevents full analysis. These issues are not critical but represent security considerations users should be aware of. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 1 high severity). Package verification found 1 issue (1 critical, 0 high severity).

4 files analyzed · 12 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

env_vars

Check that this permission is expected for this type of plugin.

network_websocket

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

File System Write

Writes or modifies files on your machine. Check that this is expected for the tool.

clipboard

Check that this permission is expected for this type of plugin.

process_spawn

Check that this permission is expected for this type of plugin.

system_info

Check that this permission is expected for this type of plugin.

Unverified package source

We couldn't verify that the installable package matches the reviewed source code. Proceed with caution.

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-agent360dk-browser-mcp": {
      "args": [
        "-y",
        "demo-video"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Browser MCP by Agent360

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

Your AI agent drives your real, logged-in Chrome — and works where headless tools die.

Browser MCP Demo

Watch the 37-second demo with sound →

Browser MCP gives Claude Code (and any MCP client — Cursor, VS Code agent mode) control of your actual Chrome: your cookies, your sessions, your 2FA. So it works on CAPTCHA, 2FA and anti-bot sites where Playwright and Puppeteer get blocked — because it's you browsing.

The killer move: it hits a login wall, reads the verification code from your own Gmail tab, and continues the sign-in. No API can do that. Operate platforms with no API, QA your own web app end-to-end, or work dashboards, LinkedIn and Reddit at human pace — with you approving the sensitive steps.

42 tools. Auto-clicks the reCAPTCHA v2 checkbox, with a human fallback for the rest. Multi-session color-coded tab groups. MIT, free, and 100% local — nothing leaves your machine.

The whole thing, in four steps

1 — Install the Chrome extension. One click from the Chrome Web Store; Chrome keeps it updated. No store? See the unpacked install below.

2 — Add the MCP server. Paste this in a terminal. Required — the extension does nothing on its own:

claude mcp add --scope user browser-mcp -- npx @agent360/browser-mcp@latest

3 — Restart Claude Code. That is what starts the server. The extension icon turns green.

4 — Say this, to check it worked. Paste it to Claude Code:

Take a screenshot of my current Chrome tab.

You get an image back instead of "I don't have browser access". That's it — you're running.What else to say

Using Cursor, VS Code, Codex or Windsurf? Same server, that client's own config — see browsermcp.dev/docs. Everything below is the long version.

The long version — install, step by step

Browser MCP is two halves and you need both: a Chrome extension (drives the browser) and a local MCP server (what your agent actually talks to). Installing only the extension — e.g. straight from the Chrome Web Store — leaves it stuck on "Not connected", because there is no server for it to reach. Chrome cannot install the server, and npm cannot install the extension. Hence two steps.

Step 1: Register the MCP server with Claude Code

claude mcp add --scope user browser-mcp -- npx @agent360/browser-mcp@latest

That is Claude Code's own MCP command, so the entry lands in the config Claude Code actually reads. --scope user makes it available in every project.

Want the extension files on disk for the unpacked install in Step 2? Also run:

npx @agent360/browser-mcp install

It copies the extension to ~/.browser-mcp/extension/ and prints that path in the terminal — copy it. (Use it for the extension files only; register the server with claude mcp add above.)

Step 2: Load the extension in Chrome

Chrome won't let extensions install themselves from npm — you load it manually one time. To update later, re-run the install command and reload it (see Keeping it updated). Prefer the Chrome Web Store install if you'd rather have the extension auto-update.

  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 42 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 the extension zip (agent360-browser-mcp-<version>.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. Register the server — run claude mcp add --scope user browser-mcp -- npx @agent360/browser-mcp@latest, or add this to ~/.claude.json by hand:
    {
      "mcpServers": {
        "browser-mcp": {
          "command": "npx",
          "args": ["@agent360/browser-mcp@latest"]
        }
      }
    }
    

Chrome Web Store (no Developer mode, auto-updating extension)

This replaces Step 2 only — you still need Step 1.

  1. Install the extension from the Chrome Web Store → — no Developer mode toggle, and Chrome keeps it updated for you.
  2. Register the MCP server:
    claude mcp add --scope user browser-mcp -- npx @agent360/browser-mcp@latest
    
    (For Cursor / VS Code / Codex, use that client's own MCP config instead — see browsermcp.dev/docs.)
  3. Restart Claude Code.

Skip step 2 and the extension icon will sit on "Not connected" forever — that is the symptom of a missing MCP server, not a broken extension.

You're in. Now what?

Nothing happens until you ask, and the hardest part of a new tool is knowing what to ask for. Paste one of these to your agent:

Say thisWhat it shows
"Take a screenshot of my current Chrome tab."Start here. An image back instead of "I don't have browser access" means both halves are talking. That is the whole install test.
"Open my Gmail tab and tell me who sent my last 3 emails."The one that shows the difference — it works because it is your browser, already signed in. A headless tool hits a login wall here.
"Go to my analytics dashboard, pull this month's numbers, and put them in a table."Any dashboard you are already logged into. No API key, no export, no integration to build first.
"Fill in this signup form with my details. Stop and ask me before anything sensitive."You stay in the loop — it hands control back for passwords, payment details, or anything it should not decide alone.
"Log me in here. If it emails a code, read it from my Gmail tab and continue."The move no API can make: it reads the one-time code out of your own inbox and finishes the sign-in.
"Walk through my app's signup flow as a real user and tell me where it breaks."End-to-end QA of your own product, in the same browser your users have.

The pattern: anything you would do yourself in a browser, on a site you are already signed into. It is strongest where there is no API — internal dashboards, admin panels, portals, LinkedIn. Built something good? Add it to the gallery.

Why This Over Playwright MCP / BrowserMCP?

Browser MCPPlaywright MCPBrowserMCP.io
BrowserYour real ChromeHeadless (new session)Your real Chrome
MaintainedActively — latest release v1.25.0 (2026-07-24)Actively (Microsoft)Last commit Apr 2025
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
Installclaude mcp add + extension from the Chrome Web Storenpx @playwright/mcpManual clone

On the name: the similarly-named browsermcp.io (@browsermcp/mcp) is a different, unaffiliated project with no commits since April 2025. This is Browser MCP by Agent360 (@agent360/browser-mcp) — actively maintained. Full side-by-side →

42 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
browser_extract_listRead every row of a long/virtualised list by scrolling its container until no new rows appear

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_set_comboboxAutocomplete/combobox: type query → wait for filtered listbox → click option (multi-value chip support). Use when browser_select_option fails on lazy-rendered options
browser_set_dateRobust date inputs: tries native value-set → masked typing → calendar-picker navigation (MUI/AntD/react-datepicker/Lexical). Use when browser_fill fails on date fields
browser_dismiss_overlaysBulk-dismiss popups/modals/tooltips/banners via aria-label/text/×-char heuristics. non_critical mode preserves dialogs with form data
browser_handle_dialogAccept/dismiss native alert/confirm/prompt dialogs
browser_double_clickTrue double-click (two trusted press/release pairs)
browser_right_clickRight-click to open page-level context menus
browser_click_xyEscape hatch: click at raw viewport coordinates (CSS pixels) with trusted mouse events
browser_reattach_debuggerRecovery: force-detach and re-attach the Chrome debugger on the current tab

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, often passes when signed into Google), 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)
browser_drop_fileUpload via drop-zones: finds hidden <input type="file"> in target subtree/parent (up to 2 levels). Use when browser_upload_file fails because the zone has no visible input

Clipboard (secret-safe)

ToolDescription
browser_copy_to_clipboardCopy an element's value/text to the clipboard without returning the content
browser_paste_from_clipboardPaste the system clipboard into a form field without exposing the content
browser_clipboard_statsInspect the clipboard's shape (length, trimmed length) without exposing content

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            # 42 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)

Keeping it updated

Browser MCP has two parts, and they update independently — how the extension updates depends on how you installed it:

PartInstall methodHow it updates
MCP serveranyAutomatic. Runs via npx @agent360/browser-mcp@latest, so every Claude Code session pulls the newest from npm. Nothing to do.
ExtensionChrome Web StoreAutomatic. Chrome updates it in the background (usually within a few hours). Nothing to do.
ExtensionUnpacked (npx … install or manual zip)Manual. Chrome never auto-updates a load-unpacked extension. Re-run npx @agent360/browser-mcp install, then open chrome://extensions → Browser MCP → ↻ reload.

Not sure which you have? Open chrome://extensions and find Browser MCP. If it shows a "Loaded from /path/…" line, it's unpacked (manual updates). If there's no such line, it came from the Chrome Web Store (auto-updates).

Want zero-maintenance updates? Install the extension from the Chrome Web Store, then run claude mcp add --scope user browser-mcp -- npx @agent360/browser-mcp@latest to register the server. After that, both parts stay current on their own — as long as your config uses @agent360/browser-mcp@latest.

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

💡 Help Shape Browser MCP

Browser MCP is built in the open and shaped by the people using it.

Browse what others want / built

  • 💡 Wishlist → — features people are asking for
  • 🎯 Use-cases → — what others have built (LinkedIn ICP scraping, vendor research, daily ops, …)

Contribute in 30 seconds

Or just ask Claude — it knows about the browser_about tool and will draft + submit on your behalf when you say things like "I wish browser-mcp could …" or "share my browser-mcp use-case".

License

MIT — Agent360

Reviews

No reviews yet

Be the first to review this server!

Browser MCP Server - Give AI agents control of your real, logged-in Chrome. | MCP Marketplace