Skip to main content
Glama
weaming
by weaming

Browser Bridge

AI ↔ Browser Control Bridge: Turn your browser into an MCP toolset. Any MCP client (AI program) calls tools like browser_snapshot / browser_click / browser_type through the standard MCP protocol to operate web pages in a real browser.

  • Supports any MCP client: Claude, codex, custom agents, curl

  • Default follow mode: AI automatically controls your currently active tab, zero configuration

  • Real browser, not headless: login state, CAPTCHAs (prompts you to solve manually), natural anti-scraping characteristics

Quick Start

1. Download

Download one archive from Releases:

  • browser-bridge-<platform>-<arch>.zip — choose based on your machine's platform

Extract to any directory (referred to as <DIR> below). The directory contains browser-bridge/ (extension), browser-bridge-host, install-host.sh (install-host.ps1 on Windows).

2. Load the Extension

  1. Open chrome://extensions

  2. Turn on Developer mode in the top-right corner

  3. Click "Load unpacked" and select the extracted browser-bridge/ directory

3. Install the Host

macOS / Linux:

cd <DIR>
./install-host.sh         # Windows(PowerShell): .\install-host.ps1

After running, it will list detected browsers. Press Enter to install to all, or enter a number to select a specific browser; you can also specify directly with arguments:

./install-host.sh --all      # 安装到全部浏览器
./install-host.sh --chrome   # 只装 Chrome(--chromium / --edge 同理)

The extension ID is built in and fixed, no need to fill it in manually; if your extension ID differs, you can pass it as an additional argument: ./install-host.sh <your-extension-ID>.

If the browser is already open, fully quit and restart the browser after installation.

4. Usage

Connect with any MCP client:

MCP server: http://127.0.0.1:1234/mcp

If the port is occupied, it automatically increments by +1. The actual port is shown in the extension popup (Connected · MCP port xxxx) or in ~/.browser-bridge/port.

codex configuration example (~/.codex/config.toml):

[mcp_servers.browser]
url = "http://127.0.0.1:1234/mcp"

After that, just tell the AI "take a look at this page..." and you're done.

Related MCP server: BrowserPilot

MCP Tools

Tool

Parameters

Description

browser_control_status

Query control target and connection status

browser_list_tabs

List all tabs

browser_use_tab

tabId(-1 returns to follow)

Pin/switch control target

browser_new_tab

url?

Create a new tab and navigate immediately (blank page if omitted)

browser_close_tab

tabId?

Close a tab (closes controlled tab by default, auto-returns to follow)

browser_activate_tab

tabId

Activate a tab for the user to see, without changing the control target

browser_duplicate_tab

tabId?

Duplicate a tab (duplicates controlled tab by default)

browser_pin_tab

tabId?, pinned?

Pin/unpin a tab

browser_snapshot

Interactive element snapshot (ref number + coordinates)

browser_screenshot

Viewport screenshot (dataUrl, for visual understanding of complex layouts)

browser_url

Query current controlled page URL and title (lightweight)

browser_click

ref, button?

Click

browser_dblclick

ref

Double-click

browser_type

ref, text, clear?

Type input (compatible with React controlled inputs)

browser_form_fill

fields[]

Batch fill multiple fields

browser_press / browser_key

key, modifiers?

Key press (supports ctrl/shift/alt/meta)

browser_select

ref, value

Dropdown

browser_scroll

dir, amount?, ref?

Scroll

browser_hover

ref

Hover

browser_highlight

ref

Highlight element for 1s (user-visible AI operation location)

browser_drag

fromRef, toRef

HTML5 drag-and-drop

browser_goto / back / refresh

url

Navigation

browser_wait

ms?

Wait for page to stabilize

AI orchestrates on its own: snapshot → decide → act → snapshot again, until the task is complete.

Control Modes

  • Follow mode (default): controls your currently active tab; switching tabs switches the target

  • Pinned mode: locks a specific tab (switching doesn't follow); pin/unpin with one click in the popup, or via AI calling browser_use_tab

Toolbar icon badge: none = following; AI amber = pinned; ! red = connection error.

Architecture

任意 MCP 客户端
   │ MCP (Streamable HTTP, 127.0.0.1:1234/mcp)
browser-bridge host(单进程 = MCP ↔ 帧协议翻译器)
   │ native messaging(stdin/stdout 帧)
Chrome 扩展
   ├─ background:转发、目标解析、保活、状态徽标
   └─ content script:快照 / 执行

MV3 extensions cannot listen on ports, so the native host is the only channel (same architecture as Chrome's official DevTools MCP).

Building from Source (Developers)

Requires bun:

bun install
bun run build                    # 当前平台 host + 扩展
./scripts/install-host.sh        # 注册 host(默认内置扩展 ID)
bun run scripts/build.ts --all   # 交叉编译全部平台 + 发布包(发布用)
bun test                         # 单元 + MCP API 集成测试(无需浏览器)

Configuration

  • BROWSER_BRIDGE_PORT: MCP initial port (default 1234, auto-increments by +1 if occupied)

  • BROWSER_BRIDGE_MOCK=1: mock extension responses (for development testing)

Troubleshooting

Symptom

Cause

Solution

Popup shows "host not connected"

Host not installed / browser not restarted

Run install-host, fully quit the browser and reopen

Invalid native messaging host name

Host name contains hyphens (old version)

Update to the new version (host name com.browserbridge)

Extension ID mismatch

Loaded with an old manifest

Re-download the extension, or pass install-host.sh <your-ID>

MCP cannot connect

Host not running

Open the browser + extension first (host is launched by Chrome)

Target tab unreachable

Page not ready / not http(s)

Wait for the page to load, or pin with browser_use_tab

License

MIT

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
4Releases (12mo)
Commit activity

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

  • A
    license
    B
    quality
    A
    maintenance
    Enables controlling a real Chrome browser from MCP hosts like Claude, with extension-based or CDP fallback, supporting tabs, navigation, interaction, and page reading tools.
    33
    265
    5
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI to control browsers via natural language for web automation, testing, and data scraping. Supports Chrome-based browsers and integrates with any MCP-compatible AI tool.
    2

View all related MCP servers

Related MCP Connectors

  • Live browser debugging for AI assistants — DOM, console, network via MCP.

  • Stealth web browser for agents: search, fetch, click and type through persistent sessions over MCP.

  • Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.

View all MCP Connectors

Latest Blog Posts

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/weaming/mcp-browser-bridge-extension'

If you have feedback or need assistance with the MCP directory API, please join our Discord server