
Vibe MCP — Real Chrome, Remotely
io.github.VibeTechnologies由 GitHub 帳號 VibeTechnologies 發布v0.3.6更新於 Oct 24, 2026
Drive your real, logged-in Chrome from any MCP client — even from a remote machine, no inbound port.
概覽
讓助理操控你真實且已登入的 Chrome 的 MCP 伺服器,可在本機執行,也可透過外撥中繼從遠端機器控制。
- 可以做什麼
- 開啟網址、上一頁下一頁,並管理分頁(列出、新增、切換、關閉)
- 在即時頁面上點擊、輸入、填寫、捲動與使用鍵盤快速鍵
- 擷取螢幕截圖,取出頁面文字或 HTML
- 在目前的瀏覽器工作階段中執行網頁搜尋
- 用 set_remote 把執行中的伺服器切換到另一個遠端中繼
- 在 devtools 模式下可直接透過 DevTools 協定驅動 Chrome
- 適用情境
- 適合需要助理在你已登入的瀏覽器裡實際操作時,例如填寫表單、讀取登入後才看得到的頁面、查看目前分頁內容;也適合代理執行在另一台機器或託管用戶端、無法開放對內連接埠的情況。
- 執行需求
- 兩種方式:透過 npx 執行本機 npm 套件(需 Node.js),並在 Chrome 安裝 Vibe 擴充功能且開啟 MCP External Control;或使用託管的 Streamable HTTP 端點。遠端方式需要擴充功能中繼設定裡的連接器 URL 或擴充功能 UUID;devtools 模式需要 Chrome 144 以上。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Vibe MCP — Real Chrome, Remotely,將其新增到工作區。
- 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
- 為需要使用其工具的對話啟用該服務。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Vibe MCP - Browser Automation for AI Agents
MCP server for Vibe AI Browser — drive your real, logged-in Chrome from any MCP client, including agents running on a different machine with no inbound port open.
⚠️ Security — treat your relay URL/UUID like a password. A relay URL or extension UUID (
wss://relay.api.vibebrowser.app/<uuid>) grants live control of your browser session (read your tabs, take screenshots, read page content). Never share it, paste it into a chat with untrusted parties, or commit it to a repo. Every example UUID in this documentation is a non-routable placeholder (YOUR-EXTENSION-UUIDor00000000-0000-0000-0000-000000000000) — substitute your own secret value locally and keep it out of version control.
Privacy
Privacy policy: https://vibebrowser.app/privacy — what the extension, the local MCP server, and the hosted relay collect, log, and retain, including the relay's security audit records and how to revoke a connection URL.
Install prompt for AI agents (OpenClaw / Hermes)
Paste the block below into your OpenClaw or Hermes agent. Replace the last line with your remote value — the connector URL (https://relay.api.vibebrowser.app/mcp/<uuid>) shown in the Vibe extension's Settings → AI Agent Control → Remote (internet) → Relay access (a bare UUID or a wss:// relay URL also still work). That's the only edit you make.
Why Vibe MCP?
The browser-automation MCP space moved fast. Most of what used to differentiate us is now table stakes — so here is an honest scorecard. Where a competitor matches us, the column says Yes.
Two rows are ours alone:
- Outbound, cross-machine control. The Vibe extension opens an outbound WebSocket to a relay (
wss://relay.api.vibebrowser.app/<uuid>). Nothing listens on the user's machine, nothing is port-forwarded, and the agent can live in a pod, a cron job, or a chat bot. No competitor documents an extension-initiated outbound connection to a remote MCP server. - Real profile without the dialog tax. Chrome DevTools MCP needs approval for each WebSocket connection to Chrome (#1794, open; persistence was closed won't-fix). The maintainer's workaround —
--remote-debugging-portwith a dedicated--user-data-dir— avoids the dialog by giving up your logged-in profile. So: skip the dialog, or use your real profile — not both.
Also worth knowing:
- Vendor lock-in. Claude for Chrome is GA, clicks and types via the
debuggerpermission, and supports scheduled tasks — it is the closest competitor. But it only drives Anthropic's own surfaces (side panel, Claude Desktop connector, Cowork, Claude Code). There is no public API or MCP surface, so Codex, OpenCode, Hermes and OpenClaw cannot use it. Vibe MCP is agent-agnostic. - Stability. Chrome DevTools MCP is explicitly experimental and currently carries open memory-leak (#2431, #2291, #2456) and concurrency (#1763, #1921) issues.
Multi-Agent Architecture
Run Claude Desktop, Cursor, VS Code Copilot, and OpenCode at once — they share control of one browser through the relay, which multiplexes requests and routes each response back to the agent that asked.
Features
- Multi-Agent Ready - Run Claude, Cursor, VS Code, and more simultaneously against one browser
- Uses Your Browser - No separate browser instance, uses your existing Chrome with all your logins
- Remote-capable - The extension dials out to a relay, so the agent can run on another machine with no inbound port
- Local by default - In local mode everything stays on
127.0.0.1; only remote relay mode routes traffic throughrelay.api.vibebrowser.app - Direct Chrome DevTools mode - Extension tools stay primary by default; use
--devtoolsto drive your real running Chrome directly over the DevTools Protocol (no extension required)
Quick Start
1. Install the Vibe Extension
Install the Vibe AI Browser extension in Chrome, Brave, or any Chromium browser:
Option A: Chrome Web Store (Recommended)
- Visit the Chrome Web Store
- Click "Add to Chrome"
- The Vibe icon will appear in your toolbar
Option B: Developer Version
- Download the latest release ZIP
- Extract to a permanent folder
- Go to
chrome://extensions, enable Developer Mode - Click "Load unpacked" and select the extracted folder
For detailed instructions, see the installation guide.
2. Configure Your AI Application
Claude Desktop
Edit your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Restart Claude Desktop after saving.
Cursor
- Open Cursor Settings (Cmd/Ctrl + ,)
- Go to "Features" -> "MCP Servers"
- Click "Add Server" and add:
Or edit ~/.cursor/mcp.json directly.
VS Code (GitHub Copilot)
Add to your VS Code settings.json:
Windsurf
Edit ~/.codeium/windsurf/mcp_config.json:
OpenCode
Add to your .opencode/config.json:
Gemini CLI
Add to ~/.gemini/settings.json:
OpenAI Codex CLI / ChatGPT desktop app / Codex IDE extension
All three share one config file: ~/.codex/config.toml. Configure once, use everywhere.
Easiest — let Codex write the entry:
Or add the table to ~/.codex/config.toml by hand (Codex uses TOML, not JSON):
In the ChatGPT desktop app you can also use the UI: Settings → MCP servers → Add server, choose STDIO, command npx, args -y @vibebrowser/mcp, then Restart.
Verify with codex mcp list, or type /mcp in the Codex TUI or the desktop composer.
ChatGPT on the web does not read local Codex config, so a local MCP server like Vibe is not available there.
MCP command forms
Use the shortest direct package invocation for the MCP server:
Backward-compatible aliases still work when you need explicit binaries:
Remote connector (hosted assistants — no install)
Everything above assumes the client can spawn a local process. Hosted assistants cannot: Claude on the web / in Cowork / on mobile, and ChatGPT on the web, run in the vendor's cloud with no access to your machine. They accept a remote MCP server URL and nothing else — no command, no arguments, and no custom request headers.
For those, skip @vibebrowser/mcp entirely. The extension alone is enough:
Find <your-extension-uuid> in the extension: Vibe icon → Settings → AI Agent
Control → Remote (internet) → Relay access. That panel shows this exact
connector URL, and the same string is now the preferred value for the
CLI/server --remote flag — paste it in both places, no translation needed:
A bare extension UUID or a wss://relay.api.vibebrowser.app/<uuid> relay URL
are still accepted as advanced/compatibility forms — see the accepted
--remote values table in "Cloud OpenClaw -> Local Browser" below.
This is a plain Streamable HTTP MCP endpoint. There is no OAuth consent flow, no dynamic client registration, and no scope setup on this path — the UUID in the URL (or header, below) is the entire credential. If a client insists on an OAuth login before it will add the server, that client is not supported here; use the local stdio path instead.
Where to paste it:
Custom connectors are a paid-plan feature in the Claude and ChatGPT products.
Codex Desktop, Codex CLI and the Codex IDE extension can spawn a local process, and they all share
~/.codex/config.toml. Prefer the local stdio entry above — it keeps traffic on127.0.0.1and keeps the UUID out of a URL. Usecodex mcp add vibe --url …only when the browser you want to drive is on a different machine from Codex. The ChatGPT desktop app is Codex-backed and reads the same config, so it is a local-stdio surface too; only ChatGPT web needs the hosted URL.
Migrating away from the retired OAuth-style connector guidance
Earlier drafts of these docs (and the Aug 2026 directory-submission research
kept under worklog/) described a retired OAuth 2.1 + DCR consent flow at a
bare /mcp. That path is retired and unsupported for users. If you
previously added Vibe as a connector and were sent to a retired consent screen,
remove that connector and re-add it with the direct
https://relay.api.vibebrowser.app/mcp/<uuid> URL above. Nothing to authorize,
nothing to register, no scopes to pick.
The relay also accepts the UUID as an X-Remote-Session or
Authorization: Bearer header on a bare POST /mcp. Use the header form from
anything that can send one (Codex CLI, scripts) — it keeps the credential out
of URLs, logs, and browser history. The path form exists specifically for the
UIs that cannot send a header.
Two things this path costs you, stated plainly:
- The URL is a credential. Anyone who has that UUID can drive your logged-in browser — read your mail, act as you on any site you are signed into. Treat it exactly like a password: never commit it, never paste it into a shared chat, an issue, a README, or a screenshot. If it leaks, revoke the session in the extension and generate a new one. (This is not hypothetical: a dev machine's UUID once shipped in these very docs.)
- Page content leaves your machine. On the local STDIO path, tool calls
and page content never leave
127.0.0.1. On the remote-connector path they traverserelay.api.vibebrowser.app, because the assistant is in the vendor's cloud and has no other route to your browser. If you need on-device-only, use a desktop client with the local server instead.
3. Connect the Extension
- Open Chrome with the Vibe extension installed
- Click the Vibe extension icon in the toolbar
- Go to Settings and enable "MCP External Control"
- The status should show "Connected"
If the extension is not connected, vibebrowser-mcp can optionally fall back to
chrome-devtools-mcp (started in --autoConnect mode) when that package is installed.
This fallback runs once in the shared local relay daemon (multi-agent safe), so
both vibebrowser-mcp and vibebrowser-cli use the same backend instance.
When extension is connected, extension tools are authoritative.
--devtools mode (drive your real Chrome over CDP)
Pass --devtools to either CLI to bypass relay/extension routing entirely and
drive your real running Chrome directly over the Chrome DevTools Protocol.
This backend (ported from the chrome-use skill) reads Chrome's
DevToolsActivePort file and autoConnects to your live profile — no extension,
no external MCP server, zero extra dependencies. Requires Chrome 144+; the
permission dialog fires once per profile.
--devtools exposes a focused tool set: navigate, snapshot (accessibility
tree with @eN refs), click, fill, type, press_key, hover, scroll,
screenshot, eval, get_text, get_url, get_title, and tab management
(list_tabs, new_tab, select_tab, close_tab). Use snapshot to get
@eN element refs, then pass them as selectors to click/fill/type.
Override the Chrome profile/channel with VIBE_CHROME_USER_DATA_DIR and
VIBE_CHROME_CHANNEL (stable | canary | beta | dev).
Not yet covered by --devtools v1 (addable later as more CDP domains are wired):
network request inspection, console logs, performance traces, Lighthouse, memory
snapshots, device emulation, dialog handling, file upload, and drag.
Available Tools
How It Works
Default local mode (no flags):
- AI applications connect via MCP over stdio
vibebrowser-mcpconnects to the local relay on port19888- The relay forwards commands to the extension on port
19889 - Results flow back to the agent
Two legs, two protocols
Don't conflate them — the transport to the MCP server is configurable, the transport to the extension is not.
Streamable HTTP lets a remote or hosted agent — one that can't spawn a stdio subprocess — talk to the server over a URL:
Defaults: --host 127.0.0.1, --http-port 8788, --http-path /mcp. Add
--allow-host <host> (repeatable) if you front it with a proxy or bind it
beyond localhost.
Multi-Agent Mode
When multiple agents connect, Vibe MCP automatically spawns a relay daemon:
- First agent starts the relay (listens on ports 19888 and 19889)
- Additional agents connect to the relay as clients
- Relay multiplexes all agent requests to the single extension connection
- Each agent receives only its own responses
Cloud OpenClaw -> Local Browser
⚠️ Security: The
--remotevalue below is a live credential — a relay URL/UUID/connector URL grants full control of the target browser session. It is the sole bearer credential (there is no second-factor token). Treat it like a password: keep it secret, never commit it or paste it into logs, and if it leaks, regenerate it in the Vibe extension Settings.
Accepted --remote values
--remote (and the MCP set_remote tool) accept three forms, all normalized to the same relay connection:
Self-hosted or local relays derive the same way: https://your-host/vibe/mcp/<uuid> → relay wss://your-host/vibe; a loopback connector like http://127.0.0.1:19889/mcp/<uuid> → ws://127.0.0.1:19889 (self-hosted/local relay only — non-loopback hosts must use https:///wss://).
Rejected: an invalid UUID; a URL with embedded credentials, a query string, or a fragment; plaintext http:///ws:// for a non-loopback host; and any HTTP(S) URL that doesn't end in the exact /mcp/<uuid> suffix.
If your agent runs in the cloud but you want it to control the user's real local browser, run vibebrowser-mcp in HTTP mode and connect it to the Vibe extension in remote relay mode. Pass the connector URL (preferred), the extension UUID, or the full WebSocket relay URL to --remote.
This exposes a local MCP endpoint at http://127.0.0.1:8788/mcp by default.
When OpenClaw runs on a different machine (for example cloud-hosted), provide a reachable URL:
You can print the exact OpenClaw-friendly setup with:
Use the connector URL (preferred) with the default public relay, a bare UUID (default public relay), or a wss:// URL when you need an explicit relay endpoint. Whichever form you use is the only credential — never share it, log it, or paste it into an untrusted chat.
For direct browser CLI checks, always use npx -y @vibebrowser/cli@latest:
The connector URL uses the default public relay. --remote <uuid> also uses the default public relay. --remote <full-ws-url> targets an explicit relay endpoint. No second-factor secret is needed or accepted — whichever form you pass is the sole credential that authorizes the session.
For the full walkthrough, see docs/openclaw-local-browser.md.
OpenClaw-Compatible Browser CLI
npx -y @vibebrowser/cli@latest mirrors the OpenClaw browser CLI shape for the real local-browser path:
Use the MCP package for MCP server workflows and the CLI package for direct browser control:
vibebrowser-mcpfor MCP server, HTTP bridge, and helper commandsnpx -y @vibebrowser/cli@latestfor OpenClaw-inspired browser control against the real Vibe-connected session
@vibebrowser/cli accepts the OpenClaw-style --browser-profile flag for compatibility and supports --json for machine-readable output. Unlike OpenClaw's managed openclaw browser profile, this CLI always targets the real Vibe-connected browser session.
Local-session selection:
npx -y @vibebrowser/cli@latest sessionslists connected local browser sessions.npx -y @vibebrowser/cli@latest --session <id> ...targets a specific local session.- If
--sessionis omitted in local mode, the CLI uses the first connected session. - In remote mode, pass the connector URL (preferred), a bare
--remote <uuid>to use the default public relay, or--remote <full-ws-url>to use an explicit relay endpoint.
Snapshot behavior is tool-only (no legacy snapshot RPC shortcut):
snapshot(default--format markdown; legacy alias--format ai) resolves via thetake_md_snapshottool — uses the content script's in-page markdown extractor. Fast and readable, but may return empty for background tabs or complex SPAs (Notion, Gmail) where the content script is unreachable or layout is not computed. When the backend only exposestake_snapshot, the CLI sendsformat: "markdown"(aiis mapped tomarkdownbefore the call).snapshot --format ariaresolves via thetake_a11y_snapshottool — uses Chrome DevTools ProtocolAccessibility.getFullAXTreedirectly. Reliable for all tabs including background tabs and SPAs. Use this as a fallback when the default format returns empty or only a page title.
This keeps CLI behavior aligned with extension-supported tools and ensures page targeting works consistently with --page-id/--pageId.
For navigation-style operations, responses now include page content when page state changes:
- CLI
open/navigateincludepageContentin JSON output. - MCP tool calls for navigation-style tools return text content that includes current page state (with snapshot fallback when needed).
Install Prompt for AI Agents (OpenClaw / Hermes)
Use the single canonical copy-paste prompt at the top of this README:
Install prompt for AI agents (OpenClaw / Hermes).
It installs the vibebrowser skill, saves your remote so you only give it once, and proves
control of your real Chrome.
For a deeper skill definition (when to prefer this over a managed/headless browser, the remote-recall rules, selector/snapshot guidance), install openclaw/vibebrowser/SKILL.md into the agent's skills directory.
OpenClaw Integration
There are two ways to use Vibe with OpenClaw:
Option A: Cloud OpenClaw controlling local browser
If OpenClaw runs in the cloud but you want it to control your local browser:
- Install the Vibe extension and enable Remote mode (see docs/openclaw-local-browser.md)
- Start the local HTTP bridge:
vibebrowser-mcp openclaw --remote "$VIBE_REMOTE_URL" [--public-url "$PUBLIC_MCP_URL"] - Register the MCP URL in OpenClaw
Option B: OpenClaw skill for local agents
For OpenClaw agents that need your real browser context (logged-in sessions, existing tabs):
- Copy the Vibe skill from this package to your OpenClaw skills folder
- Use the connector URL (preferred), the extension UUID, or full WebSocket relay URL with
--remote - Use
npx -y @vibebrowser/cli@latestcommands in your agent prompts
The skill is located at openclaw/vibebrowser/SKILL.md and provides:
- Full OpenClaw-compatible CLI commands (
status,tabs,snapshot,click,type, etc.) - Fallback-safe commands for DevTools-backed flows (
resize,upload,dialog) --jsonoutput for machine parsing- Environment-based configuration
See docs/openclaw-local-browser.md for the complete walkthrough.
Local LLM: serve Command
Run a local LLM with one command — no cloud API keys required. Automatically installs Ollama, downloads the model, and starts serving an OpenAI-compatible API.
That's it. Works on macOS, Linux, and Windows.
What it does
- Detects Ollama → installs it if missing (via
brew,curl, orwinget) - Starts the server → launches
ollama servein the background - Downloads the model → streams download progress to your terminal
- Prints connection info → ready to use with VibeBrowser or any OpenAI-compatible client
Recommended models
Options
Using with VibeBrowser extension
After serve completes, configure the extension:
- Model provider →
ollama - Model name → the model you served (e.g.,
qwen3.5)
The extension connects to http://localhost:11434/v1 automatically.
CLI Options
The set_remote MCP server tool hot-reconnects the running MCP server to a different remote relay. It is an MCP tool, not a browser CLI subcommand. It accepts the same three forms as --remote (connector URL preferred, bare UUID, or wss:// URL). The value is the only credential — never place it in logs shared with untrusted parties; regenerate it in extension Settings if exposed.
Troubleshooting
"No connection to Vibe extension"
- Ensure the Vibe extension is installed in Chrome
- Click the extension icon and enable "MCP External Control" in Settings
- Check that no firewall is blocking localhost connections
"OpenClaw cannot reach my local browser bridge"
- Start
vibebrowser-mcpin HTTP mode instead of stdio - Make sure the bridge process is still running on the user's machine
- Confirm the extension is in
Remotemode and connected - Verify the MCP URL in OpenClaw matches the bridge URL. If OpenClaw is cloud-hosted, do not use
127.0.0.1; useopenclaw --public-urlwith a reachable host.
Debug mode
Enable debug logging to diagnose issues:
Development
Keywords
browser automation, mcp server, model context protocol, ai browser control, claude desktop browser, cursor browser automation, web automation, chrome automation, ai agent browser, multi-agent browser control, playwright alternative, puppeteer alternative, browser mcp, web scraping ai, ai web agent
License
Apache-2.0
Links
- Vibe AI Browser - Main product
- Documentation - Full docs
- Chrome Extension - Install extension
- GitHub Issues - Report bugs
- npm Package - npm registry
來源:README.md,提交 b940b04
工具
0版本歷史
1- v0.3.6最新Sep 16, 2026
評分
已滿足適用檢查項的 85%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通必需25 分
- 已宣告認證方式必需10 分
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
