Skip to content

About

Local Chrome automation via MCP: browser extension, native bridge, and desktop client for AI-assisted browsing, page extraction, and multi-tab workflows.

Topics

Resources

Contributing

Stars

20 stars

Watchers

0 watching

Forks

Β 
Β 

Latest commit

Β 

History

477 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Chrome MCP Server

Chrome MCP Server

Bridge AI agents with your Chrome browser
A Model Context Protocol server that exposes 80 browser capabilities to AI assistants
New MCP: ultra-low latency, instant responses β€” local round-trips in under 50ms

License: MIT TypeScript Chrome Extension npm GitHub Release

πŸ‡¨πŸ‡³ Chinese Β· πŸ‡¬πŸ‡§ English


πŸ“’ What's New in v2.8.5

Stronger page collection and review workflows β€” Better support for multi-page content, comment threads, and long lists.

  • πŸ•ΈοΈ Recursive page crawling β€” chrome_crawl_links supports same-origin limits, depth/node caps, retries, field extraction, and partial failure results.
  • πŸ’¬ Comment and reply extraction β€” chrome_extract_thread supports scroll loading, nested-item filtering, field mapping, and stop conditions.
  • πŸ“Š Stronger long-list collection β€” Virtual-list, paginated, and multi-tab collection workflows expose independent state, progress snapshots, and diagnostics.
  • 🧭 Improved review tools β€” Page review summaries and expandable sections support finer stop conditions and bounded clicks.
  • πŸ–₯️ Desktop assistant and runtime improvements β€” Better attachment handling, runtime registration, and desktop interaction stability.
  • πŸ”§ All release packages bumped to v2.8.5

See the full changelog for all version changes.


πŸ–ΌοΈ Screenshots

Popup Window Builder Workflow Editor
Popup Builder
Catgirl frosted-glass theme,
MCP tools at a glance
Drag-and-drop workflow builder,
record & replay automation
Quick Panel Smart Assistant
Quick Panel Smart Assistant
In-page quick tools,
element picker & actions
Sidepanel chat,
Claude / Codex / DeepSeek

πŸ–₯️ Windows Desktop Client

chrome-mcp-desktop-2.8.5-win-x64.exe is the portable Windows desktop manager (Tauri 2 + Vue) shipped with the project. It bundles the bridge runtime, so a double-click starts or reuses the local Chrome MCP service without installing Node.js; the Chrome extension still has to be installed and connected using the steps above.

Chrome MCP Bridge Windows desktop client

Download and Usage

  1. Download chrome-mcp-desktop-2.8.5-win-x64.exe from the v2.8.5 Release, put the file in a writable directory, and double-click it to run.
  2. The client starts or reuses the local bridge service on http://127.0.0.1:12306 automatically; if the status shows "Waiting for connection", make sure the Chrome extension is loaded and click the connect button in the extension.
  3. The console shows service status, Chrome extension connection, Native Host connection, MCP sessions, available tools, running tasks, service endpoints, and error diagnostics; click "Refresh status" or "Health check" to probe again.
  4. Closing the window minimizes the client to the system tray. The tray menu can show the client again, run a health check immediately, or choose "Exit client (stop service)" to fully quit and stop the service owned by the client.

The desktop client uses the following MCP endpoints; client configuration is the same as with other installation methods:

Endpoint Address or configuration
Streamable HTTP (compat) http://127.0.0.1:12306/mcp
Streamable HTTP (stateless) http://127.0.0.1:12306/mcp-new
SSE (legacy) http://127.0.0.1:12306/sse
STDIO Use the standalone chrome-mcp-bridge-2.8.5-win-x64.exe --stdio

Note: chrome-mcp-desktop-2.8.5-win-x64.exe is a GUI management client; do not use it directly as a STDIO MCP command. When you need STDIO, use the bridge runtime EXE with --stdio; open the desktop client when you need to manage the service.

✨ Features

