{"_id":"@ankur18/browser-mcp","name":"@ankur18/browser-mcp","dist-tags":{"latest":"1.21.0"},"versions":{"1.21.0":{"name":"@ankur18/browser-mcp","version":"1.21.0","description":"Browser MCP — control your real Chrome from Claude Code. 33 tools, CAPTCHA solving, date pickers, autocomplete combobox, overlay dismissal, file upload, multi-session, human-in-the-loop.","mcpName":"io.github.Agent360dk/browser-mcp","type":"module","main":"index.js","bin":{"browser-mcp":"bin/cli.js"},"publishConfig":{"access":"public"},"scripts":{"start":"node index.js","publish:cws":"../scripts/publish-cws.sh","publish:cws:draft":"../scripts/publish-cws.sh --draft"},"keywords":["mcp","mcp-server","model-context-protocol","browser","browser-mcp","browser-automation","chrome","chrome-extension","claude","claude-code","ai-agent","captcha","captcha-solver","human-in-the-loop","web-automation","playwright-alternative","selenium-alternative"],"engines":{"node":">=18"},"author":{"name":"Agent360","email":"hello@agent360.dk"},"license":"MIT","homepage":"https://browsermcp.dev","repository":{"type":"git","url":"git+https://github.com/Agent360dk/browser-mcp.git"},"dependencies":{"@modelcontextprotocol/sdk":"^1.28.0","ws":"^8.18.0"},"_id":"@ankur18/browser-mcp@1.21.0","gitHead":"bcbfc78ecbb128720284106e35252ae2dfe3e541","bugs":{"url":"https://github.com/Agent360dk/browser-mcp/issues"},"_nodeVersion":"20.19.6","_npmVersion":"10.8.2","dist":{"integrity":"sha512-KMPCjHyxJFQfHptiusQqAPv+FEylXTenQ0ZJS893FLdaAhNHAFZwy2rOO0UCHDJpxhQ1zTX4tkfGicjGZNn1IA==","shasum":"005f67fa63400bd4f830aa2dd8b05ac93d91f05a","tarball":"https://registry.npmjs.org/@ankur18/browser-mcp/-/browser-mcp-1.21.0.tgz","fileCount":14,"unpackedSize":190778,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCIKPfayGW3Gcvkt8d5zfv0FzFf5dYQ52Qq8U/wpdwIHgIgPPynJ8ImwpWUkDkm/Cxc2y4Vzoux3NIxgc9WN56FCS0="}]},"_npmUser":{"name":"ankur18","email":"entrepreneur.ankur@gmail.com"},"directories":{},"maintainers":[{"name":"ankur18","email":"entrepreneur.ankur@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/browser-mcp_1.21.0_1779216299090_0.08335581423780303"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-19T18:44:58.945Z","1.21.0":"2026-05-19T18:44:59.240Z","modified":"2026-05-19T18:44:59.449Z"},"maintainers":[{"name":"ankur18","email":"entrepreneur.ankur@gmail.com"}],"description":"Browser MCP — control your real Chrome from Claude Code. 33 tools, CAPTCHA solving, date pickers, autocomplete combobox, overlay dismissal, file upload, multi-session, human-in-the-loop.","homepage":"https://browsermcp.dev","keywords":["mcp","mcp-server","model-context-protocol","browser","browser-mcp","browser-automation","chrome","chrome-extension","claude","claude-code","ai-agent","captcha","captcha-solver","human-in-the-loop","web-automation","playwright-alternative","selenium-alternative"],"repository":{"type":"git","url":"git+https://github.com/Agent360dk/browser-mcp.git"},"author":{"name":"Agent360","email":"hello@agent360.dk"},"bugs":{"url":"https://github.com/Agent360dk/browser-mcp/issues"},"license":"MIT","readme":"# Browser MCP by Agent360\n\n[![npm version](https://img.shields.io/npm/v/@agent360/browser-mcp)](https://www.npmjs.com/package/@agent360/browser-mcp)\n[![npm downloads](https://img.shields.io/npm/dw/@agent360/browser-mcp)](https://www.npmjs.com/package/@agent360/browser-mcp)\n[![GitHub stars](https://img.shields.io/github/stars/Agent360dk/browser-mcp)](https://github.com/Agent360dk/browser-mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![MCP](https://img.shields.io/badge/MCP-compatible-blue)](https://modelcontextprotocol.io)\n\n**Control your real Chrome from Claude Code — with your logins, cookies, and 2FA.**\n\n![Browser MCP Demo](assets/demo.gif)\n\nThe 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.\n\n## Install\n\n```bash\nnpx @agent360/browser-mcp install\n```\n\nThis copies the Chrome extension to `~/.browser-mcp/extension/` and configures Claude Code automatically.\n\nThen load the extension in Chrome:\n1. Open `chrome://extensions`\n2. Enable **Developer mode** (top right)\n3. Click **Load unpacked** → select `~/.browser-mcp/extension/`\n4. Restart Claude Code\n\nThat's it. 29 browser tools are now available in Claude Code.\n\n## Why This Over Playwright MCP / BrowserMCP?\n\n| | Browser MCP | Playwright MCP | BrowserMCP.io |\n|---|---|---|---|\n| **Browser** | Your real Chrome | Headless (new session) | Your real Chrome |\n| **Logins/cookies** | Already authenticated | Must log in every time | Already authenticated |\n| **Multi-session** | 10 concurrent sessions with color-coded tab groups | Single session | Single session |\n| **Human-in-the-loop** | `browser_ask_user` — 2FA, CAPTCHA, credential input | None | None |\n| **Provider integrations** | 9 built-in (Stripe, HubSpot, Slack...) | None | None |\n| **CORS bypass** | `browser_fetch` from extension background | N/A | Limited |\n| **Network monitoring** | `browser_wait_for_network` via CDP | Built-in | None |\n| **CSP-strict sites** | Chrome Debugger API throughout | Works (headless) | Limited |\n| **Custom dropdowns** | Angular Material, React Select support | Works (headless) | Limited |\n| **Install** | `npx @agent360/browser-mcp install` | `npx @anthropic-ai/mcp-playwright` | Manual clone |\n\n## 29 Tools\n\n### Navigation & Content\n| Tool | Description |\n|------|-------------|\n| `browser_navigate` | Navigate to URL (reuses tab, or `new_tab=true`) |\n| `browser_get_page_content` | Get page text or HTML |\n| `browser_screenshot` | Screenshot via Chrome Debugger (works even when tab isn't focused) |\n| `browser_execute_script` | Run JavaScript in page context |\n\n### Interaction\n| Tool | Description |\n|------|-------------|\n| `browser_click` | Click via CSS or text selector (`text=Submit`, `button:text(Next)`) |\n| `browser_fill` | Fill input fields (works on CSP-strict sites) |\n| `browser_press_key` | Keyboard events (Enter, Tab, Escape, modifiers) |\n| `browser_scroll` | Scroll to element or by pixels |\n| `browser_wait` | Wait for element to appear |\n| `browser_hover` | Hover for tooltips/dropdowns |\n| `browser_select_option` | Native `<select>` + custom dropdowns (Angular Material, React Select) |\n| `browser_handle_dialog` | Accept/dismiss alert/confirm/prompt dialogs |\n\n### Tabs & Frames\n| Tool | Description |\n|------|-------------|\n| `browser_list_tabs` | List session's tabs only |\n| `browser_switch_tab` | Switch to tab by ID |\n| `browser_close_tab` | Close tab (session-owned only) |\n| `browser_get_new_tab` | Get most recently opened tab (OAuth popups) |\n| `browser_list_frames` | List iframes on page |\n| `browser_select_frame` | Execute JS in specific iframe |\n\n### Data & Network\n| Tool | Description |\n|------|-------------|\n| `browser_get_cookies` | Get cookies for domain |\n| `browser_get_local_storage` | Read localStorage |\n| `browser_fetch` | HTTP request from extension (bypasses CORS) |\n| `browser_wait_for_network` | Wait for specific API call to complete |\n| `browser_extract_token` | Navigate to provider dashboard + extract API token |\n\n### CAPTCHA Solving\n| Tool | Description |\n|------|-------------|\n| `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) |\n\n### Human-in-the-Loop\n| Tool | Description |\n|------|-------------|\n| `browser_ask_user` | Show overlay dialog for 2FA, CAPTCHA, credentials, or any user input |\n\n### Data\n| Tool | Description |\n|------|-------------|\n| `browser_get_cookies` | Get cookies for a domain |\n| `browser_set_cookies` | Set cookies for a domain |\n| `browser_get_local_storage` | Read localStorage from page |\n| `browser_set_local_storage` | Write localStorage values |\n| `browser_console_logs` | Capture console.log/warn/error messages from page |\n| `browser_upload_file` | Upload files to `<input type=\"file\">` via Chrome Debugger API (no dialog) |\n\n## Multi-Session Support\n\nEach Claude Code conversation gets its own MCP server on a unique port (9876-9885). The Chrome extension connects to all active servers simultaneously.\n\n```\nClaude Session 1 ←(stdio)→ MCP :9876 ←(WS)→\nClaude Session 2 ←(stdio)→ MCP :9877 ←(WS)→  Chrome Extension → Browser\nClaude Session 3 ←(stdio)→ MCP :9878 ←(WS)→\n```\n\n- **Session isolation** — each session gets a color-coded Chrome Tab Group\n- **Tab ownership** — sessions can only see and control their own tabs\n- **Auto-cleanup** — processes exit when Claude Code closes the conversation\n\n## Built-in Provider Integrations\n\n`browser_extract_token` navigates to the provider's API settings page and guides token extraction:\n\n| Provider | Token Format | Dashboard |\n|----------|-------------|-----------|\n| Stripe | `sk_test_...` / `sk_live_...` | stripe.com/apikeys |\n| HubSpot | `pat-...` | app.hubspot.com |\n| Slack | `xoxb-...` | api.slack.com/apps |\n| Shopify | Admin API token | admin.shopify.com |\n| Pipedrive | UUID | app.pipedrive.com |\n| Calendly | JWT | calendly.com |\n| Mailchimp | `...-us1` | admin.mailchimp.com |\n| Google | OAuth Client | console.cloud.google.com |\n| LinkedIn | Client ID/Secret | linkedin.com/developers |\n\n## Architecture\n\n```\nextension/\n  manifest.json       # Manifest V3\n  background.js       # Service worker — Chrome API dispatcher, session tab groups\n  offscreen.js        # Persistent WebSocket bridge (multi-port scanning)\n  popup.html/js       # Status UI — sessions, tabs, action log\n\nmcp-server/\n  index.js            # MCP server (stdio) + WebSocket client\n  tools.js            # 29 tool definitions\n  bin/cli.js          # Install CLI\n```\n\n### How It Works\n1. Claude Code starts → spawns MCP server via stdio\n2. MCP server binds to first available port (9876-9885)\n3. Extension's offscreen document scans ports every 2s\n4. WebSocket connection established\n5. Commands flow: Claude Code → MCP → Extension → Chrome APIs\n6. Process auto-exits when Claude Code closes (stdin detection)\n\n## Auto-Updates\n\nThe MCP server runs via `npx @agent360/browser-mcp@latest` — always the latest version from npm. No manual git pulls needed.\n\nTo update the extension: `npx @agent360/browser-mcp install` (re-copies files), then reload in `chrome://extensions`.\n\n## Troubleshooting\n\n**\"Chrome extension not connected\"**\n- Check extension is loaded in `chrome://extensions`\n- Click the extension popup → \"Reconnect\"\n- Wait 2-3 seconds for port scan\n\n**Screenshot fails**\n- Uses Chrome Debugger API (works even when tab isn't focused)\n- Falls back to `captureVisibleTab` if debugger unavailable\n\n**Click doesn't work on SPA**\n- Try text selector: `browser_click(\"text=Submit\")`\n- Uses real mouse events via Chrome Debugger API automatically\n\n**Stale processes**\n- Processes auto-exit when Claude Code closes (stdin detection)\n- Idle timeout: 4 hours without commands → auto-exit\n- Manual cleanup: `lsof -i :9876-9885 | grep LISTEN`\n\n## License\n\nMIT — [Agent360](https://agent360.dk)\n","readmeFilename":"README.md","_rev":"1-7ee2968afcb72e59226c07e59ee5f873"}