Browser Bridge MCP
MCP server that gives AI coding assistants direct access to the browser — navigate, click, fill forms, run JavaScript, take screenshots, and read page content.
README
Browser Bridge MCP
MCP server that gives AI coding assistants direct access to the browser — navigate, click, fill forms, run JavaScript, take screenshots, and read page content.
MCP Client ←(stdio)→ mcp-browser-bridge ←(WebSocket :7483)→ Browser Extension ←(Chrome APIs)→ Browser
Works with any MCP-compatible client: Claude Code, Cursor, Windsurf, Cline, and others.
Quick Start
1. Install the extension
Install from the Chrome Web Store, or load manually:
- Download or clone this repo.
- Open
chrome://extensions, enable Developer mode. - Click Load unpacked and select the
extension/folder.
Works in any Chromium browser: Chrome, Brave, Edge, Arc, Vivaldi, Opera.
2. Add to your MCP client
<details> <summary><strong>Claude Code</strong></summary>
Run:
claude mcp add browser-bridge -- npx -y mcp-browser-bridge
Or add to .mcp.json:
{
"mcpServers": {
"browser-bridge": {
"command": "npx",
"args": ["-y", "mcp-browser-bridge"]
}
}
}
</details>
<details> <summary><strong>Cursor</strong></summary>
Add to .cursor/mcp.json:
{
"mcpServers": {
"browser-bridge": {
"command": "npx",
"args": ["-y", "mcp-browser-bridge"]
}
}
}
</details>
<details> <summary><strong>Windsurf</strong></summary>
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"browser-bridge": {
"command": "npx",
"args": ["-y", "mcp-browser-bridge"]
}
}
}
</details>
<details> <summary><strong>Other MCP clients</strong></summary>
Use npx -y mcp-browser-bridge as the server command in your client's MCP configuration. The server communicates over stdio.
</details>
3. Verify
Start your MCP client. The extension popup should show a green Connected indicator. Call the browser_status tool to confirm.
Available Tools
All tools accept an optional tabId parameter. When omitted, they target the active tab.
| Tool | Description |
|---|---|
browser_status |
Check if the extension is connected and get active tab info |
browser_navigate |
Navigate a tab to a URL |
browser_screenshot |
Capture a screenshot of the visible area of a tab |
browser_evaluate |
Execute JavaScript in a tab and return the result |
browser_click |
Click an element by CSS selector |
browser_fill |
Fill a form field by CSS selector (React-compatible) |
browser_get_content |
Get the text or HTML of a page or element |
browser_get_tabs |
List all open browser tabs |
browser_get_console |
Get captured console log entries from a tab |
browser_wait_for |
Wait for a CSS selector to appear on the page |
browser_send_message |
Send a custom message to the extension |
Included Prompts
The server ships two MCP prompts that provide guided workflows to any connected client:
| Prompt | Description |
|---|---|
browse |
General-purpose browser interaction — navigating, clicking, filling forms, screenshotting, running JS. Accepts an optional task argument. |
qa-runner |
Structured QA checklist execution — drives the browser through test scenarios defined in markdown and reports pass/fail results. Accepts an optional checklist path. |
In Claude Code, these appear as slash commands: /browser-bridge:browse and /browser-bridge:qa-runner.
Configuration
The WebSocket port defaults to 7483. To change it:
- Server side: Set the
BRIDGE_WS_PORTenvironment variable in your MCP config. - Extension side: Change the port in the extension popup and click Reconnect.
Security
- WebSocket binds to
127.0.0.1only — no network exposure. - Connections restricted to browser extension origins.
- Single extension client at a time.
Troubleshooting
Extension shows "Disconnected" Check that the MCP server is running and the port is free:
# macOS/Linux
lsof -i :7483
# Windows
netstat -aon | findstr :7483
Tools return "No extension connected" Open the extension popup and click Reconnect.
Screenshots fail The target tab must be visible and focused. Background or minimized tabs cannot be captured.
browser_evaluate returns unexpected results
Results must be JSON-serializable. Promises return {} — use synchronous expressions or await inside an IIFE and return a plain value.
Development
git clone https://github.com/adbarc92/mcp-browser-bridge.git
cd mcp-browser-bridge
npm install
npm run build
npm test # 53 tests via Vitest
Load the extension locally via chrome://extensions → Load unpacked → select extension/.
The repo includes a .mcp.json configured for local development.
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.