Your coding agents,in the Chrome you already use.
A Chrome extension and a small local MCP server. Claude Code, Codex, OpenCode or Cursor read your open tabs, click, fill forms, run scripts and take screenshots — with your sign-ins, not a separate headless browser. While they work, the page glows and tells you what is happening.
- Runs on 127.0.0.1 only
- No telemetry
- Free and open source
A replay with sample data. The glow and the island are drawn with the extension’s own styles and words.
Agent → local server → your tabs.
Your agent starts the server as an ordinary MCP server over stdio. The extension connects to it on your own machine and does the work in the tab.
- Your agentClaude Code, Codex CLI, OpenCode, Cursor — any MCP client.
- Local MCP serverNode.js, started by the agent. Listens on
127.0.0.1:47615. - Chrome extensionConnects to that port only. Shows the glow and the island.
- Your tabsThe pages you have open, with your cookies and sign-ins.
Many sessions, one browser
Each agent session starts its own server process. The first one becomes the hub, the rest join it as peers, and when the hub’s session ends another takes over within about a second.
You always see it
While an agent acts in a tab, its edges breathe green and an island at the bottom says what is happening. It never takes clicks and fades out a moment after the last call.
Clear failures
Chrome closed? Calls fail fast with a clear error. Every request has a 15-second timeout, and clicks or navigation are never retried behind your back.
Twelve browser tools.
They show up in your agent as browser_* (in Claude Code: mcp__webmcp__browser_*).
browser_list_tabsEvery open tab: id, title, url, which one is active.browser_get_page_infoId, title and url of a tab.browser_get_page_contentThe visible text or the full HTML of a page.browser_query_selectorElements matching a CSS selector: tag, text, attributes.browser_get_console_logsBufferedconsole.*output and uncaught errors of a tab.
browser_navigateOpen a URL in a tab.browser_clickClick the first element matching a selector.browser_fillSet an input, textarea or contenteditable and fireinput/change.browser_upload_filesPut local files into an<input type=file>.
browser_execute_scriptRun JavaScript in the page and return the result, even on strict-CSP sites.browser_screenshotA PNG of the visible area, with the overlay hidden.browser_connection_statusIs the extension connected; hub or peer; how many sessions.
Every tool takes an optional tabId; without it, the active tab of the last focused window is used.
Install in three steps.
Get the code from GitHub, install the server, load the extension in Chrome.
Chrome Web Store: coming later.
Needs Node.js 22+ and Chrome (other Chromium browsers with extensions should work). Rather configure clients yourself? npm install --ignore-scripts.
- 1
Install the server
git clone https://github.com/glmn-ai/neurosquad-browser-mcp.gitcd neurosquad-browser-mcp/servernpm install
npm installalso adds awebmcpentry to every MCP client it finds — Claude Code, Codex CLI, OpenCode, Cursor. It never overwrites an existing entry and keeps a.bakcopy. Restart those clients afterwards. - 2
Load the extension
Until the Chrome Web Store listing is out, load it unpacked:
- Open
chrome://extensions - Turn on Developer mode (top right)
- Click Load unpacked and pick the
extension/folder - Pin NeuroSquad Browser MCP to the toolbar
- Open
- 3
Ask your agent
With a page open in Chrome, try:
- > use the browser tools to tell me what’s on the current page
- > click the "Submit" button
- > fill the search box with "hello" and show me the console errors
Any agent that speaks MCP.
The installer sets up the four clients below. To do it by hand, add a stdio server named webmcp that runs the server’s src/index.js with Node.
~/.claude.jsonclaude mcp add --scope user webmcp -- node /path/to/neurosquad-browser-mcp/server/src/index.jsReplace the path with where you cloned the repository.
It acts in your real browser. Here is exactly how.
That is the point of it, and the reason to know what it can do before you connect an agent.
An agent can do anything you can do in your signed-in tabs
Read your mail, press buttons, submit forms. Only connect agents you trust, and watch for the green glow.
What stays on your machine
- The extension connects to one place:
ws://127.0.0.1:47615. No analytics, no telemetry, no remote code; fonts and icons are bundled. - The hub listens on
127.0.0.1only. Web pages are refused (onlychrome-extension://origins get in); other sessions need a random 256-bit token from~/.webmcp/peer-token. - Console logs stay in the hub’s memory, per tab and bounded.
What it does not protect against
- What your agent does with page text and screenshots — including sending them to its model provider — is up to that agent.
- The extension does not authenticate the server: any program running as your user could start one on that port. Set
WEBMCP_EXTENSION_IDSto accept only your copy of the extension.
How to stop it
- End the agent session: its server exits when the client closes, and the glow fades.
- Turn the extension off in
chrome://extensions— nothing can reach your tabs then. - Remove the
webmcpentry from your client’s config to stop agents starting the server.
Every permission, and why
From the extension’s manifest.<all_urls>- Agents work on whatever page you have open, so it must be able to read and script any site.
scripting- Reading the page, clicking, filling, running scripts, drawing the glow and the island.
debugger- Only for scripts on pages whose CSP forbids eval, and for file inputs. Attached to one tab for that call, then detached; Chrome shows its bar meanwhile.
tabs- Listing tabs, navigating, switching to a tab for a screenshot.
activeTab- Capturing the visible tab for screenshots.
storage- Remembering the port you set in the popup.
alarms- Waking the service worker every 30 s to reconnect to the server.
Questions
Is it on the Chrome Web Store?
Not yet — the listing is coming later. For now you load the extension/ folder unpacked from chrome://extensions with Developer mode on. After pulling a new version, press the reload button on its card and restart your agent sessions.
Does anything leave my computer?
The extension only talks to the server on 127.0.0.1, and the server only to the agent that started it. There is no telemetry. Your agent may send what it reads to its model provider — that part is up to the agent you use.
Which agents does it work with?
Any MCP client that can run a stdio server. The installer sets up Claude Code, Codex CLI, OpenCode and Cursor for you; agents in NeuroSquad and nsq use those same configs.
Why my real Chrome and not a headless browser?
Because the work is often behind your sign-ins: a staging dashboard, an admin panel, a web app you are debugging. The agent sees the page you see, including its console errors, and you watch it happen.
Can I run several agents at once?
Yes. Every session starts its own server process; they share one connection to the extension through the hub, and the island shows in whichever tab is being worked on.
It used to be called WebMCP?
Yes, renamed in 1.4.0. The config key is still webmcp, and the tool names, port 47615, the WEBMCP_* variables and the token file are unchanged, so existing installs keep working.
Let your agent see the page you’re looking at.
Free and open source under MIT. Local only.
Run several agents side by side in NeuroSquad or in your terminal with nsq