chrome-dom-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@chrome-dom-mcpnavigate to https://example.com and take a snapshot"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
chrome-dom-mcp
Control a real Chrome browser from Claude (or any MCP client): navigate, snapshot the DOM with element refs, click, type, screenshot, and run JS.
Demo
After install, try a prompt like:
use the chrome mcp to create the google ads campaign for this project
Claude opens your Chrome, reads the page structure, and drives the UI while you watch.
Related MCP server: Chrome Extension MCP Bridge
Architecture
Claude / MCP client
| stdio (MCP)
v
chrome-dom-mcp (Node.js)
| WebSocket ws://127.0.0.1:17373
v
Chrome extension (MV3)
|
v
Your Chrome tabs (DOM + screenshots)Quick start
A. Install the MCP server
Claude Code:
claude mcp add chrome-dom-mcp -- npx -y chrome-dom-mcpClaude Desktop (merge into your config file):
{
"mcpServers": {
"chrome-dom-mcp": {
"command": "npx",
"args": ["-y", "chrome-dom-mcp"]
}
}
}Example configs also live in configs/.
B. Install the Chrome extension
Option 1: download a release zip
Get
extension-dist.zipfrom GitHub ReleasesUnzip it
Open
chrome://extensionsEnable Developer mode
Load unpacked and select the unzipped folder
Pin chrome-mcp. The badge shows ON when the MCP server is connected.
Option 2: load from the npm package
After the first npx run (or npm install -g chrome-dom-mcp), the unpacked extension is inside the package:
node -e "const p=require('path');console.log(p.join(p.dirname(require.resolve('chrome-dom-mcp/package.json')),'extension'))"Load that folder the same way (Developer mode → Load unpacked).
Option 3: build from source
See Install from source. Load packages/mcp-server/extension/ after bun run build.
C. Verify
Ask Claude:
use browser_status then snapshot my current tab
You should see connected: true and a DOM snapshot with refs like e1, e2.
Install from source
git clone https://github.com/imfaisii/chrome-dom-mcp.git
cd chrome-dom-mcp
bun install
bun run buildPoint your MCP config at the local binary:
{
"mcpServers": {
"chrome-dom-mcp": {
"command": "node",
"args": ["/ABS/PATH/chrome-dom-mcp/packages/mcp-server/dist/index.js"]
}
}
}Load the extension from packages/mcp-server/extension/.
Development commands:
bun run typecheck
bun run smoke
bun run pack:dryTools
Tool | Purpose |
| Extension connection + active tab |
| Go to URL (optionally new tab) |
| list / new / close / select |
| Accessibility-style DOM with refs |
| PNG of visible viewport (also under |
| Delete one file or wipe |
| Search snapshot/page by text or regex (returns refs) |
| Click by |
| Click at viewport coordinates (computer-use style) |
| Type into inputs |
| Key / chord |
| Hover |
| Drag from one element to another |
|
|
| Scroll page or into view |
| time / text / selector |
| Run JS in the page |
| Read content |
| Element box in CSS pixels |
| Multi-field fill |
| Set files on |
| Outline target element for humans |
| Read console log/warn/error (filterable) |
| List recent network requests |
| Pre-set alert/confirm/prompt behavior |
| Resize the browser window |
| Run multiple actions in one round-trip |
| History |
Agent loop that works well:
browser_navigateorbrowser_tabsbrowser_snapshotbrowser_click/browser_typeusing refs from the snapshotSnapshot again (refs go stale after navigation)
Temporary files
Snapshots and screenshots are written under:
/tmp/chrome-mcp/snapshots/*.txt
/tmp/chrome-mcp/screenshots/*.pngAuto-pruned after 30 minutes, and capped at 40 files per kind
Tool results include the saved path
persistOnly: truereturns only the path (handy when the body is huge)browser_clear_tmpdeletes one path or wipes the whole tree/tmpis also cleared on reboot on many systems
Configuration
Env | Default | Meaning |
|
| Local WebSocket port (server + extension must match) |
The extension currently hardcodes port 17373. Change both sides if you need another port.
Security
The bridge listens on 127.0.0.1 only
The extension can read and modify pages you visit and capture screenshots
browser_evaluateruns arbitrary JS in the page. Treat MCP access like full browser controlPrefer a dedicated Chrome profile for automation when you can
See SECURITY.md for private vulnerability reporting
Limitations
Viewport screenshots only (not full-page scroll)
chrome://and Chrome Web Store pages are blocked by ChromeMV3 service workers can sleep; an alarm + reconnect loop keeps the bridge healthy
Cross-origin iframes are not walked by the snapshot
One extension connection at a time (newest wins)
Not the same as npm chrome-mcp
npm already has an unrelated package named chrome-mcp (macOS DevTools / CDP). This project is chrome-dom-mcp: a Chrome extension bridge for real DOM snapshots and interaction on macOS, Windows, and Linux.
Contributing
See CONTRIBUTING.md.
License
MIT © Faisal Ashfaq
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI coding assistants to control and inspect a live Chrome browser for automation, debugging, performance analysis, and screenshot capture through Chrome DevTools.Last updated261,362,0243Apache 2.0
- Flicense-qualityDmaintenanceEnables AI agents to control the Google Chrome browser through a Node.js WebSocket bridge and a dedicated browser extension. It provides tools for capturing screenshots, executing JavaScript, managing tabs, and extracting page content via the MCP protocol.Last updated1
- AlicenseBqualityFmaintenanceEnables AI agents to directly control your real Chrome browser with full context including login sessions, cookies, and open tabs. It provides tools for page scanning, JavaScript execution, CDP control, screenshots, and physical mouse/keyboard input for authentic browser automation.Last updated20241MIT
- Alicense-qualityBmaintenanceEnables MCP clients to drive a real, logged-in Chrome browser for web automation tasks like navigation, clicking, typing, and screenshotting.Last updated181MIT
Related MCP Connectors
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/imfaisii/chrome-dom-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server