ChromeTether
Fast web search using DuckDuckGo's public search engine, providing organic search results without requiring API keys or additional setup.
Reads GitHub issues, READMEs, and documentation via lightweight HTTP fetching, and can automate browser interactions with GitHub using existing logged-in sessions.
Live Chrome automation via DevTools Protocol, attaching to running browser tabs to navigate, click, fill forms, take screenshots, inspect console/network requests, and interact with dynamic web applications.
Automates Jira through browser automation, allowing agents to interact with Jira tickets, boards, and dashboards using existing logged-in sessions.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
๐ ChromeTether
Dual-tier web browsing, live Chrome automation, and Firefox-style same-window Multi-Account Container Tabs for AI coding assistants and autonomous agents via Model Context Protocol (MCP).
ChromeTether equips your AI agents (ZCode, OpenCode, Claude Code, Claude Desktop, Cursor, Windsurf, Cline, DeepSeek Harness/dsh, Antigravity) with a comprehensive web browsing and multi-account automation system:
Tier 1 (Fast Reader โ
tether-reader): Instant HTTP fetching and Markdown conversion (~150ms, 0MB RAM) for static docs, blogs, and organic DuckDuckGo search without starting a browser.Tier 2 (Live Chrome Attachment โ
chrome-devtools+ Local CDP Hub): Direct Chrome DevTools Protocol (CDP) control attaching to your currently open Google Chrome window via a persistent Local CDP Hub Multiplexer (127.0.0.1:19222) and MV3 Companion Extension (extension/) so you are never spammed by repeated "Allow remote debugging?" prompts across agent sessions.Same-Window Multi-Account Container Tabs (
tether-containers): Open multiple isolated accounts (๐ต acc-1,๐ acc-2) as tabs inside the exact same Chrome window using Chrome Tab Groups, Manifest V3declarativeNetRequest(tabIds) cookie isolation, andContainerVaultstorage virtualization (document.cookie,cookieStore,localStorage,sessionStorage).
๐ Architecture & Core Features
flowchart TD
User["Your Prompt / Parallel AI Subagents"] --> Agent["AI Agents (ZCode, OpenCode, Claude, Cursor, Antigravity)"]
Agent --> Decision{"What is the goal?"}
Decision -- "Docs, Static Articles, GitHub, Web Search" --> Tier1["Tier 1: Fast Reader (tether-reader)"]
Tier1 --> Res1["HTTP GET + Cheerio + Turndown\n(~150ms, 0MB Chrome RAM)"]
Decision -- "Dynamic SPAs, Forms, Parallel Multi-Account Tasks" --> Hub["Local CDP Hub Multiplexer (127.0.0.1:19222)\nBearer Token + Origin Guard + ContainerVault"]
Hub --> Ext["MV3 Companion Extension (/ext)\nOR Approve-Once DevToolsActivePort Multiplexer"]
Ext --> Tabs["Same Chrome Window:\nNormal Tabs + ๐ต acc-1 Tab + ๐ acc-2 Tab"]1. Dual-Tier + Multi-Container Workflow
Component | Tools | Underlying Engine | Best Used For |
Tier 1: Fast Reader ( |
| Lightweight HTTP GET + Cheerio + Turndown + DuckDuckGo (HTML + Lite fallback) | Reading documentation, API specs, blogs, GitHub issues/READMEs, JSON/XML/plain text, and organic search (with optional |
Tier 2: Live Chrome ( |
| Google | Dynamic SPAs (React, Next.js, Vue), web apps, filling forms, submitting data, inspecting UI, diagnosing console errors, and capturing screenshots. |
Container Tabs ( |
| MV3 | Running 2+ accounts on the same website simultaneously in the same Chrome window without overwriting your default profile cookies or opening separate windows. |
Application Map ( |
| Local endpoint normalizer & persistent store ( | Mapping visited pages and observed API endpoints during authorized web application exploration. |
2. Eliminating Repeated "Allow remote debugging?" Prompts (Local CDP Hub)
Chrome 144+ displays a native modal confirmation dialog every time a new CDP client connects to DevToolsActivePort. Because standard MCP stdio servers restart on every chat session or subagent spawn, users normally get spammed with popups. ChromeTether solves this in two ways:
Phase 0 (Approve-Once
DevToolsActivePortMultiplexer): The background Local Hub (src/cdp-hub/server.js) holds one single persistent connection to Chrome and multiplexes any number of concurrent MCP clients over it, replaying target discovery andRuntimeexecution contexts automatically.Phase 1 (MV3 Companion Extension โ Zero Modal Dialogs): Load the unpacked extension from
extension/inchrome://extensions. It connects outbound tows://127.0.0.1:19222/ext(with a 20-second keep-alive heartbeat) usingchrome.debugger, which never triggers the "Allow remote debugging?" modal prompt.
3. Firefox-Style Multi-Account Container Tabs in One Chrome Window (tether-containers)
Instead of opening separate Chrome windows for each isolated context, ChromeTether lets you and your AI agents open color-coded Container Tabs (๐ต acc-1, ๐ acc-2, ๐ข work) right inside your active Chrome window:
Zero Default-Jar Pollution: Uses Manifest V3
declarativeNetRequestsession rules scoped bytabIdsto stripSet-Cookieheaders from container responses before Chrome commits them to your default profile cookie jar, while capturing rawSet-Cookieheaders into~/.chrometether/containers.json(0o600atomic writes).Deterministic Cookie & Storage Isolation: Injects per-container
Cookieheaders at the network layer (modifyHeadersset) and virtualizesdocument.cookie,window.cookieStore,localStorage, andsessionStorageviaPage.addScriptToEvaluateOnNewDocument, with HTTP cache and site service workers disabled in container tabs.Fail-Closed Detach Safety: If
chrome.debuggerdetaches unexpectedly on a container tab, the extension immediately re-attaches or engages a fail-closeddeclarativeNetRequestblock rule for thattabIdso it never leaks requests with default cookies.3 Ways for Agents to Open Container Tabs:
Call
open_container_page({ container: "acc-1", url: "https://example.com", background: true })fromtether-containers.Call
create_container({ name: "acc-1", color: "blue" })followed bynew_page({ url: "https://example.com", isolatedContext: "acc-1" }).Pass a URL fragment hint:
new_page({ url: "https://example.com#tether-container=acc-1" }).
4. Token-Efficient Interaction (uid)
Avoids context-window blowouts caused by dumping raw HTML.
Uses Chrome's Accessibility Tree where every interactive button, input, and link is assigned a numeric
uid(e.g.[uid: 10] button "Submit").Always pass
pageId(fromlist_pages()) when driving multiple container tabs concurrently so parallel agents never steal focus from each other.
5. Application Map (tether-map)
The installer also registers tether-map, a local MCP server for building a reusable map of an application while an agent explores it in Chrome. It groups observed requests by method and URL path (for example, /api/orders/123 and /api/orders/456 become GET /api/orders/{id}), then records status codes, query parameter names, and the page where each endpoint was seen.
Ask your agent: โMap the pages and API requests you observe while exploring https://app.example.com.โ The workflow is:
start_app_map(target_url); includeallowed_originsif the application uses a separate API origin.Navigate with
chrome-devtools, then callrecord_app_page(page_url, title)for visited pages.Call Chrome DevTools
list_network_requests({includePreservedRequests: true})and pass the observed URL, method, status, and resource type torecord_app_requests(page_url, requests). Calls accept up to 200 requests.Call
get_app_map({kind: "api"})to focus on API endpoints. Useendpoint_offset,page_offset, andlimitto page through the saved map (50 items per group by default, at most 100).
Related MCP server: chrome-devtools-mcp
๐ 1-Click Installation
Option 1: PowerShell Script (Windows)
Clone the repository and run:
git clone https://github.com/toannguyen3107/chrometether.git
cd chrometether
npm install
.\scripts\setup.ps1Option 2: CLI Command (Cross-Platform)
git clone https://github.com/toannguyen3107/chrometether.git
cd chrometether
npm install
# Check status of detected agent environments
node bin/chrometether.js status
# Automatically configure all detected agents
node bin/chrometether.js install all
# Manage Multi-Account Containers & Local CDP Hub
node bin/chrometether.js containers create acc-1 blue
node bin/chrometether.js containers create acc-2 orange
node bin/chrometether.js containers list
node bin/chrometether.js hub statusโ๏ธ Setting Up Google Chrome (Extension or Remote Debugging)
Method A (Recommended โ Companion Chrome Extension for Container Tabs & Zero Modal Prompts)
Open Google Chrome and navigate to
chrome://extensions.Enable Developer mode (top-right toggle).
Click Load unpacked and select the
extension/folder inside yourchrometetherdirectory.Click the ChromeTether Containers icon in your toolbar anytime to open new color-coded Container Tabs (
๐ต acc-1,๐ acc-2) or convert the current tab.
Method B (Built-In Chrome Inspect โ Phase 0 Multiplexer)
Open Google Chrome and navigate to
chrome://inspect/#remote-debugging.Check "Enable remote debugging" (or launch Chrome with
--remote-debugging-port=9222).Approve the connection once โ the ChromeTether Local Hub keeps that single approved connection alive across all future MCP sessions.
๐ค Supported Agent Integrations
Agent | Config File | Features Added |
ZCode (Z.ai) |
| Registers |
OpenCode CLI |
| Merged using OpenCode MCP array schema routed through the Local Hub launcher. |
Claude Code CLI |
| MCP configuration + installs browser skills in |
Claude Desktop |
| MCP configuration routed through the Local Hub launcher. |
Cursor IDE |
| Cursor MCP server registration ( |
Windsurf (Codeium) |
| Cascade MCP server registration. |
Roo Code / Cline |
| VS Code extension MCP configuration (shallow-merged to preserve |
Google Antigravity (AGY) |
| Merges |
DeepSeek Harness (dsh) |
| Configures |
Environment Variables:
CHROMETETHER_NODE_COMMAND: Override the Node executable written to MCP configs (defaults toprocess.execPath).
CHROMETETHER_HOME: Override the home directory inspected bystatus,install, and default~/.chrometether/storage.
CHROMETETHER_HUB_PORT: Override the Local CDP Hub port (defaults to19222).
CHROMETETHER_CONTAINERS_FILE: Override the default~/.chrometether/containers.jsonvault path.
CHROMETETHER_MAP_FILE: Override the default~/.chrometether/app-map.jsonstorage path.
๐งช Verification & Diagnostics
Run the comprehensive test suite (74 unit & integration tests):
npm testTests verify:
RFC 6265 Cookie Jar parsing, domain/path matching, and
declarativeNetRequest(tabIds) session rule generation (test/container-vault.test.js).Local CDP Hub Bearer token + Origin security guard, Phase 0 multiplexer, Extension
/extcontainer tab lifecycle, and realpuppeteer-core@25.10.0handshake + multi-sessionRuntimestate replay (test/cdp-hub.test.js).Fast Reader HTML-to-Markdown conversion and DuckDuckGo organic search (
test/fetch-markdown.test.js,test/search-ddg.test.js).tether-reader,tether-map, andtether-containersMCP server handlers.Safe shallow-merging of agent configuration files (
test/config-merger.test.js,test/cli-install.test.js).
๐ Security & Privacy
Authenticated Local Hub: Connections to
ws://127.0.0.1:19222/cdprequire a per-install random Bearer token (~/.chrometether/hub-token,0o600permissions) and reject browserhttp(s)://Originheaders to prevent cross-origin WebSocket hijacking from visited websites.Restricted Container Vault:
~/.chrometether/containers.jsonis written atomically with0o600permissions and prunes expired and session-only cookies automatically.Safe Config Merging: The installer shallow-merges existing server entries (preserving custom
env,disabled,alwaysAllow, andautoApprovesettings) and creates timestamped.bakbackups before modifying any configuration file.
๐ License
MIT License ยฉ 2026 Toan Nguyen
This server cannot be deployed
Maintenance
Related MCP Connectors
Let AI agents use your real, signed-in Chrome: tabs, clicks, forms, screenshots and video.
Give AI agents a real cloud Chrome: open sessions, navigate, read pages, click, type and screenshot.
Let your AI agent operate any website through a real, logged-in browser session.
Cloud browser, web extraction, screenshots, and remote CDP tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI coding assistants to control and inspect a live Chrome browser for automation, debugging, performance analysis, network monitoring, and DOM interaction through Chrome DevTools Protocol.1,876,272 npmApache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI coding assistants to control and inspect a live Chrome browser through Chrome DevTools for automation, debugging, and performance analysis.1,876,272 npmApache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI coding assistants to control a live Google Chrome browser, allowing tab management, navigation, clicking, typing, screenshots, and JavaScript evaluation through the user's real profile.MIT
- AlicenseNot gradedqualityDmaintenanceLets AI coding assistants control and inspect a live Chrome browser using full Chrome DevTools capabilities for browser automation, debugging, and performance analysis.1,876,272 npmApache 2.0