Browse Bridge
Let AI agents observe and control Chrome tabs you explicitly share via Browse Bridge.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
claude mcp add --transport http browse-bridge 'https://mcp.browsebridge.com/mcp' --header 'Authorization: <Bearer token: your Browse Bridge API key (bbk_...) from https://browsebridge.com/dashboard/connections>'
{
"mcpServers": {
"browse-bridge": {
"type": "http",
"url": "https://mcp.browsebridge.com/mcp",
"headers": {
"Authorization": "<Bearer token: your Browse Bridge API key (bbk_...) from https://browsebridge.com/dashboard/connections>"
}
}
}
}
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
Browse Bridge for Cursor
Cursor Plugin that wires Browse Bridge remote MCP into Cursor so agents can observe and control browser tabs you have Explicitly Enabled in the Chrome extension.
- MCP:
https://mcp.browsebridge.com/mcp - Site: https://browsebridge.com
- Chrome extension: listed on the Chrome Web Store
- License: MIT
Prerequisites
- Create an account at https://browsebridge.com/sign-up (plans: https://browsebridge.com/plans).
- Install the Browse Bridge Chrome extension from the Chrome Web Store and sign in with the same account.
- Sign in and open Connections to create an API key (starts with
bbk_). Keep it secret. - Cursor with plugin/MCP support.
Install (Marketplace / local)
Official Marketplace (after listing)
Install browse-bridge from the Cursor Marketplace and paste your API key when prompted (BROWSEBRIDGE_API_KEY).
Local test (before / without Marketplace)
# Copy (do not symlink outside this folder)
cp -R /path/to/browsebridge-cursor-plugin ~/.cursor/plugins/local/browse-bridge
Restart Cursor, open Customize, configure BROWSEBRIDGE_API_KEY, confirm MCP tools appear (browser_observe, browser_click, etc.).
Manual mcp.json snippet
{
"mcpServers": {
"browse-bridge": {
"url": "https://mcp.browsebridge.com/mcp",
"headers": {
"Authorization": "Bearer ${BROWSEBRIDGE_API_KEY}"
}
}
}
}
Plugin variables only fill in inside the plugin, so for a manual config use your real key or ${env:BROWSEBRIDGE_API_KEY}.
Usage
- Open a normal website tab (not
chrome://). - Click the Browse Bridge toolbar icon, then Enable on the tab you want to share. Accept the confirmation and any Chrome permission prompt. Use Take control (or Ctrl+Shift+Period) to take the tab back at any time.
- In Cursor, use MCP tools such as
browser_list_sessions,browser_observe,browser_click,browser_screenshot. - Challenges / sensitive sites may pause the agent for human Take over or Approve.
Tools (17)
| Tool | What it does |
|---|---|
browser_list_sessions | List Enabled shared tabs. |
browser_get_status | Control mode, URL, deviceOnline, pending approvals, remaining monthly quota (actionsRemaining, screenshotsRemaining, quotaExceeded, quotaResetAt). Tools return QUOTA_EXCEEDED when a monthly quota is exhausted. |
browser_observe | Semantic page tree + observationId / elementIds. |
browser_screenshot | Visible-tab JPEG as MCP image content. |
browser_click | Click an observed element. Optional button: "left" (default), "right", or "middle". |
browser_type | Set a control's value (not a password). |
browser_select | Choose a listed <option>. |
browser_press_key | Key in the focused (or named) element. |
browser_hover | mouseover / mouseenter on an observed element. |
browser_scroll | Scroll the page or an element into view. |
browser_navigate | Go to an allowed http(s) URL. |
browser_back | History back. |
browser_forward | History forward. |
browser_reload | Reload the tab. |
browser_wait | Pause 0–30000 ms. |
browser_release_control | Give the tab back to the human (controlMode: "human"). |
browser_cancel_approval | Withdraw a pending agent approval (approvalId). |
JavaScript dialogs
Page alert / confirm / prompt are auto-handled so they cannot freeze the tab: alerts are accepted, confirms are dismissed, and prompts return null. The handled dialog is reported in the dialog field on click (and in dialogs on observe).
Approvals
Sensitive-site clicks/types/navigations and cross-origin navigations (and cross-origin link clicks) return APPROVAL_REQUIRED. The human Approves or Denies in the Chrome side panel. The agent can withdraw its own request with browser_cancel_approval (APPROVAL_CANCELLED — that is not a human Deny). While an approval is pending, observe/screenshot/wait/get_status/list_sessions/release_control still run.
Configuration
| Variable | Required | Description |
|---|---|---|
BROWSEBRIDGE_API_KEY | Yes | API key from the Browse Bridge dashboard |
Declared in .cursor-plugin/plugin.json → variables and referenced only as ${BROWSEBRIDGE_API_KEY} in mcp.json.
Privacy & security
See PRIVACY.md and SECURITY.md.
Repo layout
.cursor-plugin/plugin.json
mcp.json
assets/logo.svg
README.md
LICENSE
PRIVACY.md
SECURITY.md
SUPPORT.md
Frequently asked questions
What is Browse Bridge?
Let AI agents observe and control Chrome tabs you explicitly share via Browse Bridge.
How do I install Browse Bridge?
It runs as a remote server. In Claude Code: claude mcp add --transport http browse-bridge 'https://mcp.browsebridge.com/mcp' --header 'Authorization: <Bearer token: your Browse Bridge API key (bbk_...) from https://browsebridge.com/dashboard/connections>'. For other clients, paste the JSON configuration from this page into their MCP settings.
Does Browse Bridge need an API key?
Yes. It expects Authorization, which you set in its configuration.
Is Browse Bridge open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains Browse Bridge?
It is published by BryanHamilton. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.