πŸ€– AI-Native Control
Claude / Cursor / VS Code
operates your browser directly
πŸ” Zero Setup
Reuses your Chrome
sessions & cookies instantly
πŸ›‘οΈ Fully Local
All processing on-device
no data leaves your machine
πŸš„ New MCP
Ultra-low latency, instant responses
local round-trips in <50ms
🧠 Semantic Search
Vector DB + local embeddings
cross-tab content discovery
⚑ SIMD Acceleration
WASM-optimized engine
4-8Γ— faster vector ops
πŸ“Š 80 Tools
Navigation / forms
bookmarks / history / network
πŸ”„ Cross-Tab Ops
Multi-tab & multi-window
seamless orchestration

βš”οΈ vs Playwright-based Alternatives

Dimension Playwright MCP Chrome Extension MCP (This Project)
Browser Process Launches separate instance + downloads binary Uses your existing Chrome
Login Sessions Re-authenticate every site Automatically inherited
User Environment Clean profile β€” no extensions, no settings Full user profile β€” everything intact
API Surface Limited to Playwright API Full Chrome API (tabs, bookmarks, history, downloads)
Startup Time Initialize new browser (seconds) Instant (< 1s)
Latency 50–200ms Lower β€” in-process communication

πŸš€ 5-Minute Setup

First time? Just complete steps 1 β†’ 4 below. Windows users should use the desktop client; macOS / Linux users, or anyone comfortable with the command line, can use the Node.js route.

1️⃣ Install the Chrome Extension

  1. Download the Chrome extension package from the v2.8.5 Release.
  2. Unzip the downloaded .zip file.
  3. Open chrome://extensions/ in the Chrome address bar and turn on Developer mode in the top-right corner.
  4. Click Load unpacked and select the folder you just unzipped.
  5. Click the Chrome MCP icon in the browser toolbar, then click Connect.

Once the extension shows as connected, keep Chrome open and continue to the next step.

2️⃣ Start the Local Service (Pick One)

Windows: Use the desktop client (recommended)

  1. Download chrome-mcp-desktop-2.8.5-win-x64.exe.
  2. Double-click the EXE; the client starts or reuses the local service automatically.
  3. Once the client shows "Service status: Running" and "Chrome extension: Connected", you're set.

The desktop client is portable and needs no Node.js installation. It can also show MCP sessions, tool calls, running tasks, and error diagnostics. Closing the window does not stop the service; it minimizes to the system tray.

macOS / Linux or command line: use Node.js

First install Node.js 24 or later, then run in a terminal:

npm install -g --allow-scripts=@ethanwilkins/mcp-chrome-bridge-2026 @ethanwilkins/mcp-chrome-bridge-2026
mcp-chrome-bridge start

Once the npm install finishes it registers the Native Host Chrome needs. The service listens on http://127.0.0.1:12306 by default.

Windows users who already use the desktop client don't need to repeat the Node.js install and start commands; pick one of the two routes.

3️⃣ Add the MCP Service to Your AI Client

In the MCP settings of an AI client such as Claude, Cherry Studio, or Cursor, add a new server, choose Streamable HTTP (some clients write it as streamableHttp), and fill in:

Address: http://127.0.0.1:12306/mcp

If your client needs JSON config, use:

{
  "mcpServers": {
    "chrome-mcp-server": {
      "type": "streamableHttp",
      "url": "http://127.0.0.1:12306/mcp"
    }
  }
}

If your client only supports STDIO, use the bridge runtime, not the GUI desktop client:

{
  "mcpServers": {
    "chrome-mcp-bridge": {
      "command": "D:\\path\\chrome-mcp-bridge-2.8.5-win-x64.exe",
      "args": ["--stdio"]
    }
  }
}

4️⃣ Verify It Works

  1. Go back to your AI client and refresh the MCP server or reopen the session.

  2. Seeing the Chrome MCP tool list (e.g. chrome_get_tab_url, chrome_screenshot) means the connection succeeded.

  3. Send a simple test prompt:

    Read the title and URL of my current Chrome tab.

If the desktop client shows "Waiting for connection", first check whether the Chrome extension's Connect button was clicked; you can also open http://127.0.0.1:12306/status?probe=1 in the browser to check the status.

Advanced Configuration (Safe to Skip on First Use)

Faster stateless endpoint

