navigateLABSCO SUMMARY
Your Chrome, not a fresh one.
It attaches to a browser you launched with remote debugging on, which means the pages it drives are already logged in. Elements are addressed by index off the page description, so a click does not hinge on a selector that happened to be right.
What it is
A browser-control server that speaks the Chrome DevTools Protocol to a Chrome you started yourself with remote debugging on. It drives your actual browser, with your session in it, rather than a fresh instance.
What you get
- A structured description of the page, with its elements indexed
- Elements clicked by that index, so the click does not depend on a selector you guessed
- Text content pulled from an element by CSS selector
- The page's current state read back after an action
- Navigation to a URL, coordinate clicks and typing at the current focus
Requirements
Bun (recommended) or Node.js v14 or higher, and a Chrome you start yourself with remote debugging switched on. The server listens on a default local port, changed with an environment variable, and clients connect to its /sse endpoint.
Setup effort
Follow the published steps — git clone https://github.com/lxe/chrome-mcp.git
USE CASES
Clicking through a flow that needs your login
It drives the Chrome you started, session and all, rather than a clean profile that would have to sign in first.
Pulling a value off a rendered page
Text by CSS selector after the JavaScript has run, which is where a plain fetch would have stopped short.
Checking where the page ended up
Read the state after an action, so the next step is decided on what happened rather than what should have.
Working a page whose selectors keep changing
Take the indexed element list and click by index, so a class-name churn does not break the run.
7 tools
Listed in project docs. Your client may show a different list.
clicktypeclickElementgetTextgetPageInfogetPageStateBEFORE YOU INSTALL
What to know first
Tools you get
7 tools named in the project's documentation.
Requires
- Bun, or Node.js 14 or newer
- Chrome started with remote debugging on (--remote-debugging-port=9222) before the server starts
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
Install Bun (recommended) or Node.js v14+: curl -fsSL https://bun.sh/install | bash on macOS/Linux/WSL, powershell -c "irm bun.sh/install.ps1 | iex" on Windows, or npm install -g bun
Start Chrome with remote debugging enabled BEFORE the server can connect, e.g. /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 (macOS), start chrome --remote-debugging-port=9222 (Windows), google-chrome --remote-debugging-port=9222 (Linux)
Clone the repository and install its dependencies:
git clone https://github.com/lxe/chrome-mcp.git
cd chrome-mcp
bun installStart the server: bun start — it listens on port 3000 by default
Open Roo Code's MCP settings file (macOS: ~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json; Windows: %APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\cline_mcp_settings.json; Linux: ~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json) and add the mcpServers block below
Save the file and restart Roo Code to apply the changes
MCP Clients
Roo Code
{
"mcpServers": {
"chrome-control": {
"type": "sse",
"url": "http://localhost:3000/sse",
"disabled": false,
"alwaysAllow": []
}
}
}