Docs

Add Browser MCP to ZCode

Give your ZCode agent control of your real, already-logged-in Chrome in four steps. 40 browser tools, your actual cookies and sessions, works on 2FA and CAPTCHA-gated sites where headless tools (Playwright, Puppeteer) get blocked. MIT-licensed, free, and runs on your machine - no account, no telemetry, nothing sent to us.

Two halves, both required
1
The Chrome extensionAdd to Chrome
2
The server, in your client
{
  "mcpServers": {
    "browser-mcp": {
      "command": "npx",
      "args": ["@agent360/browser-mcp@latest"]
    }
  }
}
3
Then sayOpen example.com and take a screenshot.

You need: Chrome, and Node.js 20 or newer for npx (node -v shows your version).

The whole thing, in four steps

1 - Install the Chrome extension. One click from the Chrome Web Store; Chrome keeps it updated. No store? The unpacked install is further down.

2 - Add the MCP server in ZCode. Settings → MCP Servers → New MCP Server - scope User, name browser-mcp, type stdio, command npx, argument @agent360/browser-mcp@latest. Required - the extension does nothing on its own.

3 - Restart ZCode. That is what starts the server. The extension shows no badge until step 4 - the server only takes a port the first time your agent actually uses the browser. A green badge with the number of connected agents appears then; nothing on the icon before that is normal. (The icon itself never changes colour - it is the badge that turns green.)

4 - Say this, to check it worked. Paste it to your ZCode agent:

Open example.com and take a screenshot.

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

Everything below is the long version.


Step-by-step install (ZCode)

Step 1 - Get the extension files

npx @agent360/browser-mcp install

This copies the Chrome extension to ~/.browser-mcp/extension/ and prints the path in your terminal - copy it, you'll need it in Step 3. (It also registers the server with Claude Code, Codex, VS Code and Cursor if it finds them; ZCode is not one of them, so Step 2 is what wires it into ZCode.)

Step 2 - Add the MCP server in ZCode

Open ZCode → Settings → MCP Servers → New MCP Server (top-right corner).

Form mode (fastest):