Clients that support the new MCP 2026-07-28 revision can use:

{
  "mcpServers": {
    "chrome-mcp-new": {
      "type": "streamableHttp",
      "url": "http://127.0.0.1:12306/mcp-new"
    }
  }
}

This endpoint works per request and stores no session; lightweight requests can respond in under 50ms. See the /mcp-new endpoint reference for the full headers, _meta structure, and debugging examples. If your client cannot customize new-protocol fields such as Origin, keep using /mcp above.

Legacy SSE clients

Clients that need the old SSE protocol should use:

  • SSE endpoint: http://127.0.0.1:12306/sse
  • Message endpoint: http://127.0.0.1:12306/messages?sessionId=...

Other ways to start STDIO

After installing the npm package, you can also run:

mcp-chrome-bridge stdio

mcp-chrome-bridge --stdio prefers /mcp-new and falls back to /mcp on failure; if the local service is not running, it starts and reuses it automatically. To force the service to be started by an external process, set CHROME_MCP_AUTOSTART_SERVER=0. The legacy mcp-chrome-stdio entry point remains compatible.

Windows developers: build the portable EXE

In the repository root, double-click package-desktop-windows.bat and choose Desktop client when prompted. The script checks version consistency and produces:

releases/chrome-mcp-desktop-<version>-win-x64.exe

If you only need the bridge runtime, package-windows.bat builds chrome-mcp-bridge-<version>-win-x64.exe.

Protect the HTTP MCP endpoint

By default the service only listens locally and needs no API key. To protect the HTTP / SSE endpoints, set this before starting the service:

$env:CHROME_MCP_API_KEY = "replace-with-a-long-random-key"
mcp-chrome-bridge start

Clients can then send Authorization: Bearer <key> (or x-api-key); the STDIO proxy reads the same environment variable and forwards the Bearer token automatically. HTTP MCP requests without an Origin must carry a valid API key.

Concurrency and tool permissions

By default the service runs at most 8 tool calls concurrently and queues at most 64. Tune this to your machine:

$env:CHROME_MCP_MAX_CONCURRENT_TOOLS = "8"
$env:CHROME_MCP_MAX_QUEUED_TOOLS = "64"
mcp-chrome-bridge start

You can also restrict which tools a client can see and require approval for high-risk tools:

$env:CHROME_MCP_ALLOWED_TOOLS = "chrome_read_page,chrome_get_tab_url,flow.*"
$env:CHROME_MCP_REQUIRE_APPROVAL = "true"
$env:CHROME_MCP_APPROVED_TOOLS = "flow.checkout"

With CHROME_MCP_REQUIRE_APPROVAL=true, high-risk tools such as JavaScript execution, write/publish, file upload, Profile management, and flow.* must also appear in the approval list. Leaving these variables unset preserves the existing compatibility behavior.

More advanced environment variables (extension ID, Origin allowlist, request body size, and Artifact limits) are in the troubleshooting guide.


🧩 Isolated Browser Profiles

By default, browser tools continue to control the Chrome you are currently using. For account, cookie, or cache isolation, call chrome_profile first:

{ "action": "create", "name": "Work account", "profileId": "work" }

Then add profileId to a normal browser tool; an isolated Chrome instance starts automatically when needed:

{ "profileId": "work", "url": "https://example.com" }

Use chrome_profile with list, status, diagnostics, launch, stop, or delete to manage profiles. delete removes only the profile configuration and keeps userDataDir, preventing accidental loss of login state. Set CHROME_MCP_EXTENSION_PATH when the isolated Chrome must load a locally built extension.

Click, input, scroll, and navigation actions use a unified balanced pace by default; pass actionPolicy: "fast" or actionPolicy: "human" when needed.

Use chrome_batch to run up to 50 browser calls sequentially as one task; pass profileId to pin the batch to one isolated Profile. Workflow v3 already provides persistent queues plus cron/interval triggers.

Safe upgrades

mcp-chrome-bridge upgrade 2.3.0 --dry-run
mcp-chrome-bridge upgrade 2.3.0

