Chrome MCP
Provides tools to control Google Chrome: list tabs, navigate, take snapshots, click, type, screenshot, and evaluate JavaScript in a live Chrome browser with your real profile.
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.
Chrome MCP
Connect AI coding assistants (Cursor, Claude Code, and any MCP-compatible client) to your live Google Chrome browser over the Model Context Protocol. Your agent can list tabs, navigate, snapshot the page, click, type, screenshot, and evaluate JavaScript in your real profile — cookies, logins, and extensions intact.
Unlike headless-browser MCPs, this drives the Chrome you already use, via a Manifest V3 extension and chrome.debugger (CDP). Multiple MCP clients (e.g. Cursor and Claude Code) share one browser connection through a per-machine Connection Hub.
Architecture
Cursor / Claude Code ──stdio MCP──▶ chrome-mcp (per session)
│ IPC (Unix socket / Windows named pipe)
▼
Connection Hub (chrome-mcp-hub, one per machine)
│ WebSocket ws://127.0.0.1:17321
▼
Chrome Extension (MV3 service worker)
│ chrome.debugger (CDP)
▼
Your Google Chromepackages/shared— wire protocol v1, error codes, IPC transport, config, policy.packages/hub—chrome-mcp-hub: holds the single WebSocket to the extension and multiplexes MCP sessions.packages/mcp-server—chrome-mcp: the stdio MCP server that registers the 10 browser tools.apps/chrome-extension— the MV3 extension (CDP adapter + pairing popup).
Related MCP server: Chrome DevTools MCP
Tools
browser_list_tabs, browser_activate_tab, browser_navigate, browser_snapshot, browser_click, browser_type, browser_screenshot, browser_evaluate, browser_wait_for, browser_subscribe.
Quickstart
1. Build
pnpm install
pnpm buildexFAT / removable drives: pnpm symlinks fail on exFAT. This repo's
.npmrcalready setsnode-linker=hoisted,inject-workspace-packages=true, andpackage-import-method=copy.pnpm buildrunsscripts/sync-workspace-deps.mjsto copy the built@chrome-mcp/sharedintonode_modules(no symlinks).
2. Load the Chrome extension
Open
chrome://extensions.Enable Developer mode (top right).
Click Load unpacked and select
apps/chrome-extension/dist.
3. Start the hub
node packages/hub/dist/cli.js start
# or, once published: npx chrome-mcp-hub startIt prints a pairing token and listens on ws://127.0.0.1:17321 + the platform IPC socket. Leave it running.
4. Configure your MCP client
Copy the matching example from examples/:
Claude Code →
.mcp.json(project) — seeexamples/claude-code.mcp.jsonCursor →
.cursor/mcp.json— seeexamples/cursor.mcp.jsonWindows → use the
cmd /cwrapper — seeexamples/windows-cmd-wrapper.jsonLocal (pre-publish) → point at the built CLI — see
examples/local-dev.mcp.json
5. Pair the extension
Click the Chrome MCP extension icon.
Paste the pairing token from the hub output.
Check Approve this connection and click Save & Connect.
The status dot turns green when connected.
Your agent can now control Chrome. Try: "list my tabs, navigate to http://localhost:3000, and take a snapshot."
Security
Localhost only. All listeners bind to
127.0.0.1. Nothing is exposed externally.Pairing required by default; the extension must present the hub's token (rejected with close code 4001 otherwise).
URL allowlist, enforced on both the server and the extension. Defaults permit only
localhost/127.0.0.1.file://,chrome://, andchrome-extension://are always blocked unless explicitly allowlisted.New-origin prompt. When an agent hits an unlisted origin, the popup offers Allow / Deny (configurable via
promptForNewOrigins).Incognito tabs are excluded by default.
Configure via ~/.chrome-mcp/config.json (hot-reloaded within ~2s) or the extension popup. Example:
{
"policy": {
"allowedUrlPatterns": ["http://localhost:*", "https://*.mycompany.dev/*"],
"enforceAllowlist": true,
"promptForNewOrigins": true
}
}Troubleshooting
Symptom | Cause | Fix |
Every tool returns | Hub not running, or extension not paired | Run |
| DevTools is open on that tab (only one debugger per tab) | Close DevTools on the tab, or target a different tab |
Extension shows "Disconnected" and won't reconnect | Wrong/rotated pairing token | Copy the current token from the hub output into the popup and re-approve |
| The page changed or navigated; refs are ephemeral | Re-run |
| Origin not in the allowlist | Approve it in the popup, or add a pattern to |
| npx not resolved directly | Use the |
MCP client shows protocol/parse errors | Something wrote to stdout | The server logs only to stderr by design; check for a stray |
Hub | Stale socket after a crash (POSIX) | Delete |
Development
pnpm test # run the full Vitest suite (shared, hub, mcp-server, extension)
pnpm typecheck # tsc --noEmit across packages
pnpm lint # ESLint 9 (bans stdout writes in the MCP server)Scope (MVP)
Chrome stable only; stdio MCP transport only; chrome.debugger (no Puppeteer/Playwright at runtime); sideloaded extension. HTTP/SSE transport, cross-origin iframe targeting, and Chrome Web Store publishing are deferred. See openspec/changes/chrome-mcp/ for the full spec and TDD.md for the technical design.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Let AI agents use your real, signed-in Chrome: tabs, clicks, forms, screenshots and video.
Control a real browser from AI agents: navigate, click, type, screenshot, read the page.
Give AI agents a real cloud Chrome: open sessions, navigate, read pages, click, type and screenshot.
Connect AI agents to your own Chrome with scoped access, approvals, and verified task results.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI coding assistants to control and inspect a live Chrome browser through Chrome DevTools. Provides browser automation, performance analysis, debugging capabilities, and network request monitoring.2,099,626 npm55,156Apache 2.0
- AlicenseAqualityCmaintenanceEnables AI coding assistants to control and inspect a live Chrome browser for automation, debugging, performance analysis, and screenshot capture through Chrome DevTools.262,099,626 npm3Apache 2.0
- 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.2,099,626 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.2,099,626 npmApache 2.0