FieldValue
ScopeUser (available in every workspace) - or Workspace to scope it to the current project only
Namebrowser-mcp
Typestdio (leave HTTP/SSE alone - Browser MCP runs locally over stdio, it's not a remote service)
Commandnpx
Arguments@agent360/browser-mcp@latest
Environment variablesnone - leave empty, no API key required

Or Full configuration mode - paste this JSON directly instead of filling the form:

{
  "mcpServers": {
    "browser-mcp": {
      "command": "npx",
      "args": ["@agent360/browser-mcp@latest"]
    }
  }
}

ZCode also advertises auto-detection of MCP servers you've already configured for Claude Code, Codex CLI, or OpenCode. If you ran Step 1 previously for one of those, check the "Configured MCP servers" list first - browser-mcp may already show up as a one-click import instead of something you need to type in. We couldn't pin down the exact detection path from ZCode's public docs, so treat this as a shortcut worth checking, not a guaranteed step.

Step 3 - Load the extension in Chrome

Chrome doesn't let extensions install themselves from npm, so this one step is manual:

  1. Open Chrome and go to chrome://extensions
  2. Toggle Developer mode ON (top right)
  3. Click Load unpacked (top left, next to "Pack extension")
  4. Navigate to ~/.browser-mcp/extension/ and select it
  5. Mac: in the file picker, press Cmd+Shift+G, paste ~/.browser-mcp/extension/, hit Enter
  6. Windows: paste %USERPROFILE%\.browser-mcp\extension\ into the address bar
  7. Linux: type ~/.browser-mcp/extension/ into the path field

Don't want Developer mode on? Use the Chrome Web Store install instead - see below.

Step 4 - Confirm it's enabled and reload ZCode

Check that browser-mcp shows as Enabled in ZCode's MCP Servers list. If your agent doesn't see the browser tools right away, restart ZCode - that forces it to pick up the new server. The extension shows a green badge with the number of connected agents once your agent first uses the browser.

Verify it's working

Paste this to your ZCode agent:

Open example.com and take a screenshot.

If you get an image back instead of "I don't have browser access", both halves are talking to each other. That is the whole test.

Now what - things to actually say

Nothing happens until you ask, and the hardest part of a new tool is knowing what to ask for. Start with these:

Open Gmail 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 fresh headless browser would hit a login wall here.

Go to my analytics dashboard, pull this month's numbers, and put them in a table.

A dashboard you are signed into in this Chrome. No API key, no export, no integration to build first.

Where a prompt says example.com, put your own site.

Fill in the signup form at example.com/signup with my details. Stop and ask me before anything sensitive.

You stay in the loop - the agent can pause and ask you before passwords, payment details, or anything it should not decide alone.

Log me in at app.example.com. If it emails a code, open Gmail, read the code and continue.

The move that needs no email-API setup: it opens your Gmail, reads the one-time code 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: many of the browser tasks you would do yourself, on sites you are already signed into. It is strongest where there is no API - internal dashboards, admin panels, portals, LinkedIn. More examples.


Alternative installs

No Developer mode - Chrome Web Store

Install from the Chrome Web Store →

No Developer mode toggle needed, and Chrome updates the extension automatically in the background. You still need Step 2 (or the JSON block above) to register the server in ZCode.

No npm? Manual zip download

  1. Download the extension zip from the latest GitHub release
  2. Unzip it anywhere (e.g. ~/Downloads/browser-mcp-extension/)
  3. Follow Step 3 above, but select the unzipped folder instead of ~/.browser-mcp/extension/
  4. Add the server in ZCode using the JSON block from Step 2 - no npx install run needed for this path.

What your agent can do

The 2FA killer move

This is the reason people install Browser MCP: your ZCode agent hits a login wall, needs a verification code, and - because it's driving your actual logged-in Chrome rather than a fresh headless session - it can open your Gmail, read the code, and finish the sign-in itself. There is no email API to set up and no "read my 2FA code" endpoint to call. It works because Browser MCP isn't simulating a browser, it's operating yours: your cookies, your sessions, your already-passed 2FA challenges.

The same real-session advantage is why it works on 2FA- and CAPTCHA-gated sites that block Playwright and Puppeteer - it is not a fresh anonymous session, it is yours. (We do not build detection-evasion; see when-not-to-use.)

40 tools

CategoryTools
Navigation & contentbrowser_navigate, browser_get_page_content, browser_screenshot, browser_execute_script, browser_extract_list
Interactionbrowser_click, browser_double_click, browser_right_click, browser_click_xy, browser_fill, browser_press_key, browser_scroll, browser_wait, browser_hover, browser_select_option, browser_set_combobox, browser_set_date, browser_dismiss_overlays, browser_handle_dialog
Tabs & framesbrowser_list_tabs, browser_switch_tab, browser_close_tab, browser_get_new_tab, browser_list_frames, browser_select_frame
Data & networkbrowser_get_cookies, browser_set_cookies, browser_get_local_storage, browser_set_local_storage, browser_fetch, browser_wait_for_network, browser_extract_token, browser_console_logs, browser_upload_file, browser_drop_file
CAPTCHA assistancebrowser_solve_captcha - detects reCAPTCHA v2/v3, hCaptcha, Turnstile and FunCaptcha; the agent can try the reCAPTCHA checkbox, click reCAPTCHA grid cells it chooses, or ask you to solve it with browser_ask_user, one step per call. No third-party solving service
Human-in-the-loopbrowser_ask_user - a card you can drag aside while you log in or solve a CAPTCHA, or a dialog with fields for a 2FA code, right inside the page
Meta & recoverybrowser_about - version and links to report a bug or wish · browser_provide_feedback - checks the install and drafts an issue · browser_reattach_debugger - recovery when actions start timing out

browser_extract_token opens the API page of 9 known providers (Stripe, HubSpot, Slack, Shopify, Pipedrive, Calendly, Mailchimp, Google, LinkedIn) and returns instructions for finding or creating the credentials there; it reads nothing itself. Any other provider answers Unknown provider, and the agent can use browser_navigate + browser_get_page_content on that provider's own dashboard instead.

Full source: github.com/Agent360dk/browser-mcp.

How this differs from Playwright MCP

FeatureBrowser MCPPlaywright MCP
BrowserYour real Chrome, alwaysIts own browser by default. Your real Chrome too, via their Chrome extension
Logins/cookiesYour existing sessionA persistent profile keeps logins between runs, or your own session via their extension
2FA / CAPTCHA-gated sitesWorks, and browser_ask_user can ask you for the code mid-runReachable in extension mode, but nothing can ask you for a code
Human-in-the-loopbrowser_ask_user pauses, asks you for a code, and continues in the same tabNone. 72 tools, none of which can ask the person anything (checked 2026-09-19)
Several agents at once20 concurrent, color-coded tab groupsAlso supported via their extension: one tab group per connected client
Provider dashboards9 known providers (Stripe, HubSpot, Slack, Shopify, Pipedrive, Calendly, Mailchimp, Google, LinkedIn); any other through browser_navigate and reading the pageNone
InstallChrome extension + one mcp.json entrynpx @playwright/mcp
Corrected 2026-09-19. Four rows in this table used to say Playwright MCP was headless, made you log in every time, was frequently blocked on 2FA sites, and could only run one session. All four were wrong: Microsoft ships a Chrome extension that uses your own logged-in browser, and their own README documents several clients connected at once, each with its own coloured tab group. We had corrected this in the main README on 2026-09-07 and did not carry the fix across to these pages. The row that survives is human-in-the-loop, and it is measured, not assumed.

Works with any MCP client

Browser MCP is a standard stdio MCP server - it has no idea which agent is driving it, and doesn't need to. The setup is identical for Cursor, VS Code agent mode, Claude Code, or anything else that speaks MCP: point the client at npx @agent360/browser-mcp with no arguments, and the 40 tools show up. This ZCode guide and the Claude Code guide differ only in Step 2 - how each client's UI registers a stdio server.

Running more than one agent session at once

Each session gets its own MCP server on its own port (9876-9895), and the extension keeps every session's tabs in a separate color-coded Chrome tab group - one session can't see or click another's tabs. Idle sessions auto-exit after 4 hours without commands.


FAQ

How do I add Browser MCP as an MCP server in ZCode? Run npx @agent360/browser-mcp install to fetch the extension files, then in ZCode go to Settings → MCP Servers → New MCP Server, set type stdio, command npx, argument @agent360/browser-mcp@latest. Load the Chrome extension once (Step 3), confirm browser-mcp shows Enabled, and restart ZCode if the tools don't appear immediately.

What is Browser MCP? An MCP (Model Context Protocol) server that gives ZCode - or any MCP client that can run local stdio servers, including Claude Code, Cursor, and VS Code agent mode - control of your actual, already-logged-in Chrome: your cookies, your sessions, your 2FA. 40 tools, MIT-licensed, runs on your own machine.

Is it free? Yes. MIT license, no account, no paid tier.

Does it only work with ZCode? No. It's a standard MCP server, so it works with any MCP client that can run local stdio servers. Only Step 2 - how you register the server - differs between clients; Cursor takes the same {"mcpServers": {"browser-mcp": {"command": "npx", "args": ["@agent360/browser-mcp@latest"]}}} block, and VS Code uses the root key servers instead.

Why do I have to load the extension manually instead of it just installing? Chrome blocks extensions from self-installing from npm or any script - that's a Chrome security boundary, not a Browser MCP limitation. Loading unpacked once, or installing from the Chrome Web Store, are the only two ways in.

Does my browsing data leave my machine? Not to us. The MCP server runs locally over stdio, talks to the extension over a local WebSocket, and the extension talks to Chrome through Chrome's own APIs. What your agent reads goes to your AI client and on to its model provider, like anything else you show it - there is no Agent360 server.

How do I update it? Use @agent360/browser-mcp@latest as the argument to ask for the latest release each time the server starts; restart ZCode to update. The extension auto-updates only if you installed it from the Chrome Web Store; if you loaded it unpacked, re-run npx @agent360/browser-mcp install and click ↻ reload on chrome://extensions.

ZCode isn't picking up the browser tools - what do I check? First, confirm browser-mcp shows as Enabled in ZCode's MCP Servers list (adding it isn't always the same as it being active). Then confirm the Chrome extension is loaded under chrome://extensions - click the extension icon → "Reconnect" and give it 2-3 seconds, it scans ports 9876-9895 for the running MCP server. If both check out and it's still not showing, restart ZCode.

Is this the same as browsermcp.io? No - different project, same underlying idea (MCP + your real Chrome), separate codebase. If you found this page searching generically for "browser mcp," make sure you're grabbing the one you meant: this one is @agent360/browser-mcp on npm, github.com/Agent360dk/browser-mcp on GitHub.

Can I run it across multiple ZCode sessions at once? Yes - up to 20 concurrent sessions, each on its own port with its own color-coded Chrome tab group, so sessions can't see or control each other's tabs.