Upgrades require an exact version and verify npm SHA-512 integrity. If post-install validation of key files fails, the command attempts to roll back to the previous version.

βœ… Verification

  • Native Server: 5 Jest suites, 18 tests (including permission policy and HTTP auth), run by CI with coverage collection
  • Chrome Extension: 58 Vitest files, 567 tests, run by CI
  • Native / Extension / Shared TypeScript checks passed
  • Version consistency: pnpm check:versions
  • Tool docs: pnpm check:tool-docs

Real Chrome smoke test

This test does not use jsdom, fake IndexedDB, or mocked Chrome APIs. Install/load the extension, wait for the Native Host connection, and start the HTTP server first, then run:

pnpm test:chrome-smoke

It checks the Native Host extension connection and browser probe, creates a real MCP session, discovers the catalog, and calls chrome_get_tab_url against the current Chrome tab. Use CHROME_MCP_SMOKE_URL, CHROME_MCP_SMOKE_TIMEOUT_MS, and CHROME_MCP_API_KEY to override the connection settings.


πŸ› οΈ Tools at a Glance

Category Count Coverage
πŸ–₯️ Browser Management 12 Window/tab listing, new tabs, navigation, switch, close, current URL, scroll, Profile/batch tasks
πŸ“· Screenshots & PDF 3 Element-level, full-page, custom viewport, GIF recording, page-to-PDF printing
🌐 Network Monitoring 6 Request capture & response wait, resource blocking, custom HTTP, download handling
πŸ“ Content Analysis 7 Semantic search, HTML/text extraction, interactive elements, console capture, SPA
πŸ–±οΈ Interaction 11 Click, hover, fill forms, keyboard, element info, computer ops, dialogs, file upload
πŸ“‘ Data Management 11 History search, bookmark CRUD, Cookie management, page local/sessionStorage, userscripts
πŸ“‘ Scraping 16 Scoped/Shadow DOM/iframe, pagination, isolated task state, diagnostics, proxy rotate
⚑ Performance 3 Trace start / stop / insight analysis

πŸ“– Full API reference: Chinese Β· English


πŸ“š Usage Guides

Guide Description
πŸ€– Smart Assistant Guide Claude / Codex / DeepSeek sessions & API configuration
⚑ Quick Tools Guide Page Quick Panel & popup MCP tool catalog

🎬 Use Cases

Scenario Action
πŸ“„ AI Summary + Excalidraw Viz Summarize page content and draw a diagram
πŸ–ΌοΈ Image Analysis + Excalidraw Analyze image content and rebuild it
🎨 Style Injection & Web Mod Modify page styles to strip ads
πŸ“‘ Network Request Analysis Find API endpoints and response structures
πŸ“Š Browsing History Analysis Analyze the past month of browsing records
πŸ’¬ Web Page Conversation Translate and summarize the current page
πŸ“Έ Page & Element Screenshots Capture the first screen / capture icons
πŸ”– Bookmark Management Add the current page to bookmarks
πŸ—‘οΈ Batch Tab Closure Close tabs matching a keyword
πŸ€– Smart Assistant Chat Chat with Claude / Codex / DeepSeek in the sidebar
πŸ”„ Workflow Record & Replay Record repetitive actions and replay them with one click
🧩 Visual Workflow Builder Build automation flows by dragging nodes in the Builder
πŸ“Š Page Data Extraction Extract structured data from lists / virtual scroll pages
⚑ Page Performance Analysis Record a trace and analyze loading bottlenecks
πŸŽ₯ Record Actions as GIF Record page interactions as a GIF

πŸ—ΊοΈ Roadmap

