Server data from the Official MCP Registry
Control your real Chrome from Claude Code. 29 tools with CAPTCHA solving and multi-session.
Control your real Chrome from Claude Code. 29 tools with CAPTCHA solving and multi-session.
Valid MCP server (1 strong, 1 medium validity signals). 1 code issue detected. No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry.
5 files analyzed · 2 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-agent360dk-browser-mcp": {
"args": [
"-y",
"@agent360/browser-mcp"
],
"command": "npx"
}
}
}From the project's GitHub README.
Your AI agent drives your real, logged-in Chrome — and works where headless tools die.
▶ 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.
34 tools. ~80% reCAPTCHA-checkbox solve with a human fallback for the rest. Multi-session color-coded tab groups. MIT, free, and 100% local — nothing leaves your machine.
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.
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.
chrome://extensions in the address bar~/.browser-mcp/extension/ and click "Select"
Cmd+Shift+G in the file picker, paste ~/.browser-mcp/extension/, press Enter%USERPROFILE%\.browser-mcp\extension\ in the address bar~/.browser-mcp/extension/ in the path fieldThat's it. The Browser MCP icon will appear in your toolbar, and 34 browser tools are now available in Claude Code.
If you don't want to use npm, download the extension directly:
browser-mcp-v1.23.0.zip from the latest GitHub release~/Downloads/browser-mcp-extension/)~/.browser-mcp/extension/~/.claude.json (or run npx @agent360/browser-mcp install --skip-extension):
{
"mcpServers": {
"browser-mcp": {
"command": "npx",
"args": ["@agent360/browser-mcp"]
}
}
}
Install from Chrome Web Store →
No Developer mode needed. Then run npx @agent360/browser-mcp install --skip-extension to configure Claude Code.
| Browser MCP | Playwright MCP | BrowserMCP.io | |
|---|---|---|---|
| Browser | Your real Chrome | Headless (new session) | Your real Chrome |
| Logins/cookies | Already authenticated | Must log in every time | Already authenticated |
| Multi-session | 10 concurrent sessions with color-coded tab groups | Single session | Single session |
| Human-in-the-loop | browser_ask_user — 2FA, CAPTCHA, credential input | None | None |
| Provider integrations | 9 built-in (Stripe, HubSpot, Slack...) | None | None |
| CORS bypass | browser_fetch from extension background | N/A | Limited |
| Network monitoring | browser_wait_for_network via CDP | Built-in | None |
| CSP-strict sites | Chrome Debugger API throughout | Works (headless) | Limited |
| Custom dropdowns | Angular Material, React Select support | Works (headless) | Limited |
| Install | npx @agent360/browser-mcp install | npx @anthropic-ai/mcp-playwright | Manual clone |
| Tool | Description |
|---|---|
browser_navigate | Navigate to URL (reuses tab, or new_tab=true) |
browser_get_page_content | Get page text or HTML |
browser_screenshot | Screenshot via Chrome Debugger (works even when tab isn't focused) |
browser_execute_script | Run JavaScript in page context |
| Tool | Description |
|---|---|
browser_click | Click via CSS or text selector (text=Submit, button:text(Next)) |
browser_fill | Fill input fields (works on CSP-strict sites) |
browser_press_key | Keyboard events (Enter, Tab, Escape, modifiers) |
browser_scroll | Scroll to element or by pixels |
browser_wait | Wait for element to appear |
browser_hover | Hover for tooltips/dropdowns |
browser_select_option | Native <select> + custom dropdowns (Angular Material, React Select) |
browser_set_combobox | Autocomplete/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_date | Robust 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_overlays | Bulk-dismiss popups/modals/tooltips/banners via aria-label/text/×-char heuristics. non_critical mode preserves dialogs with form data |
browser_handle_dialog | Accept/dismiss native alert/confirm/prompt dialogs |
| Tool | Description |
|---|---|
browser_list_tabs | List session's tabs only |
browser_switch_tab | Switch to tab by ID |
browser_close_tab | Close tab (session-owned only) |
browser_get_new_tab | Get most recently opened tab (OAuth popups) |
browser_list_frames | List iframes on page |
browser_select_frame | Execute JS in specific iframe |
| Tool | Description |
|---|---|
browser_get_cookies | Get cookies for domain |
browser_get_local_storage | Read localStorage |
browser_fetch | HTTP request from extension (bypasses CORS) |
browser_wait_for_network | Wait for specific API call to complete |
browser_extract_token | Navigate to provider dashboard + extract API token |
| Tool | Description |
|---|---|
browser_solve_captcha | Detect 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) |
| Tool | Description |
|---|---|
browser_ask_user | Show overlay dialog for 2FA, CAPTCHA, credentials, or any user input |
| Tool | Description |
|---|---|
browser_get_cookies | Get cookies for a domain |
browser_set_cookies | Set cookies for a domain |
browser_get_local_storage | Read localStorage from page |
browser_set_local_storage | Write localStorage values |
browser_console_logs | Capture console.log/warn/error messages from page |
browser_upload_file | Upload files to <input type="file"> via Chrome Debugger API (no dialog) |
browser_drop_file | Upload 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 |
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)→
browser_extract_token navigates to the provider's API settings page and guides token extraction:
| Provider | Token Format | Dashboard |
|---|---|---|
| Stripe | sk_test_... / sk_live_... | stripe.com/apikeys |
| HubSpot | pat-... | app.hubspot.com |
| Slack | xoxb-... | api.slack.com/apps |
| Shopify | Admin API token | admin.shopify.com |
| Pipedrive | UUID | app.pipedrive.com |
| Calendly | JWT | calendly.com |
| Mailchimp | ...-us1 | admin.mailchimp.com |
| OAuth Client | console.cloud.google.com | |
| Client ID/Secret | linkedin.com/developers |
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 # 34 tool definitions
bin/cli.js # Install CLI
Browser MCP has two parts, and they update independently — how the extension updates depends on how you installed it:
| Part | Install method | How it updates |
|---|---|---|
| MCP server | any | Automatic. Runs via npx @agent360/browser-mcp@latest, so every Claude Code session pulls the newest from npm. Nothing to do. |
| Extension | Chrome Web Store | Automatic. Chrome updates it in the background (usually within a few hours). Nothing to do. |
| Extension | Unpacked (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 npx @agent360/browser-mcp install --skip-extension to wire up just the MCP server. After that, both parts stay current on their own.
"Chrome extension not connected"
chrome://extensionsScreenshot fails
captureVisibleTab if debugger unavailableClick doesn't work on SPA
browser_click("text=Submit")Stale processes
lsof -i :9876-9885 | grep LISTENBrowser MCP is built in the open and shaped by the people using it.
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".
MIT — Agent360
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.