browser-mcp
Controls a live Google Chrome browser session, enabling navigation, clicking, typing, hovering, screenshots, console log retrieval, and accessibility tree inspection via a Chrome extension.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@browser-mcpGo to Google, search for 'weather in London', and take a screenshot."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
browser-mcp is a Model Context Protocol server that extends any MCP-capable client — Claude, opencode, and friends — with full control over a real Google Chrome window. Through a tiny Chrome extension, the agent navigates pages, clicks, types, screenshots, and inspects the live DOM of a session that already has your logins, cookies, and extensions loaded.
Quick start
npm install # 1. install dependencies
npm start # 2. launch the MCP server (WebSocket bridge on ws://127.0.0.1:9333)Then load the extension:
Open
chrome://extensionsin Chrome and enable Developer mode.Click Load unpacked and select the
extension/folder from this repo.Point your MCP client at the server:
{
"mcpServers": {
"browser": {
"command": "node",
"args": ["/absolute/path/to/browser-mcp/server.js"]
}
}
}That's it. The extension auto-connects to the bridge — no headless browser, no driver process, no screenshots-of-a-screenshot. Your AI operates the very Chrome window on your desk.
Related MCP server: BrowserGenie MCP Server
Tools
Tool | Does what |
| Open a URL in the controlled tab, returns the page snapshot |
| Accessibility tree of the page, every element tagged with a |
| Click an element by |
| Type into a textbox / textarea, optionally press Enter |
| Pick values from a dropdown |
| Send keys: |
| Hover an element (reveal hover menus) |
| Pause N seconds for transitions and animations |
| History navigation |
| Grab a PNG of the page |
| Console messages and page errors since the last call |
| Close the controlled tab and detach |
Interaction tools take a ref from the latest browser_snapshot — so a typical agent loop is: snapshot → act → snapshot → act, exactly like a human looking at the page.
How it works
stdio (JSON-RPC) WebSocket 127.0.0.1:9333
MCP client ─────────────────▶ server.js ─────────────────────────▶ Chrome
(Claude, ◀───────────────── MCP tools ◀──────────────────────── extension
opencode…) results │ bridge │
└──────────── 1. CDP (chrome.debugger) ─┘
2. accessibility snapshotThree moving parts, one goal:
server.js— the MCP server. Exposes the 13 tools over stdio to any MCP client and runs an embedded WebSocket bridge for talking to the extension.The bridge — a localhost-only listener on
127.0.0.1:9333that multiplexes requests/responses, with per-call timeouts and automatic reconnection.The extension (
extension/) — an MV3 service worker connected to the bridge. It drives the active tab over the Chrome DevTools Protocol (chrome.debugger), renders accessibility snapshots, and reports console output back.
Because the browser machinery lives entirely in the extension, the MCP surface stays clean and standard — and because the extension keeps your real session, the agent gets your real state.
Features
Controls the browser session you're already logged into — cookies, extensions, and multi-account setups just work.
Compact accessibility snapshots — role, name, value, checked-state, and a stable
reffor every interactive element.full console insight —
browser_get_console_logssurfacesconsole.log, warnings, and page errors, which is a huge debugging superpower.Multi-display aware — on macOS the server auto-detects your displays and targets your chosen window position (usable on Linux/Windows too, just with primary-display default).
Zero browser-driver setup — no Playwright binary downloads or
npx playwright installto run the server; Playwright is used only in the test harness.Standards-first — built on the official MCP TypeScript SDK with Zod-validated inputs.
Configuration
Flags for server.js:
Flag | Default | Description |
|
| WebSocket bridge port (must match the extension's endpoint) |
|
| Physical display to target (1-based, prefers secondary displays on macOS) |
| off | Verbose diagnostics on stderr |
node server.js --port 9333 --display 2 --debugDebug mode prints bridge status, connection events, and per-tool diagnostics to stderr; JSON-RPC traffic flows on stdout.
Requirements
Component | Requirement |
Node.js | ≥ 18 |
Browser | Google Chrome / Chromium (MV3 extension support) |
OS | macOS fully supported (auto multi-display targeting); others fall back to the primary display |
MCP client | Any host running external MCP servers over stdio |
Testing
node test-client.mjs # scripted stdio client exercising the full tool flow
node e2e.mjs # Playwright-launched Chrome with the extension pre-loadedProject structure
browser-mcp/
├── server.js # MCP server, tool definitions, WebSocket bridge
├── extension/ # Chrome MV3 extension (CDP-based tab automation)
│ ├── manifest.json # extension manifest (permissions, service worker)
│ ├── background.js # CDP attach, snapshot rendering, tool execution
│ ├── popup.html/.js # status popup
│ ├── icons/ # 16/32/48/128 px
│ └── …
├── test-client.mjs # MCP stdio smoke test
├── e2e.mjs # end-to-end test with Playwright
├── package.json
└── README.mdLicense
MIT © 2026 Parithosh Varma
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityCmaintenanceAn MCP server that enables AI agents to control a real Google Chrome instance using specific user profiles, cookies, and extensions. It provides 18 tools for browser navigation, element interaction, and page inspection via the Chrome DevTools Protocol.Last updated
- AlicenseBqualityBmaintenanceAn MCP server that provides AI models with full browser automation capabilities through Chrome. It enables navigation, interaction, screenshots, and complete DevTools access by bridging AI clients with a companion Chrome extension.Last updated9972Apache 2.0
- AlicenseAqualityDmaintenanceA MCP server that gives AI assistants full browser control, enabling navigation, clicking, form filling, and screenshots via any MCP client.Last updated8MIT
- Alicense-qualityCmaintenanceEnables AI agents to control Chrome browser actions like navigation, clicking, form filling, screenshots, and console/network logging via an MCP server and Chrome extension.Last updated1,001MIT
Related MCP Connectors
Live browser debugging for AI assistants — DOM, console, network via MCP.
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
A paid remote MCP for AI agent browser approval MCP, built to return verdicts, receipts, usage logs,
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Parithosh-Varma/browser-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server