βœ… Done

  • 80 MCP Tools β€” Full browser API coverage, including public chrome_userscript, page collection, and thread extraction tools
  • Streamable HTTP (compatibility / early access) + SSE + STDIO β€” All transports retained
  • Smart Assistant β€” Claude / Codex / DeepSeek
  • Semantic Search β€” Vector DB + local embeddings
  • SIMD Acceleration β€” WASM engine 4-8Γ— faster
  • Workflow Recording & Replay β€” v3 unified architecture (legacy architecture fully migrated)
  • Visual Editor β€” Drag-and-drop workflow builder
  • Native Messaging Auto-registration
  • Cross-platform Setup β€” macOS / Linux one-click scripts
  • Multi-Profile Isolation β€” Separate cookies, cache, history and login state
  • Persistent Sessions β€” Restore isolated profiles after browser close
  • Unified ActionPolicy β€” Stable click / input / scroll pacing
  • Parallel Sessions β€” Separate MCP/CDP channels per profile
  • Profile Diagnostics β€” Profile, CDP, MCP, proxy and extension state
  • Safe Upgrades β€” Exact versions, SHA-512 verification and rollback
  • Batch and Scheduled Tasks β€” chrome_batch, workflow queues and cron/interval triggers
  • Native Messaging control channel and concurrency governance β€” Global concurrency cap and global queue cap (CHROME_MCP_MAX_CONCURRENT_TOOLS=8 / CHROME_MCP_MAX_QUEUED_TOOLS=64), serialized writes to the same tab, chrome_batch not consuming extra outer concurrency slots, and /status toolAdmission exposing occupancy and queueing in real time
  • Authentication and Permissions β€” HTTP API keys, tool scopes, and high-risk action approvals
  • Live Monitoring Panel β€” The desktop client shows MCP calls, active requests, latency, and error diagnostics
  • Three-Layer Channel Architecture β€” Native Messaging control channel, Artifact data plane, and localhost WebSocket event channel

🎯 Planned

  • OAuth β€” Third-party identity authentication and authorization
  • Multi-version Chrome Matrix β€” Run real-browser regression tests across Chrome versions / profiles / environments
  • Expanded Product Scope β€” Hosted browsers and remote CDP

πŸ†• New Tools

Tool Description
chrome_crawl_links Recursively visit page links with depth/node limits, same-origin filtering, retries, and extraction
chrome_extract_thread Extract comments or replies with scroll loading, nested-item filtering, and stop conditions
chrome_create_tab Create new tab β€” supports url, windowId, active/background, pinned
chrome_hover Hover element β€” trigger hover state via CSS/XPath selector for dropdowns / tooltips / submenus
chrome_print_to_pdf Print to PDF β€” uses CDP Page.printToPDF, supports page/custom paper sizes
chrome_get_element_info Element info query β€” get attributes, computed styles, bounding rect for a selector
chrome_storage_get / set / delete Storage management β€” read/write localStorage / sessionStorage

The PDF tool returns Base64 PDF data by default; pass savePdf: true to also save it to Chrome downloads. The page storage tools operate on the target tab's localStorage or sessionStorage, not the extension's own storage.


πŸ’ Support & Sponsorship

The project is fully open source and free. If you find it useful, or need technical support / new feature suggestions, feel free to contact the author through the channels below.

Sponsorship unlocks premium extension features πŸ”“ β€” your support keeps development going!

WeChat Β· Chat & Technical Support Alipay Β· Sponsorship WeChat Pay Β· Sponsorship
WeChat add friend Alipay sponsorship WeChat Pay sponsorship
Scan to add me on WeChat,
get technical support and chat
Scan to sponsor,
unlock premium extension features
Scan to sponsor,
unlock premium extension features


🀝 Contributing

Contributions welcome! Please read CONTRIBUTING_zh.md before submitting a PR.


πŸ“„ License

MIT β€” see LICENSE for details.


πŸ“– More Documentation

Document Link
πŸ—οΈ Architecture Design ARCHITECTURE_zh.md
πŸ”§ Tool API Reference TOOLS_zh.md
πŸ€– Smart Assistant Guide SMART_ASSISTANT_zh.md
⚑ Quick Tools Guide QUICK_TOOLS_zh.md
🌐 /mcp-new Endpoint Guide MCP_NEW_zh.md
πŸ” Troubleshooting TROUBLESHOOTING_zh.md
πŸ“‹ Changelog CHANGELOG.md

About

Local Chrome automation via MCP: browser extension, native bridge, and desktop client for AI-assisted browsing, page extraction, and multi-tab workflows.

Topics

Resources

Contributing

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages